summaryrefslogtreecommitdiffstats
path: root/qadevOOo/tests/java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/java')
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessible.java48
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleAction.java159
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java601
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java342
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleEditableText.java543
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java208
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java114
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleImage.java65
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java586
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleTable.java1000
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleText.java1208
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleValue.java344
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlButtonModel.java115
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlCheckBoxModel.java104
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlComboBoxModel.java134
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlContainerModel.java64
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlCurrencyFieldModel.java130
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlDateFieldModel.java170
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlDialogElement.java26
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlDialogModel.java81
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlEditModel.java126
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFileControlModel.java113
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFixedLineModel.java69
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFixedTextModel.java106
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFormattedFieldModel.java254
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlGroupBoxModel.java78
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlImageControlModel.java104
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlListBoxModel.java122
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlModel.java26
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlNumericFieldModel.java130
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlPatternFieldModel.java112
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlProgressBarModel.java84
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlRadioButtonModel.java103
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlScrollBarModel.java111
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlSpinButtonModel.java65
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlTimeFieldModel.java134
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XButton.java103
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XCheckBox.java135
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XComboBox.java262
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XControl.java213
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XControlContainer.java133
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XCurrencyField.java307
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XDataTransferProviderAccess.java127
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XDateField.java332
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XDialog.java150
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XFixedText.java111
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XImageConsumer.java135
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XImageProducer.java143
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XItemListener.java109
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XLayoutConstrains.java68
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XListBox.java491
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java98
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XNumericField.java308
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XPatternField.java167
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XRadioButton.java136
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XScrollBar.java203
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XSpinField.java195
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XSpinValue.java195
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java31
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTabController.java156
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTabControllerModel.java157
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTextComponent.java255
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTextLayoutConstrains.java71
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTextListener.java119
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTimeField.java287
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XToolkit.java147
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTopWindow.java190
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XUnoControlContainer.java173
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XView.java135
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XWindow.java581
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_TreeControlModel.java28
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeDataModel.java90
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeNode.java285
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XTreeControl.java640
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XTreeDataModel.java171
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XTreeNode.java259
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XExactName.java84
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XFastPropertySet.java236
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XHierarchicalPropertySet.java143
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XIntrospection.java53
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiHierarchicalPropertySet.java139
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiPropertySet.java363
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java227
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XProperty.java34
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyAccess.java225
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyContainer.java299
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertySet.java645
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertySetInfo.java115
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyState.java266
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyWithState.java101
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XTolerantMultiPropertySet.java330
-rw-r--r--qadevOOo/tests/java/ifc/bridge/_XBridge.java141
-rw-r--r--qadevOOo/tests/java/ifc/bridge/_XBridgeFactory.java222
-rw-r--r--qadevOOo/tests/java/ifc/bridge/_XUnoUrlResolver.java193
-rw-r--r--qadevOOo/tests/java/ifc/chart/_BarDiagram.java152
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java123
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxis.java200
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxisXSupplier.java132
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxisYSupplier.java158
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxisZSupplier.java196
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java120
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDataRowProperties.java54
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDocument.java35
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartLegend.java33
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartStatistics.java65
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTableAddressSupplier.java59
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTitle.java49
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTwoAxisXSupplier.java100
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTwoAxisYSupplier.java100
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Diagram.java59
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Dim3DDiagram.java58
-rw-r--r--qadevOOo/tests/java/ifc/chart/_LineDiagram.java199
-rw-r--r--qadevOOo/tests/java/ifc/chart/_StackableDiagram.java81
-rw-r--r--qadevOOo/tests/java/ifc/chart/_StockDiagram.java79
-rw-r--r--qadevOOo/tests/java/ifc/chart/_X3DDisplay.java68
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XAxisXSupplier.java97
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XAxisYSupplier.java100
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XAxisZSupplier.java100
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XChartData.java176
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XChartDataArray.java240
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XChartDocument.java154
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XDiagram.java148
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XStatisticDisplay.java82
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XTwoAxisXSupplier.java54
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XTwoAxisYSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/configuration/_XTemplateContainer.java41
-rw-r--r--qadevOOo/tests/java/ifc/configuration/_XTemplateInstance.java41
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XBackend.java250
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XBackendEntities.java173
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XLayer.java81
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XLayerHandler.java242
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XLayerImporter.java157
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XMultiLayerStratum.java303
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XSchema.java253
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XSchemaSupplier.java109
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XSingleLayerStratum.java165
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XUpdateHandler.java234
-rw-r--r--qadevOOo/tests/java/ifc/connection/_XAcceptor.java304
-rw-r--r--qadevOOo/tests/java/ifc/connection/_XConnector.java186
-rw-r--r--qadevOOo/tests/java/ifc/container/_XChild.java91
-rw-r--r--qadevOOo/tests/java/ifc/container/_XContainer.java342
-rw-r--r--qadevOOo/tests/java/ifc/container/_XContainerQuery.java154
-rw-r--r--qadevOOo/tests/java/ifc/container/_XContentEnumerationAccess.java86
-rw-r--r--qadevOOo/tests/java/ifc/container/_XElementAccess.java60
-rw-r--r--qadevOOo/tests/java/ifc/container/_XEnumeration.java115
-rw-r--r--qadevOOo/tests/java/ifc/container/_XEnumerationAccess.java47
-rw-r--r--qadevOOo/tests/java/ifc/container/_XHierarchicalName.java71
-rw-r--r--qadevOOo/tests/java/ifc/container/_XHierarchicalNameAccess.java83
-rw-r--r--qadevOOo/tests/java/ifc/container/_XIndexAccess.java144
-rw-r--r--qadevOOo/tests/java/ifc/container/_XIndexContainer.java201
-rw-r--r--qadevOOo/tests/java/ifc/container/_XIndexReplace.java200
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNameAccess.java149
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNameContainer.java245
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNameReplace.java216
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNamed.java156
-rw-r--r--qadevOOo/tests/java/ifc/container/_XSet.java141
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java68
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java88
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java131
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java46
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java162
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java47
-rw-r--r--qadevOOo/tests/java/ifc/document/_ExportFilter.java42
-rw-r--r--qadevOOo/tests/java/ifc/document/_ImportFilter.java43
-rw-r--r--qadevOOo/tests/java/ifc/document/_LinkTarget.java66
-rw-r--r--qadevOOo/tests/java/ifc/document/_OfficeDocument.java36
-rw-r--r--qadevOOo/tests/java/ifc/document/_Settings.java160
-rw-r--r--qadevOOo/tests/java/ifc/document/_XActionLockable.java100
-rw-r--r--qadevOOo/tests/java/ifc/document/_XDocumentInsertable.java190
-rw-r--r--qadevOOo/tests/java/ifc/document/_XEmbeddedObjectSupplier.java47
-rw-r--r--qadevOOo/tests/java/ifc/document/_XEventBroadcaster.java74
-rw-r--r--qadevOOo/tests/java/ifc/document/_XEventsSupplier.java51
-rw-r--r--qadevOOo/tests/java/ifc/document/_XExporter.java82
-rw-r--r--qadevOOo/tests/java/ifc/document/_XFilter.java177
-rw-r--r--qadevOOo/tests/java/ifc/document/_XImporter.java68
-rw-r--r--qadevOOo/tests/java/ifc/document/_XLinkTargetSupplier.java48
-rw-r--r--qadevOOo/tests/java/ifc/document/_XMimeTypeInfo.java80
-rw-r--r--qadevOOo/tests/java/ifc/document/_XTypeDetection.java115
-rw-r--r--qadevOOo/tests/java/ifc/document/_XViewDataSupplier.java109
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_AreaShapeDescriptor.java109
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ConnectorProperties.java39
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ConnectorShape.java70
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ConnectorShapeDescriptor.java35
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_DimensioningShapeDescriptor.java39
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_DrawingDocument.java36
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_DrawingDocumentDrawView.java172
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_EllipseShape.java37
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_EllipseShapeDescriptor.java27
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_FillProperties.java213
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GenericDrawPage.java87
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GenericDrawingDocument.java25
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GraphicObjectShape.java157
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GraphicObjectShapeDescriptor.java65
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_Layer.java38
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_LineProperties.java77
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_LineShapeDescriptor.java137
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_MeasureProperties.java51
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_MeasureShape.java37
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_PolyPolygonBezierDescriptor.java38
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_PolyPolygonDescriptor.java38
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_RotationDescriptor.java94
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ShadowDescriptor.java35
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ShadowProperties.java39
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_Shape.java151
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ShapeDescriptor.java134
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_Text.java61
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_TextProperties.java58
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_TextShape.java35
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_TextShapeDescriptor.java27
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XConnectorShape.java139
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XControlShape.java96
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPageDuplicator.java81
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPageSupplier.java35
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPages.java85
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPagesSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawView.java104
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XGluePointsSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XLayerManager.java157
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XLayerSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XMasterPageTarget.java99
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XMasterPagesSupplier.java54
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShape.java186
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeBinder.java100
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeCombiner.java101
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeDescriptor.java87
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeGroup.java61
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeGrouper.java101
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapes.java100
-rw-r--r--qadevOOo/tests/java/ifc/form/_DataAwareControlModel.java163
-rw-r--r--qadevOOo/tests/java/ifc/form/_FormComponent.java34
-rw-r--r--qadevOOo/tests/java/ifc/form/_FormControlModel.java36
-rw-r--r--qadevOOo/tests/java/ifc/form/_XApproveActionBroadcaster.java102
-rw-r--r--qadevOOo/tests/java/ifc/form/_XBoundComponent.java49
-rw-r--r--qadevOOo/tests/java/ifc/form/_XBoundControl.java73
-rw-r--r--qadevOOo/tests/java/ifc/form/_XChangeBroadcaster.java179
-rw-r--r--qadevOOo/tests/java/ifc/form/_XConfirmDeleteBroadcaster.java64
-rw-r--r--qadevOOo/tests/java/ifc/form/_XDatabaseParameterBroadcaster.java93
-rw-r--r--qadevOOo/tests/java/ifc/form/_XFormController.java151
-rw-r--r--qadevOOo/tests/java/ifc/form/_XFormsSupplier.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/_XGrid.java74
-rw-r--r--qadevOOo/tests/java/ifc/form/_XGridColumnFactory.java71
-rw-r--r--qadevOOo/tests/java/ifc/form/_XGridFieldDataSupplier.java59
-rw-r--r--qadevOOo/tests/java/ifc/form/_XImageProducerSupplier.java52
-rw-r--r--qadevOOo/tests/java/ifc/form/_XLoadListener.java85
-rw-r--r--qadevOOo/tests/java/ifc/form/_XLoadable.java225
-rw-r--r--qadevOOo/tests/java/ifc/form/_XReset.java170
-rw-r--r--qadevOOo/tests/java/ifc/form/_XSubmit.java171
-rw-r--r--qadevOOo/tests/java/ifc/form/_XUpdateBroadcaster.java232
-rw-r--r--qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseCheckBox.java27
-rw-r--r--qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseRadioButton.java27
-rw-r--r--qadevOOo/tests/java/ifc/form/binding/_XBindableValue.java106
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_CheckBox.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ComboBox.java34
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_CommandButton.java36
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_CurrencyField.java50
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DataForm.java83
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseComboBox.java37
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseForm.java88
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseFormattedField.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseImageControl.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseListBox.java37
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabasePatternField.java36
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseTextField.java36
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DateField.java47
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_FileControl.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_FormattedField.java26
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_GridControl.java96
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_HTMLForm.java38
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_HiddenControl.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ImageButton.java37
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ListBox.java37
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_NavigationToolBar.java45
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_NumericField.java49
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_PatternField.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_RadioButton.java37
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_RichTextControl.java25
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ScrollBar.java25
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_SpinButton.java25
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_TextField.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_TimeField.java49
-rw-r--r--qadevOOo/tests/java/ifc/form/submission/_XSubmission.java178
-rw-r--r--qadevOOo/tests/java/ifc/form/submission/_XSubmissionSupplier.java72
-rw-r--r--qadevOOo/tests/java/ifc/form/validation/_XValidatable.java76
-rw-r--r--qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java229
-rw-r--r--qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java81
-rw-r--r--qadevOOo/tests/java/ifc/formula/_FormulaProperties.java90
-rw-r--r--qadevOOo/tests/java/ifc/frame/_Desktop.java45
-rw-r--r--qadevOOo/tests/java/ifc/frame/_Frame.java26
-rw-r--r--qadevOOo/tests/java/ifc/frame/_FrameLoader.java36
-rw-r--r--qadevOOo/tests/java/ifc/frame/_SynchronousFrameLoader.java36
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XComponentLoader.java139
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XController.java218
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDesktop.java120
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatch.java221
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchProvider.java155
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchProviderInterception.java134
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchRecorder.java208
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchRecorderSupplier.java224
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDocumentTemplates.java267
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFrame.java571
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFrameActionListener.java35
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFrameLoader.java192
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFramesSupplier.java204
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XLayoutManager.java190
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XModel.java249
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XModuleManager.java153
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XNotifyingDispatch.java118
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XPopupMenuController.java218
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XStatusListener.java40
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XStorable.java218
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XSynchronousFrameLoader.java172
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XTasksSupplier.java62
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XUIControllerRegistration.java55
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XBreakIterator.java679
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XCalendar.java523
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XCharacterClassification.java398
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XCollator.java422
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XExtendedCalendar.java125
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XExtendedIndexEntrySupplier.java311
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XExtendedTransliteration.java86
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XIndexEntrySupplier.java98
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XLocaleData.java467
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XNumberFormatCode.java154
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XTransliteration.java445
-rw-r--r--qadevOOo/tests/java/ifc/inspection/_XObjectInspector.java149
-rw-r--r--qadevOOo/tests/java/ifc/inspection/_XObjectInspectorModel.java151
-rw-r--r--qadevOOo/tests/java/ifc/io/_XActiveDataControl.java238
-rw-r--r--qadevOOo/tests/java/ifc/io/_XActiveDataSink.java104
-rw-r--r--qadevOOo/tests/java/ifc/io/_XActiveDataSource.java97
-rw-r--r--qadevOOo/tests/java/ifc/io/_XConnectable.java125
-rw-r--r--qadevOOo/tests/java/ifc/io/_XDataInputStream.java414
-rw-r--r--qadevOOo/tests/java/ifc/io/_XDataOutputStream.java245
-rw-r--r--qadevOOo/tests/java/ifc/io/_XInputStream.java238
-rw-r--r--qadevOOo/tests/java/ifc/io/_XMarkableStream.java188
-rw-r--r--qadevOOo/tests/java/ifc/io/_XObjectInputStream.java165
-rw-r--r--qadevOOo/tests/java/ifc/io/_XObjectOutputStream.java84
-rw-r--r--qadevOOo/tests/java/ifc/io/_XOutputStream.java170
-rw-r--r--qadevOOo/tests/java/ifc/io/_XPersistObject.java247
-rw-r--r--qadevOOo/tests/java/ifc/java/_XJavaThreadRegister_11.java62
-rw-r--r--qadevOOo/tests/java/ifc/java/_XJavaVM.java62
-rw-r--r--qadevOOo/tests/java/ifc/lang/_ServiceManager.java51
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XComponent.java168
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XEventListener.java53
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XInitialization.java102
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XLocalizable.java63
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XMain.java63
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XMultiComponentFactory.java122
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XMultiServiceFactory.java188
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XServiceDisplayName.java50
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XServiceInfo.java88
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XSingleServiceFactory.java160
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XTypeProvider.java82
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_LinguProperties.java52
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XAvailableLocales.java48
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XDictionaryList.java286
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XHyphenator.java102
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceEventBroadcaster.java85
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceManager.java174
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XSearchableDictionaryList.java64
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XSpellChecker.java108
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XSupportedLocales.java80
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XThesaurus.java63
-rw-r--r--qadevOOo/tests/java/ifc/loader/_XImplementationLoader.java180
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_OutlineView.java27
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_Presentation.java83
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_PresentationView.java48
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_PreviewView.java30
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_SlidesView.java25
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_XCustomPresentationSupplier.java49
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_XPresentation.java74
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_XPresentationSupplier.java49
-rw-r--r--qadevOOo/tests/java/ifc/reflection/_XIdlReflection.java97
-rw-r--r--qadevOOo/tests/java/ifc/reflection/_XProxyFactory.java88
-rw-r--r--qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java86
-rw-r--r--qadevOOo/tests/java/ifc/registry/_XImplementationRegistration.java184
-rw-r--r--qadevOOo/tests/java/ifc/registry/_XSimpleRegistry.java405
-rw-r--r--qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java492
-rw-r--r--qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java103
-rw-r--r--qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java105
-rw-r--r--qadevOOo/tests/java/ifc/script/_XTypeConverter.java122
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java116
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DataSource.java165
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java36
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java46
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_RowSet.java144
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java41
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java51
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java75
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java77
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java52
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java207
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java29
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java290
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java521
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_ResultSet.java40
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_RowSet.java72
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XCloseable.java85
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XColumnLocate.java76
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XDataSource.java105
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XDriver.java205
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XDriverManager.java152
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XIsolatedConnection.java111
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XParameters.java564
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XResultSet.java497
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XResultSetMetaDataSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XResultSetUpdate.java255
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XRow.java527
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XRowSet.java192
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XRowUpdate.java683
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XWarningsSupplier.java130
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_ResultSet.java36
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XColumnsSupplier.java70
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XCreateCatalog.java41
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XDataDefinitionSupplier.java163
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XDeleteRows.java84
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XDropCatalog.java41
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XRowLocate.java225
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XTablesSupplier.java71
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SpreadsheetDocument.java41
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_TableAutoFormatField.java124
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangeData.java76
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangesQuery.java300
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XEnhancedMouseClickBroadcaster.java138
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java353
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterProperties.java537
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterPropertiesAsian.java68
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterPropertiesComplex.java61
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterStyle.java41
-rw-r--r--qadevOOo/tests/java/ifc/style/_PageProperties.java117
-rw-r--r--qadevOOo/tests/java/ifc/style/_PageStyle.java28
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphProperties.java456
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphPropertiesAsian.java78
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphPropertiesComplex.java47
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphStyle.java27
-rw-r--r--qadevOOo/tests/java/ifc/style/_Style.java45
-rw-r--r--qadevOOo/tests/java/ifc/style/_XStyle.java109
-rw-r--r--qadevOOo/tests/java/ifc/style/_XStyleFamiliesSupplier.java46
-rw-r--r--qadevOOo/tests/java/ifc/system/_XSimpleMailClientSupplier.java68
-rw-r--r--qadevOOo/tests/java/ifc/system/_XSystemShellExecute.java109
-rw-r--r--qadevOOo/tests/java/ifc/table/_CellProperties.java102
-rw-r--r--qadevOOo/tests/java/ifc/table/_XAutoFormattable.java126
-rw-r--r--qadevOOo/tests/java/ifc/table/_XCellRange.java143
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableChart.java116
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableColumns.java391
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableRows.java130
-rw-r--r--qadevOOo/tests/java/ifc/task/_XInteractionHandler.java74
-rw-r--r--qadevOOo/tests/java/ifc/task/_XJob.java90
-rw-r--r--qadevOOo/tests/java/ifc/task/_XJobExecutor.java68
-rw-r--r--qadevOOo/tests/java/ifc/task/_XStatusIndicatorFactory.java67
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseFrame.java116
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseFrameProperties.java37
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseIndex.java201
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseIndexMark.java36
-rw-r--r--qadevOOo/tests/java/ifc/text/_CellProperties.java150
-rw-r--r--qadevOOo/tests/java/ifc/text/_CellRange.java94
-rw-r--r--qadevOOo/tests/java/ifc/text/_Defaults.java32
-rw-r--r--qadevOOo/tests/java/ifc/text/_DocumentIndex.java45
-rw-r--r--qadevOOo/tests/java/ifc/text/_DocumentIndexMark.java38
-rw-r--r--qadevOOo/tests/java/ifc/text/_DocumentSettings.java26
-rw-r--r--qadevOOo/tests/java/ifc/text/_Footnote.java47
-rw-r--r--qadevOOo/tests/java/ifc/text/_FootnoteSettings.java95
-rw-r--r--qadevOOo/tests/java/ifc/text/_GenericTextDocument.java39
-rw-r--r--qadevOOo/tests/java/ifc/text/_LineNumberingProperties.java54
-rw-r--r--qadevOOo/tests/java/ifc/text/_MailMerge.java167
-rw-r--r--qadevOOo/tests/java/ifc/text/_NumberingLevel.java163
-rw-r--r--qadevOOo/tests/java/ifc/text/_NumberingRules.java39
-rw-r--r--qadevOOo/tests/java/ifc/text/_PrintSettings.java47
-rw-r--r--qadevOOo/tests/java/ifc/text/_Text.java26
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextColumns.java64
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextContent.java37
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextDocument.java39
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextEmbeddedObject.java59
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextFieldMaster.java37
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextFrame.java61
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextGraphicObject.java162
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextPortion.java48
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextSection.java142
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextTable.java110
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextTableRow.java43
-rw-r--r--qadevOOo/tests/java/ifc/text/_ViewSettings.java61
-rw-r--r--qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java132
-rw-r--r--qadevOOo/tests/java/ifc/text/_XAutoTextEntry.java69
-rw-r--r--qadevOOo/tests/java/ifc/text/_XAutoTextGroup.java299
-rw-r--r--qadevOOo/tests/java/ifc/text/_XBookmarksSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/text/_XChapterNumberingSupplier.java54
-rw-r--r--qadevOOo/tests/java/ifc/text/_XDefaultNumberingProvider.java65
-rw-r--r--qadevOOo/tests/java/ifc/text/_XDocumentIndex.java115
-rw-r--r--qadevOOo/tests/java/ifc/text/_XDocumentIndexesSupplier.java54
-rw-r--r--qadevOOo/tests/java/ifc/text/_XEndnotesSupplier.java72
-rw-r--r--qadevOOo/tests/java/ifc/text/_XFootnote.java101
-rw-r--r--qadevOOo/tests/java/ifc/text/_XFootnotesSettingsSupplier.java54
-rw-r--r--qadevOOo/tests/java/ifc/text/_XFootnotesSupplier.java73
-rw-r--r--qadevOOo/tests/java/ifc/text/_XLineNumberingProperties.java52
-rw-r--r--qadevOOo/tests/java/ifc/text/_XMailMergeBroadcaster.java140
-rw-r--r--qadevOOo/tests/java/ifc/text/_XPageCursor.java162
-rw-r--r--qadevOOo/tests/java/ifc/text/_XPagePrintable.java152
-rw-r--r--qadevOOo/tests/java/ifc/text/_XParagraphCursor.java128
-rw-r--r--qadevOOo/tests/java/ifc/text/_XReferenceMarksSupplier.java57
-rw-r--r--qadevOOo/tests/java/ifc/text/_XRelativeTextContentInsert.java126
-rw-r--r--qadevOOo/tests/java/ifc/text/_XSentenceCursor.java118
-rw-r--r--qadevOOo/tests/java/ifc/text/_XSimpleText.java126
-rw-r--r--qadevOOo/tests/java/ifc/text/_XText.java157
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextColumns.java105
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextContent.java108
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextCursor.java235
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextDocument.java62
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextEmbeddedObjectsSupplier.java52
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextField.java57
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextFieldsSupplier.java178
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextFrame.java59
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextFramesSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextGraphicObjectsSupplier.java58
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextRange.java170
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextRangeCompare.java174
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextRangeMover.java88
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextSection.java68
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextSectionsSupplier.java66
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextTable.java173
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextTableCursor.java283
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextTablesSupplier.java57
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextViewCursorSupplier.java53
-rw-r--r--qadevOOo/tests/java/ifc/text/_XWordCursor.java124
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java106
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java104
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java114
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java174
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java234
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java41
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java67
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProvider.java130
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java51
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java275
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XDataContainer.java126
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java90
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java84
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java62
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java50
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java89
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java69
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java539
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java70
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java150
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XContextMenuInterception.java201
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManager.java73
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManagerSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIConfiguration.java94
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIConfigurationListener.java44
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java354
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIConfigurationPersistence.java75
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIConfigurationStorage.java68
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIElementFactory.java47
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XUIElementFactoryRegistration.java72
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_FilePicker.java27
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XControlAccess.java133
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XControlInformation.java178
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XExecutableDialog.java176
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePicker.java151
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerControlAccess.java194
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerNotifier.java270
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePreview.java113
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilterGroupManager.java55
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilterManager.java97
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFolderPicker.java105
-rw-r--r--qadevOOo/tests/java/ifc/uno/_XComponentContext.java72
-rw-r--r--qadevOOo/tests/java/ifc/uno/_XNamingService.java147
-rw-r--r--qadevOOo/tests/java/ifc/util/_PathSettings.java79
-rw-r--r--qadevOOo/tests/java/ifc/util/_SearchDescriptor.java44
-rw-r--r--qadevOOo/tests/java/ifc/util/_XCancellable.java57
-rw-r--r--qadevOOo/tests/java/ifc/util/_XChangesBatch.java164
-rw-r--r--qadevOOo/tests/java/ifc/util/_XChangesNotifier.java213
-rw-r--r--qadevOOo/tests/java/ifc/util/_XCloneable.java102
-rw-r--r--qadevOOo/tests/java/ifc/util/_XFlushable.java101
-rw-r--r--qadevOOo/tests/java/ifc/util/_XImportable.java192
-rw-r--r--qadevOOo/tests/java/ifc/util/_XModeSelector.java95
-rw-r--r--qadevOOo/tests/java/ifc/util/_XModifiable.java48
-rw-r--r--qadevOOo/tests/java/ifc/util/_XModifyBroadcaster.java73
-rw-r--r--qadevOOo/tests/java/ifc/util/_XNumberFormatsSupplier.java89
-rw-r--r--qadevOOo/tests/java/ifc/util/_XNumberFormatter.java119
-rw-r--r--qadevOOo/tests/java/ifc/util/_XProtectable.java75
-rw-r--r--qadevOOo/tests/java/ifc/util/_XRefreshable.java110
-rw-r--r--qadevOOo/tests/java/ifc/util/_XReplaceDescriptor.java65
-rw-r--r--qadevOOo/tests/java/ifc/util/_XReplaceable.java140
-rw-r--r--qadevOOo/tests/java/ifc/util/_XSearchDescriptor.java77
-rw-r--r--qadevOOo/tests/java/ifc/util/_XSearchable.java178
-rw-r--r--qadevOOo/tests/java/ifc/util/_XSortable.java231
-rw-r--r--qadevOOo/tests/java/ifc/util/_XStringEscape.java55
-rw-r--r--qadevOOo/tests/java/ifc/util/_XStringSubstitution.java92
-rw-r--r--qadevOOo/tests/java/ifc/util/_XURLTransformer.java461
-rw-r--r--qadevOOo/tests/java/ifc/view/_XControlAccess.java115
-rw-r--r--qadevOOo/tests/java/ifc/view/_XFormLayerAccess.java150
-rw-r--r--qadevOOo/tests/java/ifc/view/_XMultiSelectionSupplier.java415
-rw-r--r--qadevOOo/tests/java/ifc/view/_XPrintJobBroadcaster.java146
-rw-r--r--qadevOOo/tests/java/ifc/view/_XPrintSettingsSupplier.java53
-rw-r--r--qadevOOo/tests/java/ifc/view/_XPrintable.java179
-rw-r--r--qadevOOo/tests/java/ifc/view/_XScreenCursor.java78
-rw-r--r--qadevOOo/tests/java/ifc/view/_XSelectionSupplier.java199
-rw-r--r--qadevOOo/tests/java/ifc/view/_XViewSettingsSupplier.java53
-rw-r--r--qadevOOo/tests/java/ifc/xml/_UserDefinedAttributesSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/xml/sax/_XDocumentHandler.java392
-rw-r--r--qadevOOo/tests/java/mod/_acceptor/Acceptor.java115
-rw-r--r--qadevOOo/tests/java/mod/_acceptor/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_acceptor/uno/Acceptor.java104
-rw-r--r--qadevOOo/tests/java/mod/_ado/ODriver.java89
-rw-r--r--qadevOOo/tests/java/mod/_basctl/AccessibleShape.java135
-rw-r--r--qadevOOo/tests/java/mod/_brdgfctr/BridgeFactory.java101
-rw-r--r--qadevOOo/tests/java/mod/_brdgfctr/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_bridgefac/uno/BridgeFactory.java97
-rw-r--r--qadevOOo/tests/java/mod/_bridgefac/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedContentResultSetFactory.java148
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedContentResultSetStubFactory.java138
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetFactory.java145
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetStubFactory.java131
-rw-r--r--qadevOOo/tests/java/mod/_cmdmail/SimpleCommandMail.java52
-rw-r--r--qadevOOo/tests/java/mod/_cnt/ChaosContentProvider.java89
-rw-r--r--qadevOOo/tests/java/mod/_cnt/CntUnoDataContainer.java112
-rw-r--r--qadevOOo/tests/java/mod/_cnt/PropertyMatcherFactory.java65
-rw-r--r--qadevOOo/tests/java/mod/_configmgr/ConfigurationProvider.java44
-rw-r--r--qadevOOo/tests/java/mod/_configmgr/DefaultProvider.java40
-rw-r--r--qadevOOo/tests/java/mod/_configmgr/ProviderTestEnvironment.java42
-rw-r--r--qadevOOo/tests/java/mod/_connector/uno/Connector.java104
-rw-r--r--qadevOOo/tests/java/mod/_connector/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_connectr/Connector.java108
-rw-r--r--qadevOOo/tests/java/mod/_connectr/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_corefl/CoreReflection.java61
-rw-r--r--qadevOOo/tests/java/mod/_corefl/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_corereflection/uno/CoreReflection.java58
-rw-r--r--qadevOOo/tests/java/mod/_corereflection/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_cpld/DLLComponentLoader.java94
-rw-r--r--qadevOOo/tests/java/mod/_cpld/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java261
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/DBContentLoader.java82
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java254
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OCommandDefinition.java65
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatabaseContext.java106
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatabaseSource.java175
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatasourceAdministrationDialog.java75
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatasourceBrowser.java297
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OInteractionHandler.java90
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OQueryDesign.java224
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ORowSet.java608
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OSQLMessageDialog.java127
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OSingleSelectQueryComposer.java245
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java426
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java267
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_dbpool/OConnectionPool.java101
-rw-r--r--qadevOOo/tests/java/mod/_defreg/NestedRegistry.java201
-rw-r--r--qadevOOo/tests/java/mod/_defreg/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_dtrans/generic.java60
-rw-r--r--qadevOOo/tests/java/mod/_dynamicloader/Dynamic.java78
-rw-r--r--qadevOOo/tests/java/mod/_file/calc/ODriver.java95
-rw-r--r--qadevOOo/tests/java/mod/_file/dbase/ODriver.java92
-rw-r--r--qadevOOo/tests/java/mod/_file/flat/ODriver.java90
-rw-r--r--qadevOOo/tests/java/mod/_fileacc/SimpleFileAccess.java69
-rw-r--r--qadevOOo/tests/java/mod/_fileacc/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_fop/FolderPicker.java80
-rw-r--r--qadevOOo/tests/java/mod/_forms/GenericModelTest.java526
-rw-r--r--qadevOOo/tests/java/mod/_forms/OButtonControl.java202
-rw-r--r--qadevOOo/tests/java/mod/_forms/OButtonModel.java106
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCheckBoxControl.java214
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCheckBoxModel.java121
-rw-r--r--qadevOOo/tests/java/mod/_forms/OComboBoxControl.java223
-rw-r--r--qadevOOo/tests/java/mod/_forms/OComboBoxModel.java135
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCurrencyControl.java230
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCurrencyModel.java131
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODatabaseForm.java863
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODateControl.java222
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODateModel.java150
-rw-r--r--qadevOOo/tests/java/mod/_forms/OEditControl.java240
-rw-r--r--qadevOOo/tests/java/mod/_forms/OEditModel.java142
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFileControlModel.java188
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFixedTextModel.java99
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFormattedControl.java219
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFormattedFieldWrapper.java135
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFormsCollection.java179
-rw-r--r--qadevOOo/tests/java/mod/_forms/OGridControlModel.java347
-rw-r--r--qadevOOo/tests/java/mod/_forms/OGroupBoxControl.java193
-rw-r--r--qadevOOo/tests/java/mod/_forms/OGroupBoxModel.java99
-rw-r--r--qadevOOo/tests/java/mod/_forms/OHiddenModel.java175
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageButtonControl.java198
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageButtonModel.java103
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageControlControl.java199
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageControlModel.java134
-rw-r--r--qadevOOo/tests/java/mod/_forms/OListBoxControl.java156
-rw-r--r--qadevOOo/tests/java/mod/_forms/OListBoxModel.java217
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONavigationBarControl.java159
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONavigationBarModel.java52
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONumericControl.java224
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONumericModel.java133
-rw-r--r--qadevOOo/tests/java/mod/_forms/OPatternControl.java222
-rw-r--r--qadevOOo/tests/java/mod/_forms/OPatternModel.java138
-rw-r--r--qadevOOo/tests/java/mod/_forms/ORadioButtonControl.java201
-rw-r--r--qadevOOo/tests/java/mod/_forms/ORadioButtonModel.java157
-rw-r--r--qadevOOo/tests/java/mod/_forms/OScrollBarModel.java93
-rw-r--r--qadevOOo/tests/java/mod/_forms/OSpinButtonModel.java95
-rw-r--r--qadevOOo/tests/java/mod/_forms/OTimeControl.java224
-rw-r--r--qadevOOo/tests/java/mod/_forms/OTimeModel.java213
-rw-r--r--qadevOOo/tests/java/mod/_forms/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_fps/FilePicker.java119
-rw-r--r--qadevOOo/tests/java/mod/_ftransl/DataFormatTranslator.java83
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ControlMenuController.java47
-rw-r--r--qadevOOo/tests/java/mod/_fwk/Desktop.java112
-rw-r--r--qadevOOo/tests/java/mod/_fwk/DispatchRecorder.java156
-rw-r--r--qadevOOo/tests/java/mod/_fwk/DispatchRecorderSupplier.java55
-rw-r--r--qadevOOo/tests/java/mod/_fwk/FontMenuController.java44
-rw-r--r--qadevOOo/tests/java/mod/_fwk/FontSizeMenuController.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/FooterMenuController.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/FormatMenuController.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/Frame.java104
-rw-r--r--qadevOOo/tests/java/mod/_fwk/HeaderMenuController.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/JobExecutor.java273
-rw-r--r--qadevOOo/tests/java/mod/_fwk/JobHandler.java73
-rw-r--r--qadevOOo/tests/java/mod/_fwk/LayoutManager.java105
-rw-r--r--qadevOOo/tests/java/mod/_fwk/MacrosMenuController.java41
-rw-r--r--qadevOOo/tests/java/mod/_fwk/MailToDispatcher.java61
-rw-r--r--qadevOOo/tests/java/mod/_fwk/MenuBarFactory.java41
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ModuleManager.java227
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java188
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManagerSupplier.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/PopupMenuControllerFactory.java99
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ServiceHandler.java61
-rw-r--r--qadevOOo/tests/java/mod/_fwk/SoundHandler.java62
-rw-r--r--qadevOOo/tests/java/mod/_fwk/StatusBarControllerFactory.java47
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ToolBarsMenuController.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/UICategoryDescription.java42
-rw-r--r--qadevOOo/tests/java/mod/_fwk/UICommandDescription.java41
-rw-r--r--qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java196
-rw-r--r--qadevOOo/tests/java/mod/_fwk/UIElementFactoryManager.java84
-rw-r--r--qadevOOo/tests/java/mod/_fwk/URLTransformer.java53
-rw-r--r--qadevOOo/tests/java/mod/_fwl/ContentHandlerFactory.java93
-rw-r--r--qadevOOo/tests/java/mod/_fwl/FilterFactory.java160
-rw-r--r--qadevOOo/tests/java/mod/_fwl/FrameLoaderFactory.java87
-rw-r--r--qadevOOo/tests/java/mod/_fwl/PathSettings.java138
-rw-r--r--qadevOOo/tests/java/mod/_fwl/SubstituteVariables.java68
-rw-r--r--qadevOOo/tests/java/mod/_fwl/TypeDetection.java152
-rw-r--r--qadevOOo/tests/java/mod/_i18n/BreakIterator.java98
-rw-r--r--qadevOOo/tests/java/mod/_i18n/CalendarImpl.java61
-rw-r--r--qadevOOo/tests/java/mod/_i18n/ChapterCollator.java65
-rw-r--r--qadevOOo/tests/java/mod/_i18n/CharacterClassification.java68
-rw-r--r--qadevOOo/tests/java/mod/_i18n/Collator.java62
-rw-r--r--qadevOOo/tests/java/mod/_i18n/IndexEntrySupplier.java67
-rw-r--r--qadevOOo/tests/java/mod/_i18n/LocaleData.java67
-rw-r--r--qadevOOo/tests/java/mod/_i18n/NumberFormatCodeMapper.java71
-rw-r--r--qadevOOo/tests/java/mod/_i18n/Transliteration.java62
-rw-r--r--qadevOOo/tests/java/mod/_implreg/uno/ImplementationRegistration.java61
-rw-r--r--qadevOOo/tests/java/mod/_implreg/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_impreg/ImplementationRegistration.java66
-rw-r--r--qadevOOo/tests/java/mod/_impreg/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_insp/Introspection.java65
-rw-r--r--qadevOOo/tests/java/mod/_insp/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_introspection/uno/Introspection.java61
-rw-r--r--qadevOOo/tests/java/mod/_introspection/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_inv/Invocation.java92
-rw-r--r--qadevOOo/tests/java/mod/_inv/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_invadp/InvocationAdapterFactory.java61
-rw-r--r--qadevOOo/tests/java/mod/_invadp/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_invocadapt/uno/InvocationAdapterFactory.java60
-rw-r--r--qadevOOo/tests/java/mod/_invocadapt/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_invocation/uno/Invocation.java90
-rw-r--r--qadevOOo/tests/java/mod/_invocation/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_javaloader/JavaComponentLoader.java83
-rw-r--r--qadevOOo/tests/java/mod/_javaloader/uno/JavaComponentLoader.java80
-rw-r--r--qadevOOo/tests/java/mod/_javavm/uno/JavaVirtualMachine.java61
-rw-r--r--qadevOOo/tests/java/mod/_javavm/uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_jdbc/JDBCDriver.java107
-rw-r--r--qadevOOo/tests/java/mod/_jen/JavaVirtualMachine.java63
-rw-r--r--qadevOOo/tests/java/mod/_jen/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_lng/DicList.java97
-rw-r--r--qadevOOo/tests/java/mod/_lng/LinguProps.java82
-rw-r--r--qadevOOo/tests/java/mod/_lng/LngSvcMgr.java76
-rw-r--r--qadevOOo/tests/java/mod/_lnn/Hyphenator.java94
-rw-r--r--qadevOOo/tests/java/mod/_lnn/SpellChecker.java92
-rw-r--r--qadevOOo/tests/java/mod/_lnn/Thesaurus.java82
-rw-r--r--qadevOOo/tests/java/mod/_mcnttype/MimeContentTypeFactory.java71
-rw-r--r--qadevOOo/tests/java/mod/_namingservice/NamingService.java88
-rw-r--r--qadevOOo/tests/java/mod/_namingservice/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_namingservice/uno/NamingService.java85
-rw-r--r--qadevOOo/tests/java/mod/_nestedreg/uno/NestedRegistry.java197
-rw-r--r--qadevOOo/tests/java/mod/_nestedreg/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_odbc/ODBCDriver.java85
-rw-r--r--qadevOOo/tests/java/mod/_pcr/ObjectInspector.java191
-rw-r--r--qadevOOo/tests/java/mod/_pcr/ObjectInspectorModel.java147
-rw-r--r--qadevOOo/tests/java/mod/_proxyfac/ProxyFactory.java63
-rw-r--r--qadevOOo/tests/java/mod/_proxyfac/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_proxyfac/uno/ProxyFactory.java61
-rw-r--r--qadevOOo/tests/java/mod/_rdbtdp/RegistryTypeDescriptionProvider.java115
-rw-r--r--qadevOOo/tests/java/mod/_rdbtdp/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_regtypeprov/uno/RegistryTypeDescriptionProvider.java110
-rw-r--r--qadevOOo/tests/java/mod/_remotebridge/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_remotebridge/uno/various.java266
-rw-r--r--qadevOOo/tests/java/mod/_remotebridge/various.java213
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java202
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java161
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java175
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java145
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java129
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java166
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java143
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java198
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java238
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java200
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java173
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java232
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java191
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java149
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java185
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java124
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java97
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java294
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellObj.java183
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java279
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java224
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java162
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java328
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java200
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java71
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java174
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java219
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScModelObj.java209
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScShapeObj.java101
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java143
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScStyleObj.java193
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTabViewObj.java233
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java384
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLContentExporter.java190
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLContentImporter.java180
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLExporter.java199
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLImporter.java176
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java181
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java171
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java182
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java199
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java185
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java196
-rw-r--r--qadevOOo/tests/java/mod/_sc/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccArea.java101
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccAxis.java99
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDataPoint.java100
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDataSeries.java100
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDiagram.java100
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccFloor.java106
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccGrid.java101
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccLegend.java99
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccLegendEntry.java99
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccTitle.java99
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccWall.java105
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java112
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartAxis.java113
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartData.java88
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java91
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartDocument.java156
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartView.java127
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDataPoint.java140
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDataRow.java147
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDiagram.java367
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartArea.java106
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartGrid.java105
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartLegend.java126
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartLine.java112
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartTitle.java105
-rw-r--r--qadevOOo/tests/java/mod/_sd/AccessibleDrawDocumentView.java149
-rw-r--r--qadevOOo/tests/java/mod/_sd/AccessibleOutlineView.java152
-rw-r--r--qadevOOo/tests/java/mod/_sd/AccessibleSlideView.java160
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java248
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_HandoutView.java276
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_NotesView.java273
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_OutlineView.java273
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_PresentationView.java273
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdDocLinkTargets.java96
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdDrawPage.java186
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdDrawPagesAccess.java109
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdGenericDrawPage.java169
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdLayer.java111
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdLayerManager.java140
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdMasterPage.java165
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdMasterPagesAccess.java107
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdPageLinkTargets.java121
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoDrawView.java249
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoOutlineView.java209
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoPresView.java249
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoSlideView.java189
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXCustomPresentation.java170
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXCustomPresentationAccess.java169
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXImpressDocument.java170
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXPresentation.java131
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXShape.java165
-rw-r--r--qadevOOo/tests/java/mod/_sd/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_servicemgr/uno/OServiceManager.java158
-rw-r--r--qadevOOo/tests/java/mod/_servicemgr/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_sfx/AppDispatchProvider.java84
-rw-r--r--qadevOOo/tests/java/mod/_sfx/DocumentTemplates.java85
-rw-r--r--qadevOOo/tests/java/mod/_sfx/FrameLoader.java79
-rw-r--r--qadevOOo/tests/java/mod/_sfx/SfxMacroLoader.java85
-rw-r--r--qadevOOo/tests/java/mod/_shlibloader/uno/DLLComponentLoader.java101
-rw-r--r--qadevOOo/tests/java/mod/_shlibloader/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_simplereg/uno/SimpleRegistry.java166
-rw-r--r--qadevOOo/tests/java/mod/_simplereg/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_simreg/SimpleRegistry.java170
-rw-r--r--qadevOOo/tests/java/mod/_simreg/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_sm/SmEditAccessible.java129
-rw-r--r--qadevOOo/tests/java/mod/_sm/SmGraphicAccessible.java132
-rw-r--r--qadevOOo/tests/java/mod/_sm/SmModel.java80
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLExporter.java185
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLImporter.java153
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLMetaExporter.java181
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLMetaImporter.java187
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLSettingsExporter.java180
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLSettingsImporter.java162
-rw-r--r--qadevOOo/tests/java/mod/_smgr/OServiceManager.java157
-rw-r--r--qadevOOo/tests/java/mod/_smgr/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_smplmail/SimpleSystemMail.java107
-rw-r--r--qadevOOo/tests/java/mod/_srtrs/SortedDynamicResultSetFactory.java75
-rw-r--r--qadevOOo/tests/java/mod/_stm/DataInputStream.java152
-rw-r--r--qadevOOo/tests/java/mod/_stm/DataOutputStream.java164
-rw-r--r--qadevOOo/tests/java/mod/_stm/MarkableInputStream.java129
-rw-r--r--qadevOOo/tests/java/mod/_stm/MarkableOutputStream.java188
-rw-r--r--qadevOOo/tests/java/mod/_stm/ObjectInputStream.java250
-rw-r--r--qadevOOo/tests/java/mod/_stm/ObjectOutputStream.java272
-rw-r--r--qadevOOo/tests/java/mod/_stm/Pipe.java99
-rw-r--r--qadevOOo/tests/java/mod/_stm/Pump.java174
-rw-r--r--qadevOOo/tests/java/mod/_stm/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/DataInputStream.java151
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/DataOutputStream.java163
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/MarkableInputStream.java128
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/MarkableOutputStream.java187
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/ObjectInputStream.java256
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/ObjectOutputStream.java271
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/Pipe.java98
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/Pump.java172
-rw-r--r--qadevOOo/tests/java/mod/_streams/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java172
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java222
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java207
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java209
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java174
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java244
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrlEntry.java217
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java132
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPage.java156
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPageList.java172
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java211
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java262
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleControlShape.java108
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleEditableTextPara.java134
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleGraphicShape.java109
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleOLEShape.java118
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePageShape.java114
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePresentationGraphicShape.java122
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePresentationOLEShape.java131
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePresentationShape.java122
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleShape.java110
-rw-r--r--qadevOOo/tests/java/mod/_svx/GraphicExporter.java209
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxDrawPage.java190
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxGraphCtrlAccessibleContext.java210
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxGraphicObject.java253
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShape.java212
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeCircle.java214
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeCollection.java133
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeConnector.java187
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeControl.java145
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeDimensioning.java155
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeGroup.java163
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygon.java250
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygonBezier.java264
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoNumberingRules.java78
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoText.java156
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextContent.java130
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextContentEnum.java133
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextCursor.java131
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextField.java129
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextRange.java142
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextRangeEnumeration.java143
-rw-r--r--qadevOOo/tests/java/mod/_svx/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_sw/CharacterStyle.java148
-rw-r--r--qadevOOo/tests/java/mod/_sw/ConditionalParagraphStyle.java142
-rw-r--r--qadevOOo/tests/java/mod/_sw/DocumentSettings.java78
-rw-r--r--qadevOOo/tests/java/mod/_sw/PageStyle.java141
-rw-r--r--qadevOOo/tests/java/mod/_sw/ParagraphStyle.java131
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentPageView.java160
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentView.java168
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleEndnoteView.java155
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleFooterView.java159
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleFootnoteView.java156
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleHeaderView.java148
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessiblePageView.java214
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleParagraphView.java126
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTableCellView.java129
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTableView.java147
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTextEmbeddedObject.java142
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTextFrameView.java166
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTextGraphicObject.java156
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXAutoTextContainer.java75
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXAutoTextEntry.java198
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXAutoTextGroup.java149
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXBodyText.java136
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXBookmark.java101
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXBookmarks.java101
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXCell.java118
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXCellRange.java137
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXChapterNumbering.java108
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDocumentIndex.java118
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDocumentIndexMark.java124
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDocumentIndexes.java108
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDrawPage.java149
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXEndnoteProperties.java109
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFieldEnumeration.java156
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFieldMaster.java99
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnote.java134
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnoteProperties.java108
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnoteText.java151
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnotes.java110
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFrames.java116
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXHeadFootText.java158
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXLineNumberingProperties.java106
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXMailMerge.java355
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXModule.java65
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXNumberingRules.java162
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXParagraph.java225
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXParagraphEnumeration.java141
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXPrintSettings.java91
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXPropertySet.java71
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXPropertySetInfo.java82
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXReferenceMark.java117
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXReferenceMarks.java128
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXShape.java120
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXStyle.java181
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXStyleFamilies.java97
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXStyleFamily.java169
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTableCellText.java146
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTableColumns.java112
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTableRows.java104
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextColumns.java168
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextCursor.java307
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextDefaults.java106
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextDocument.java215
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObject.java153
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObjects.java121
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextField.java150
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFieldMasters.java125
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFieldTypes.java126
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFrame.java138
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFrameText.java137
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextGraphicObject.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextGraphicObjects.java152
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextPortion.java154
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextPortionEnumeration.java137
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextRange.java85
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextRanges.java115
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextSearch.java116
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextSection.java159
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextSections.java122
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTable.java235
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTableCursor.java104
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTableRow.java113
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTables.java118
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextView.java254
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextViewCursor.java107
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXViewSettings.java97
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLContentExporter.java178
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLContentImporter.java157
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLExporter.java181
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLImporter.java153
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLMetaExporter.java178
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLMetaImporter.java161
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLSettingsExporter.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLSettingsImporter.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLStylesExporter.java180
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLStylesImporter.java169
-rw-r--r--qadevOOo/tests/java/mod/_sw/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_sysdtrans/SystemClipboard.java44
-rw-r--r--qadevOOo/tests/java/mod/_sysdtrans/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_syssh/SystemShellExecute.java44
-rw-r--r--qadevOOo/tests/java/mod/_tcv/TypeConverter.java59
-rw-r--r--qadevOOo/tests/java/mod/_tcv/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_tdmgr/TypeDescriptionManager.java76
-rw-r--r--qadevOOo/tests/java/mod/_tdmgr/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_text/DefaultNumberingProvider.java68
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleButton.java195
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleCheckBox.java207
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleComboBox.java194
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownComboBox.java123
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownListBox.java127
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleEdit.java194
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java189
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleList.java191
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleListBox.java205
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleListItem.java197
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java158
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java126
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuItem.java165
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java141
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessiblePopupMenu.java191
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleRadioButton.java266
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleScrollBar.java155
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java160
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBarItem.java163
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleTabControl.java225
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleTabPage.java237
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java159
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleToolBoxItem.java176
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleWindow.java173
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/MutableTreeDataModel.java98
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/MutableTreeNode.java153
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/TabController.java126
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/TabControllerModel.java83
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/Toolkit.java118
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlButton.java129
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlButtonModel.java71
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBox.java137
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBoxModel.java71
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlComboBox.java138
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlComboBoxModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlContainer.java204
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlContainerModel.java47
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyField.java140
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyFieldModel.java78
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDateField.java139
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDateFieldModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDialog.java241
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDialogModel.java173
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlEdit.java139
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlEditModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFileControl.java140
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFileControlModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFixedLineModel.java88
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFixedText.java130
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFixedTextModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedField.java145
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedFieldModel.java78
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBox.java129
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBoxModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlImageControl.java138
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlImageControlModel.java53
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlListBox.java139
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlListBoxModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlNumericField.java150
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlNumericFieldModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlPatternField.java140
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlPatternFieldModel.java53
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlProgressBarModel.java85
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButton.java130
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButtonModel.java53
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlScrollBarModel.java88
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlTimeField.java140
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlTimeFieldModel.java53
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoScrollBarControl.java156
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControl.java133
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControlModel.java60
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java265
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoTreeModel.java77
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_typeconverter/uno/TypeConverter.java54
-rw-r--r--qadevOOo/tests/java/mod/_typeconverter/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_typemgr/uno/TypeDescriptionManager.java71
-rw-r--r--qadevOOo/tests/java/mod/_typemgr/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UcbContentProviderProxyFactory.java63
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UcbPropertiesManager.java54
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UcbStore.java62
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UniversalContentBroker.java73
-rw-r--r--qadevOOo/tests/java/mod/_ucpchelp/CHelpContentProvider.java67
-rw-r--r--qadevOOo/tests/java/mod/_ucpdav/WebDAVContentProvider.java68
-rw-r--r--qadevOOo/tests/java/mod/_ucpfile/FileProvider.java65
-rw-r--r--qadevOOo/tests/java/mod/_ucpftp/FTPContentProvider.java66
-rw-r--r--qadevOOo/tests/java/mod/_ucphier/HierarchyContentProvider.java65
-rw-r--r--qadevOOo/tests/java/mod/_ucphier/HierarchyDataSource.java60
-rw-r--r--qadevOOo/tests/java/mod/_ucppkg/PackageContentProvider.java68
-rw-r--r--qadevOOo/tests/java/mod/_ucprmt/ContentProvider.java96
-rw-r--r--qadevOOo/tests/java/mod/_ucprmt/ProviderAcceptor.java52
-rw-r--r--qadevOOo/tests/java/mod/_ucprmt/ProxyProvider.java57
-rw-r--r--qadevOOo/tests/java/mod/_uui/UUIInteractionHandler.java63
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver/UnoUrlResolver.java65
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver/uno/UnoUrlResolver.java54
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver/uno/package.html23
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java182
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java188
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java184
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java186
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java171
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java161
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentExporter.java190
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentImporter.java192
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLExporter.java190
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLImporter.java192
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaExporter.java183
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaImporter.java162
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsExporter.java189
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsImporter.java178
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesExporter.java193
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesImporter.java176
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentExporter.java187
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentImporter.java201
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLExporter.java188
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLImporter.java160
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaExporter.java184
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaImporter.java161
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsExporter.java187
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsImporter.java183
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesExporter.java185
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesImporter.java180
1205 files changed, 161786 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessible.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessible.java
new file mode 100644
index 000000000..329ecc6ab
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessible.java
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessible</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getAccessibleContext()</code></li>
+ * </ul> <p>
+ * @see com.sun.star.accessibility.XAccessible
+ */
+public class _XAccessible extends MultiMethodTest {
+
+
+ public XAccessible oObj = null;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if not null value returned.
+ */
+ public void _getAccessibleContext() {
+ XAccessibleContext ac = oObj.getAccessibleContext();
+ tRes.tested("getAccessibleContext()",ac != null);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleAction.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleAction.java
new file mode 100644
index 000000000..d83b231eb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleAction.java
@@ -0,0 +1,159 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import com.sun.star.accessibility.XAccessibleAction;
+
+public class _XAccessibleAction extends lib.MultiMethodTest {
+
+ public XAccessibleAction oObj = null;
+ public int count = 0;
+
+ /**
+ * calls the method and stores the result in the <br>
+ * variable count. It is OK if no exception occurs
+ */
+
+ public void _getAccessibleActionCount() {
+ count = oObj.getAccessibleActionCount();
+ tRes.tested("getAccessibleActionCount()",count > 0);
+ }
+
+ /**
+ * calls the method with invalid argument and check if the <br>
+ * expected Exception is thrown.<br>
+ * Calls the method afterwards the first valid parameter.<br>
+ * This is the last method called and the environment is disposed<br>
+ * afterwards.
+ */
+
+ public void _doAccessibleAction() {
+ requiredMethod("getAccessibleActionKeyBinding()");
+ boolean res = true;
+
+ log.println("Calling method with wrong argument");
+ try {
+ oObj.doAccessibleAction(count);
+ log.println("Exception expected -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Expected exception -- OK");
+ res &= true;
+ }
+
+ try {
+ boolean act = false;
+ for (int i = 0; i< count; i++) {
+ log.println("do Action "+ oObj.getAccessibleActionDescription(i));
+ act = oObj.doAccessibleAction(i);
+ log.println("Worked: "+act);
+ }
+ log.println("Did action: "+act);
+ res &= act ;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Unexpected exception -- FAILED");
+ res &= false;
+ }
+
+ tRes.tested("doAccessibleAction()",res);
+ }
+
+ /**
+ * calls the method with invalid argument and check if the <br>
+ * expected Exception is thrown.<br>
+ * Calls the method afterwards all valid parameters.<br>
+ * Is ok if the exception is thrown and the resulting value
+ * for the calls with valid parameters aren't null.
+ */
+
+ public void _getAccessibleActionDescription() {
+ requiredMethod("getAccessibleActionCount()");
+ boolean res = true;
+
+ log.println("Calling method with wrong argument");
+ try {
+ oObj.getAccessibleActionDescription(count);
+ log.println("Exception expected -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Expected exception -- OK");
+ res &= true;
+ }
+
+ for (int i=0;i<count;i++) {
+ try {
+ String desc = oObj.getAccessibleActionDescription(i);
+ log.println("Found action: "+desc);
+ res &= desc!=null ;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Unexpected exception -- FAILED");
+ res &= false;
+ }
+ }
+
+ tRes.tested("getAccessibleActionDescription()",res);
+ }
+
+ /**
+ * calls the method with invalid argument and check if the <br>
+ * expected Exception is thrown.<br>
+ * Calls the method afterwards all valid parameters.<br>
+ * Is ok if the exception is thrown and the resulting value
+ * for the calls with valid parameters aren't null.
+ */
+
+ public void _getAccessibleActionKeyBinding() {
+ requiredMethod("getAccessibleActionDescription()");
+ boolean res = true;
+
+ log.println("Calling method with wrong argument");
+ try {
+ oObj.getAccessibleActionKeyBinding(count);
+ log.println("Exception expected -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Expected exception -- OK");
+ res &= true;
+ }
+
+ for (int i=0;i<count;i++) {
+ try {
+ Object key = oObj.getAccessibleActionKeyBinding(i);
+ if (key != null ) {
+ log.println("Found key: "+key.toString());
+ }
+ res &= true;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Unexpected exception -- FAILED");
+ res &= false;
+ }
+ }
+
+ tRes.tested("getAccessibleActionKeyBinding()",res);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java
new file mode 100644
index 000000000..52dad6801
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java
@@ -0,0 +1,601 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.accessibility;
+
+import java.util.ArrayList;
+import lib.MultiMethodTest;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.Size;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleComponent</code>
+ * interface methods :
+ * <ul>
+ * <li><code> containsPoint()</code></li>
+ * <li><code> getAccessibleAtPoint()</code></li>
+ * <li><code> getBounds()</code></li>
+ * <li><code> getLocation()</code></li>
+ * <li><code> getLocationOnScreen()</code></li>
+ * <li><code> getSize()</code></li>
+ * <li><code> grabFocus()</code></li>
+ * <li><code> getAccessibleKeyBinding()</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ */
+public class _XAccessibleComponent extends MultiMethodTest {
+
+ public XAccessibleComponent oObj = null;
+ private final ArrayList<Rectangle> KnownBounds = new ArrayList<Rectangle>();
+
+
+ /**
+ * First checks 4 inner bounds (upper, lower, left and right)
+ * of component bounding box to contain
+ * at least one point of the component. Second 4 outer bounds
+ * are checked to not contain any component points.<p>
+ *
+ * Has <b> OK </b> status if inner bounds contain component points
+ * and outer bounds don't contain any component points. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getBounds() </code> : to have size of a component.</li>
+ * </ul>
+ */
+ public void _containsPoint() {
+ Rectangle bounds = oObj.getBounds();
+
+ boolean result = true;
+
+ int curX = 0;
+
+ while (!oObj.containsPoint(new Point(curX, 0)) &&
+ (curX < bounds.Width)) {
+ curX++;
+ }
+
+ if (curX < bounds.Width) {
+ log.println("Upper bound of box containsPoint point (" + curX +
+ ",0) - OK");
+ } else {
+ log.println(
+ "Upper bound of box containsPoint no component points - FAILED");
+ result = false;
+ }
+
+ curX = 0;
+
+ while (!oObj.containsPoint(new Point(curX, bounds.Height - 1)) &&
+ (curX < bounds.Width)) {
+ log.println("containsPoint returns false for (" + curX + "," +
+ bounds.Height + ")");
+ curX++;
+ }
+
+ if (curX < bounds.Width) {
+ log.println("Lower bound of box containsPoint point (" + curX +
+ "," + (bounds.Height - 1) + ") - OK");
+ } else {
+ log.println(
+ "Lower bound of box containsPoint no component points - FAILED");
+ result = false;
+ }
+
+ int curY = 0;
+
+ while (!oObj.containsPoint(new Point(0, curY)) &&
+ (curY < bounds.Height)) {
+ curY++;
+ }
+
+ if (curY < bounds.Height) {
+ log.println("Left bound of box containsPoint point (0," + curY +
+ ") - OK");
+ } else {
+ log.println(
+ "Left bound of box containsPoint no component points - FAILED");
+ result = false;
+ }
+
+ curY = 0;
+
+ while (!oObj.containsPoint(new Point(bounds.Width - 1, curY)) &&
+ (curY < bounds.Height)) {
+ curY++;
+ }
+
+ if (curY < bounds.Height) {
+ log.println("Right bound of box containsPoint point (" +
+ (bounds.Width - 1) + "," + curY + ") - OK");
+ } else {
+ log.println(
+ "Right bound of box containsPoint no component points - FAILED");
+ result = false;
+ }
+
+ boolean locRes = true;
+
+ for (int x = -1; x <= bounds.Width; x++) {
+ if (oObj.containsPoint(new Point(x, -1))) {
+ log.println(
+ "Outer upper and lower bounds CONTAIN some component point"
+ + " (" + x + ", -1) - FAILED");
+ locRes = false;
+ break;
+ }
+ if (oObj.containsPoint(new Point(x, bounds.Height + bounds.Y))) {
+ log.println(
+ "Outer upper and lower bounds CONTAIN some component point"
+ + " (" + x + ", " + (bounds.Height + bounds.Y)
+ + ") - FAILED");
+ locRes = false;
+ break;
+ }
+ }
+
+ if (locRes) {
+ log.println("Outer upper and lower bounds contain no component " +
+ "points - OK");
+ } else {
+ result = false;
+ }
+
+ locRes = true;
+
+ for (int y = -1; y <= bounds.Height; y++) {
+ if (oObj.containsPoint(new Point(-1, y))) {
+ log.println(
+ "Outer left and right bounds CONTAIN some component point"
+ + " (-1, " + y + ") - FAILED");
+ locRes = false;
+ break;
+ }
+ if (oObj.containsPoint(new Point(bounds.X + bounds.Width, y))) {
+ log.println(
+ "Outer left and right bounds CONTAIN some component point"
+ + " (" + (bounds.X + bounds.Width) + ", " + y + ") - FAILED");
+ locRes = false;
+ break;
+ }
+ }
+
+ if (locRes) {
+ log.println("Outer left and right bounds contain no component " +
+ "points - OK");
+ } else {
+ result = false;
+ }
+
+ tRes.tested("containsPoint()", result);
+ }
+
+ /**
+ * Iterates through all children which implement
+ * <code>XAccessibleComponent</code> (if they exist) determines their
+ * boundaries and tries to get each child by <code>getAccessibleAtPoint</code>
+ * passing point which belongs to the child.
+ * Also the point is checked which doesn't belong to child boundary
+ * box. <p>
+ *
+ * Has <b> OK </b> status if in the first cases the right children
+ * are returned, and in the second <code>null</code> or
+ * another child is returned.
+ */
+ public void _getAccessibleAtPoint() {
+ boolean result = true;
+ XAccessibleComponent[] children = getChildrenComponents();
+
+ if (children.length == 0) {
+ log.println("There are no children supporting XAccessibleComponent");
+ tRes.tested("getAccessibleAtPoint()", result);
+ return;
+ }
+
+ for (int i = 0; i < children.length; i++) {
+ Rectangle chBnd = children[i].getBounds();
+
+ if (chBnd.X == -1) {
+ continue;
+ }
+
+ log.println("Checking child with bounds " + "(" + chBnd.X +
+ "," + chBnd.Y + "),(" + chBnd.Width + "," +
+ chBnd.Height + "): " +
+ util.AccessibilityTools.accessibleToString(
+ children[i]));
+
+ XAccessibleContext xAc = UnoRuntime.queryInterface(
+ XAccessibleContext.class,
+ children[i]);
+
+ boolean MightBeCovered = false;
+ boolean isShowing = xAc.getAccessibleStateSet()
+ .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING);
+ log.println("\tStateType containsPoint SHOWING: " +
+ isShowing);
+
+ if (!isShowing) {
+ log.println("Child is invisible - OK");
+ continue;
+ }
+
+ log.println("finding the point which lies on the component");
+
+ int curX = chBnd.Width / 2;
+ int curY = chBnd.Height / 2;
+
+ while (!children[i].containsPoint(new Point(curX, curY)) &&
+ (curX > 0) && (curY > 0)) {
+ curX--;
+ curY--;
+ }
+
+ if (curX == chBnd.Width) {
+ log.println("Couldn't find a point with containsPoint");
+
+ continue;
+ }
+
+ // trying the point laying on child
+ XAccessible xAcc = oObj.getAccessibleAtPoint(
+ new Point(chBnd.X + curX,
+ chBnd.Y + curY));
+
+
+ Point p = new Point(chBnd.X + curX,chBnd.Y + curY);
+
+ if (isCovered(p)) {
+ log.println(
+ "Child might be covered by another and can't be reached");
+ MightBeCovered = true;
+ }
+
+ KnownBounds.add(chBnd);
+
+ if (xAcc == null) {
+ log.println("The child not found at point (" +
+ (chBnd.X + curX) + "," + (chBnd.Y + curY) +
+ ") - FAILED");
+
+ result = false;
+ } else {
+ XAccessible xAccCh = UnoRuntime.queryInterface(
+ XAccessible.class,
+ children[i]);
+ XAccessibleContext xAccC = UnoRuntime.queryInterface(
+ XAccessibleContext.class,
+ children[i]);
+ log.println("Child found at point (" + (chBnd.X + curX) +
+ "," + (chBnd.Y + curY) + ") - OK");
+
+ boolean res = false;
+ int expIndex;
+ String expName;
+ String expDesc;
+
+ if (xAccCh != null) {
+ res = util.AccessibilityTools.equals(xAccCh, xAcc);
+ expIndex = xAccCh.getAccessibleContext()
+ .getAccessibleIndexInParent();
+ expName = xAccCh.getAccessibleContext()
+ .getAccessibleName();
+ expDesc = xAccCh.getAccessibleContext()
+ .getAccessibleDescription();
+ } else {
+ res = xAccC.getAccessibleName()
+ .equals(xAcc.getAccessibleContext()
+ .getAccessibleName());
+ expIndex = xAccC.getAccessibleIndexInParent();
+ expName = xAccC.getAccessibleName();
+ expDesc = xAccC.getAccessibleDescription();
+ }
+
+ if (!res) {
+ int gotIndex = xAcc.getAccessibleContext()
+ .getAccessibleIndexInParent();
+
+ if (expIndex < gotIndex) {
+ log.println("The children found is not the same");
+ log.println("The expected child " + expName);
+ log.print("is hidden behind the found Child ");
+ log.println(xAcc.getAccessibleContext()
+ .getAccessibleName() + " - OK");
+ } else {
+ log.println(
+ "The children found is not the same");
+ log.println("Expected: " + expName);
+ log.println("Description: " + expDesc);
+ log.println("Found: " +
+ xAcc.getAccessibleContext()
+ .getAccessibleName());
+ log.println("Description: " +
+ xAcc.getAccessibleContext()
+ .getAccessibleDescription());
+ if (MightBeCovered) {
+ log.println("... Child is covered by another - OK");
+ } else {
+ log.println("... FAILED");
+ result = false;
+ }
+
+ }
+ }
+ }
+
+
+ // trying the point NOT laying on child
+ xAcc = oObj.getAccessibleAtPoint(
+ new Point(chBnd.X - 1, chBnd.Y - 1));
+
+ if (xAcc == null) {
+ log.println("No children found at point (" +
+ (chBnd.X - 1) + "," + (chBnd.Y - 1) +
+ ") - OK");
+ result &= true;
+ } else {
+ XAccessible xAccCh = UnoRuntime.queryInterface(
+ XAccessible.class,
+ children[i]);
+ boolean res = util.AccessibilityTools.equals(xAccCh, xAcc);
+
+ if (res) {
+ log.println("The same child found outside " +
+ "its bounds at (" + (chBnd.X - 1) + "," +
+ (chBnd.Y - 1) + ") - FAILED");
+ result = false;
+ }
+ }
+ }
+
+ tRes.tested("getAccessibleAtPoint()", result);
+ }
+
+ /**
+ * Retrieves the component bounds and discards it. <p>
+ *
+ * Has <b> OK </b> status if boundary position (x,y) is not negative
+ * and size (Width, Height) is greater than 0.
+ */
+ public void _getBounds() {
+ boolean result = true;
+
+ Rectangle bounds = oObj.getBounds();
+ result &= ((bounds != null) && (bounds.X >= 0) && (bounds.Y >= 0) && (bounds.Width > 0) && (bounds.Height > 0));
+
+ log.println("Bounds = " +
+ ((bounds != null)
+ ? ("(" + bounds.X + "," + bounds.Y + "),(" +
+ bounds.Width + "," + bounds.Height + ")") : "null"));
+
+ tRes.tested("getBounds()", result);
+ }
+
+ /**
+ * Gets the location. <p>
+ *
+ * Has <b> OK </b> status if the location is the same as location
+ * of boundary obtained by <code>getBounds()</code> method.
+ */
+ public void _getLocation() {
+ Rectangle bounds = oObj.getBounds();
+ Point loc = oObj.getLocation();
+ boolean result = loc.X == bounds.X && loc.Y == bounds.Y;
+ log.println(
+ "loc.X=" + loc.X + " vs. bounds.X=" + bounds.X + ", loc.Y="
+ + loc.Y + " vs. bounds.Y=" + bounds.Y);
+ tRes.tested("getLocation()", result);
+ }
+
+ /**
+ * Get the screen location of the component and its parent
+ * (if it exists and supports <code>XAccessibleComponent</code>). <p>
+ *
+ * Has <b> OK </b> status if component screen location equals
+ * to screen location of its parent plus location of the component
+ * relative to the parent. <p>
+ */
+ public void _getLocationOnScreen() {
+ XAccessibleComponent parent = getParentComponent();
+
+ boolean result = true;
+ Rectangle bounds = oObj.getBounds();
+ Point loc = oObj.getLocationOnScreen();
+ log.println("Location is (" + loc.X + "," + loc.Y + ")");
+
+ if (parent != null) {
+ Point parLoc = parent.getLocationOnScreen();
+ log.println("Parent location is (" + parLoc.X + "," + parLoc.Y +
+ ")");
+
+ result &= ((parLoc.X + bounds.X) == loc.X);
+ result &= ((parLoc.Y + bounds.Y) == loc.Y);
+ }
+
+ tRes.tested("getLocationOnScreen()", result);
+ }
+
+ /**
+ * Obtains the size of the component. <p>
+ *
+ * Has <b> OK </b> status if the size is the same as in bounds. <p>
+ */
+ public void _getSize() {
+ requiredMethod("getBounds()");
+
+ boolean result = true;
+ Rectangle bounds = oObj.getBounds();
+ Size size = oObj.getSize();
+
+ result &= (size.Width == bounds.Width);
+ result &= (size.Height == bounds.Height);
+
+ tRes.tested("getSize()", result);
+ }
+
+ /**
+ * Just calls the method. <p>
+ *
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _grabFocus() {
+ boolean result = true;
+ oObj.grabFocus();
+
+ tRes.tested("grabFocus()", result);
+ }
+
+ /**
+ * Retrieves all children (not more than 50) of the current
+ * component which support <code>XAccessibleComponent</code>.
+ *
+ * @return The array of children. Empty array returned if
+ * such children were not found or some error occurred.
+ */
+ private XAccessibleComponent[] getChildrenComponents() {
+ XAccessible xAcc = UnoRuntime.queryInterface(
+ XAccessible.class, oObj);
+
+ if (xAcc == null) {
+ log.println("Component doesn't support XAccessible.");
+
+ return new XAccessibleComponent[0];
+ }
+
+ XAccessibleContext xAccCon = xAcc.getAccessibleContext();
+ int cnt = xAccCon.getAccessibleChildCount();
+
+ // for cases when too many children exist checking only first 50
+ if (cnt > 50) {
+ cnt = 50;
+ }
+
+ ArrayList<XAccessibleComponent> childComp = new ArrayList<XAccessibleComponent>();
+
+ for (int i = 0; i < cnt; i++) {
+ try {
+ XAccessible child = xAccCon.getAccessibleChild(i);
+ XAccessibleContext xAccConCh = child.getAccessibleContext();
+ XAccessibleComponent xChAccComp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ xAccConCh);
+
+ if (xChAccComp != null) {
+ childComp.add(xChAccComp);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+
+ return childComp.toArray(
+ new XAccessibleComponent[childComp.size()]);
+ }
+
+ /**
+ * Gets the parent of the current component which support
+ * <code>XAccessibleComponent</code>.
+ *
+ * @return The parent or <code>null</code> if the component
+ * has no parent or some errors occurred.
+ */
+ private XAccessibleComponent getParentComponent() {
+ XAccessible xAcc = UnoRuntime.queryInterface(
+ XAccessible.class, oObj);
+
+ if (xAcc == null) {
+ log.println("Component doesn't support XAccessible.");
+
+ return null;
+ }
+
+ XAccessibleContext xAccCon = xAcc.getAccessibleContext();
+ XAccessible xAccPar = xAccCon.getAccessibleParent();
+
+ if (xAccPar == null) {
+ log.println("Component has no accessible parent.");
+
+ return null;
+ }
+
+ XAccessibleContext xAccConPar = xAccPar.getAccessibleContext();
+ XAccessibleComponent parent = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ xAccConPar);
+
+ if (parent == null) {
+ log.println(
+ "Accessible parent doesn't support XAccessibleComponent");
+
+ return null;
+ }
+
+ return parent;
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getForeground() {
+ int forColor = oObj.getForeground();
+ log.println("getForeground(): " + forColor);
+ tRes.tested("getForeground()", true);
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getBackground() {
+ int backColor = oObj.getBackground();
+ log.println("getBackground(): " + backColor);
+ tRes.tested("getBackground()", true);
+ }
+
+ /**
+ * Restores initial component text.
+ */
+ @Override
+ protected void after() {
+ if (tEnv.getObjRelation("Destroy") != null) {
+ disposeEnvironment();
+ }
+ }
+
+ private boolean isCovered(Point p) {
+ int elements = KnownBounds.size();
+ boolean Covered = false;
+ for (int k=0;k<elements;k++) {
+ Rectangle known = KnownBounds.get(k);
+ Covered = (known.X < p.X);
+ Covered &= (known.Y < p.Y);
+ Covered &= (p.Y < known.Y+known.Height);
+ Covered &= (p.X < known.X+known.Width);
+
+ if (Covered) {
+ break;
+ }
+ }
+ return Covered;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java
new file mode 100644
index 000000000..cabf818af
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java
@@ -0,0 +1,342 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.accessibility;
+
+import com.sun.star.accessibility.IllegalAccessibleComponentStateException;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleStateSet;
+import com.sun.star.lang.Locale;
+
+import lib.MultiMethodTest;
+
+import util.AccessibilityTools;
+
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleContext</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getAccessibleChildCount()</code></li>
+ * <li><code> getAccessibleChild()</code></li>
+ * <li><code> getAccessibleParent()</code></li>
+ * <li><code> getAccessibleIndexInParent()</code></li>
+ * <li><code> getAccessibleRole()</code></li>
+ * <li><code> getAccessibleDescription()</code></li>
+ * <li><code> getAccessibleName()</code></li>
+ * <li><code> getAccessibleRelationSet()</code></li>
+ * <li><code> getAccessibleStateSet()</code></li>
+ * <li><code> getLocale()</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleContext
+ */
+public class _XAccessibleContext extends MultiMethodTest {
+ private static final String className = "com.sun.star.accessibility.XAccessibleContext";
+ public XAccessibleContext oObj = null;
+ private int childCount = 0;
+ private XAccessible parent = null;
+
+ // temporary while accessibility package is in com.sun.star
+ @Override
+ protected String getTestedClassName() {
+ return className;
+ }
+
+ /**
+ * Calls the method and stores the number of children. <p>
+ * Has <b> OK </b> status if non-negative number rutrned.
+ */
+ public void _getAccessibleChildCount() {
+ childCount = oObj.getAccessibleChildCount();
+ log.println(childCount + " children found.");
+ tRes.tested("getAccessibleChildCount()", childCount > -1);
+ }
+
+ /**
+ * Tries to get every child and checks its parent. <p>
+ *
+ * Has <b> OK </b> status if parent of every child
+ * and the tested component are the same objects.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getAccessibleChildCount() </code> : to have a number of
+ * children </li>
+ * </ul>
+ */
+ public void _getAccessibleChild() {
+ requiredMethod("getAccessibleChildCount()");
+
+ log.println("testing 'getAccessibleChild()'...");
+
+ boolean bOK = true;
+ int counter = childCount;
+
+ if (childCount > 500) {
+ counter = 500;
+ }
+
+ for (int i = 0; i < counter; i++) {
+ try {
+ XAccessible ch = oObj.getAccessibleChild(i);
+ XAccessibleContext chAC = ch.getAccessibleContext();
+
+ log.println("## Child " + i + ": " +
+ chAC.getAccessibleDescription());
+
+ if (!AccessibilityTools.equals(chAC.getAccessibleParent()
+ .getAccessibleContext(),
+ oObj)) {
+ log.println("The parent of child and component " +
+ "itself differ.");
+ log.println("\tRole:");
+ log.println("Getting: " +
+ chAC.getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleRole());
+ log.println("Expected: " + oObj.getAccessibleRole());
+
+ log.println("\tImplementationName:");
+ log.println("Getting: " +
+ util.utils.getImplName(
+ chAC.getAccessibleParent()
+ .getAccessibleContext()));
+ log.println("Expected: " + util.utils.getImplName(oObj));
+
+ log.println("\tAccessibleDescription:");
+ log.println("Getting(Description): " +
+ chAC.getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleDescription());
+ log.println("Expected(Description): " +
+ oObj.getAccessibleDescription());
+
+ log.println("\tAccessibleName:");
+ log.println("Getting(Name): " +
+ chAC.getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleName());
+ log.println("Expected(Name): " +
+ oObj.getAccessibleName());
+
+ log.println("\tChildCount:");
+ log.println("Getting: " +
+ chAC.getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleChildCount());
+ log.println("Expected: " +
+ oObj.getAccessibleChildCount());
+
+ log.println("\tParentName:");
+ log.println("Getting (Name): " +
+ chAC.getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleName());
+ log.println("Expected(Name): " +
+ oObj.getAccessibleParent()
+ .getAccessibleContext()
+ .getAccessibleName());
+
+ log.println("##");
+ bOK = false;
+ } else {
+ log.println("Role: " + chAC.getAccessibleRole());
+ log.println("Name: " + chAC.getAccessibleName());
+ log.println("IndexInParent: " +
+ chAC.getAccessibleIndexInParent());
+ log.println("ImplementationName: " +
+ util.utils.getImplName(chAC));
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ bOK = false;
+ }
+ }
+
+ tRes.tested("getAccessibleChild()", bOK);
+ }
+
+ /**
+ * Just gets the parent. <p>
+ *
+ * Has <b> OK </b> status if parent is not null.
+ */
+ public void _getAccessibleParent() {
+ // assume that the component is not ROOT
+ parent = oObj.getAccessibleParent();
+ tRes.tested("getAccessibleParent()", parent != null);
+ }
+
+ /**
+ * Retrieves the index of tested component in its parent.
+ * Then gets the parent's child by this index and compares
+ * it with tested component.<p>
+ *
+ * Has <b> OK </b> status if the parent's child and the tested
+ * component are the same objects.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getAccessibleParent() </code> : to have a parent </li>
+ * </ul>
+ */
+ public void _getAccessibleIndexInParent() {
+ requiredMethod("getAccessibleParent()");
+
+ boolean bOK = true;
+ int idx = oObj.getAccessibleIndexInParent();
+
+ XAccessibleContext parentAC = parent.getAccessibleContext();
+
+ try {
+ XAccessible child = parentAC.getAccessibleChild(idx);
+ XAccessibleContext childAC = null;
+ if (child == null) {
+ log.println("Parent has no child with this index");
+ bOK &= false;
+ } else {
+ childAC = child.getAccessibleContext();
+ bOK &= AccessibilityTools.equals(childAC, oObj);
+ }
+
+ if (!bOK) {
+ log.println("Expected: " + util.utils.getImplName(oObj));
+
+ if (childAC != null) {
+ log.println("Getting: " + util.utils.getImplName(childAC));
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ bOK = false;
+ }
+
+ tRes.tested("getAccessibleIndexInParent()", bOK);
+ }
+
+ /**
+ * Get the accessible role of component. <p>
+ *
+ * Has <b> OK </b> status if non-negative number rutrned.
+ */
+ public void _getAccessibleRole() {
+ short role = oObj.getAccessibleRole();
+ log.println("The role is " + role);
+ tRes.tested("getAccessibleRole()", role > -1);
+ }
+
+ /**
+ * Get the accessible name of the component. <p>
+ *
+ * Has <b> OK </b> status if the name has non-zero length.
+ */
+ public void _getAccessibleName() {
+ String name = oObj.getAccessibleName();
+ log.println("The name is '" + name + "'");
+ tRes.tested("getAccessibleName()", name != null);
+ }
+
+ /**
+ * Get the accessible description of the component. <p>
+ *
+ * Has <b> OK </b> status if the description has non-zero length.
+ */
+ public void _getAccessibleDescription() {
+ String descr = oObj.getAccessibleDescription();
+ log.println("The description is '" + descr + "'");
+ tRes.tested("getAccessibleDescription()", descr != null);
+ }
+
+ /**
+ * Just gets the set. <p>
+ *
+ * Has <b> OK </b> status if the set is not null.
+ */
+ public void _getAccessibleRelationSet() {
+ oObj.getAccessibleRelationSet();
+ tRes.tested("getAccessibleRelationSet()", true);
+ }
+
+ /**
+ * Just gets the set. <p>
+ *
+ * Has <b> OK </b> status if the set is not null.
+ */
+ public void _getAccessibleStateSet() {
+ XAccessibleStateSet set = oObj.getAccessibleStateSet();
+ boolean res = true;
+ String[] expectedStateNames = (String[]) tEnv.getObjRelation(
+ "expectedStateNames");
+ short[] expectedStates = (short[]) tEnv.getObjRelation(
+ "expectedStates");
+
+ if ((expectedStateNames != null) && (expectedStates != null)) {
+ res = checkStates(expectedStateNames, expectedStates, set);
+ } else {
+ res = set != null;
+ }
+
+ tRes.tested("getAccessibleStateSet()", res);
+ }
+
+ /**
+ * Gets the locale. <p>
+ *
+ * Has <b> OK </b> status if <code>Country</code> and
+ * <code>Language</code> fields of locale structure
+ * are not empty.
+ */
+ public void _getLocale() {
+ Locale loc = null;
+
+ try {
+ loc = oObj.getLocale();
+ log.println("The locale is " + loc.Language + "," + loc.Country);
+ } catch (IllegalAccessibleComponentStateException e) {
+ e.printStackTrace(log);
+ }
+
+ tRes.tested("getLocale()",
+ (loc != null) && (loc.Language.length() > 0));
+ }
+
+ protected boolean checkStates(String[] expectedStateNames,
+ short[] expectedStates,
+ XAccessibleStateSet set) {
+ boolean works = true;
+
+ for (int k = 0; k < expectedStateNames.length; k++) {
+ boolean contains = set.contains(expectedStates[k]);
+
+ if (contains) {
+ log.println("Set contains " + expectedStateNames[k] +
+ " ... OK");
+ works &= true;
+ } else {
+ log.println("Set doesn't contain " + expectedStateNames[k] +
+ " ... FAILED");
+ works &= false;
+ }
+ }
+
+ return works;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEditableText.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEditableText.java
new file mode 100644
index 000000000..d8cb81adc
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEditableText.java
@@ -0,0 +1,543 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.beans.PropertyValue;
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleEditableText</code>
+ * interface methods :
+ * <ul>
+ * <li><code> cutText()</code></li>
+ * <li><code> pasteText()</code></li>
+ * <li><code> deleteText()</code></li>
+ * <li><code> insertText()</code></li>
+ * <li><code> replaceText()</code></li>
+ * <li><code> setAttributes()</code></li>
+ * <li><code> setText()</code></li>
+ * </ul> <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'XAccessibleEditableText.hasAttr'</code>
+ * (of type <code>Boolean</code>):
+ * Indicates whether or not the text has changeable attributes.
+ * E.g. text within writer document have attributes which can
+ * be changed, while the text within edit field has fixed
+ * attributes. <p>
+ * If the relation is <code>false</code> then the component
+ * has fixed text attributes. </li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEditableText
+ */
+public class _XAccessibleEditableText extends MultiMethodTest {
+
+ public XAccessibleEditableText oObj = null;
+
+
+ String pasteText = null;
+
+ String initialText = "";
+
+ /**
+ * Indicates whether or not the text has changeable attributes.
+ * E.g. text within writer document have attributes which can
+ * be changed, while the text within edit field has fixed
+ * attributes.
+ */
+ private boolean changeableAttr = true;
+
+ /**
+ * Retrieves object relation. Stores initial component text
+ * for restoring it in <code>after</code>.
+ */
+ @Override
+ protected void before() {
+ Boolean b = (Boolean)
+ tEnv.getObjRelation("XAccessibleEditableText.hasAttr");
+ if (b != null) {
+ changeableAttr = b.booleanValue();
+ }
+
+ initialText = oObj.getText();
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct indexes.
+ * Stores cutted text in the variable <code>pasteText</code>.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct indexes.
+ */
+ public void _cutText() {
+ boolean res = true;
+ boolean locRes = true;
+ String curText = null;
+
+ String oldText = oObj.getText();
+ log.println("Text: '" + oldText + "'");
+ int length = oObj.getCharacterCount();
+ log.println("Character count: " + length);
+
+ try {
+ log.print("cutText(-1," + (length-1) + "): ");
+ locRes = oObj.cutText(-1, length - 1);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(oldText);
+ }
+
+ try {
+ log.print("cutText(0," + (length+1) + "): ");
+ locRes = oObj.cutText(0, length + 1);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(oldText);
+ }
+
+ try {
+ pasteText = oldText;
+ log.print("cutText(0," + length + "): ");
+ locRes = oObj.cutText(0, length);
+ log.println(locRes);
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.length() == 0 && locRes;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("cutText()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct indexes.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct indexes and if cutted text was
+ * pasted.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>cutText()</code> </li>
+ * </ul>
+ */
+ public void _pasteText() {
+ requiredMethod("cutText()");
+ boolean res = true;
+ boolean locRes = true;
+ String curText = null;
+
+ String text = oObj.getText();
+ log.println("Text: '" + text + "'");
+ int length = oObj.getCharacterCount();
+ log.println("Character count: " + length);
+
+ try {
+ log.print("pasteText(-1): ");
+ locRes = oObj.pasteText(-1);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("pasteText(" + (length+1) + "): ");
+ locRes = oObj.pasteText(length + 1);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("pasteText(" + (length) + "): ");
+ locRes = oObj.pasteText(length);
+ log.println(locRes);
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text + pasteText) && locRes;
+ log.println("Expected text: '" + text + pasteText + "'");
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("pasteText()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct indexes,
+ * checks text after method call.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct indexes and if deleted string
+ * was really deleted from the text.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>insertText()</code> </li>
+ * </ul>
+ */
+ public void _deleteText() {
+ executeMethod("insertText()");
+ boolean res = true;
+ boolean locRes = true;
+ String curText = null;
+
+ String text = oObj.getText();
+ log.println("Text: '" + text + "'");
+ int length = oObj.getCharacterCount();
+ log.println("Character count: " + length);
+
+ try {
+ log.print("deleteText(-1," + length + "): ");
+ locRes = oObj.deleteText(-1, length);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("deleteText(0," + (length+1) + "): ");
+ locRes = oObj.deleteText(0, length + 1);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ if (length >= 1) {
+ log.print("deleteText(" + (length-1) + "," + (length) + "): ");
+ locRes = oObj.deleteText(length - 1, length);
+ log.println(locRes);
+ String expStr = text.substring(0, length - 1);
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(expStr);
+ log.println("Expected text: '" + expStr + "'");
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("deleteText()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct indexes,
+ * checks text after method call.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct indexes and if inserted string
+ * was really inserted into the text.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>pasteText()</code> </li>
+ * </ul>
+ */
+ public void _insertText() {
+ executeMethod("pasteText()");
+ boolean res = true;
+ boolean locRes = true;
+ String curText = null;
+
+ String text = oObj.getText();
+ log.println("Text: '" + text + "'");
+ int length = oObj.getCharacterCount();
+ log.println("Character count: " + length);
+
+ final String insStr = "Inserted string";
+
+ try {
+ log.print("insertText(insStr, -1): ");
+ locRes = oObj.insertText(insStr, -1);
+ log.println(locRes);
+ log.println("exception was expected=> FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("insertText(insStr," + (length+1) + "): ");
+ locRes = oObj.insertText(insStr, length+1);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("insertText(insStr," + length + "): ");
+ locRes = oObj.insertText(insStr, length);
+ log.println(locRes);
+ curText = oObj.getText();
+ res &= curText.equals(text + insStr);
+ log.println("Current text: '" + curText + "'");
+ log.println("Expected text: '" + text + insStr + "'");
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("insertText()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct indexes,
+ * checks text after method call.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct indexes and if part of text
+ * was really replaced by the specified replacement string.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>deleteText()</code> </li>
+ * </ul>
+ */
+ public void _replaceText() {
+ executeMethod("deleteText()");
+ boolean res = true;
+ boolean locRes = true;
+ String curText = null;
+
+ final String sReplacement = "String for replace";
+ String oldText = oObj.getText();
+ int startIndx = oldText.length();
+ oObj.setText(oldText + " part of string for replace");
+
+ String text = oObj.getText();
+ log.println("Text: '" + text + "'");
+ int length = oObj.getCharacterCount();
+ log.println("Character count: " + length);
+
+ try {
+ log.print("replaceText(-1," + length + "): ");
+ locRes = oObj.replaceText(-1, length, sReplacement);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("replaceText(0," + (length+1) + "): ");
+ locRes = oObj.replaceText(0, length + 1, sReplacement);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ res &= curText.equals(text);
+ }
+
+ try {
+ log.print("replaceText(" + startIndx + "," + length + "): ");
+ locRes = oObj.replaceText(startIndx, length, sReplacement);
+ log.println(locRes);
+ curText = oObj.getText();
+ log.println("Current text: '" + curText + "'");
+ log.println("Expected text: '" + oldText + sReplacement + "'");
+ res &= curText.equals(oldText + sReplacement);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("replaceText()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct indexes,
+ * checks attributes after method call.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct indexes and if attributes
+ * of text was changed.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>replaceText()</code> </li>
+ * </ul>
+ */
+ public void _setAttributes() {
+ executeMethod("replaceText()");
+ boolean res = true;
+ boolean locRes = true;
+
+ String text = oObj.getText();
+ log.println("Text: '" + text + "'");
+ int length = oObj.getCharacterCount();
+ log.println("Length: " + length);
+
+ PropertyValue[] attrs = null;
+
+ try {
+ attrs = oObj.getCharacterAttributes(0, new String[]{""});
+ log.print("setAttributes(-1," + (length - 1) + "):");
+ locRes = oObj.setAttributes(-1, length - 1, attrs);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ res &= true;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ try {
+ log.print("setAttributes(0," + (length+1) + "):");
+ locRes = oObj.setAttributes(0, length + 1, attrs);
+ log.println(locRes);
+ log.println("exception was expected => FAILED");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception => OK");
+ res &= true;
+ }
+
+ //change old attributes set
+ for(int i = 0; i < attrs.length; i++) {
+ if (attrs[i].Name.equals("CharColor")) {
+ attrs[i].Value = Integer.valueOf(-2);
+ }
+ }
+
+ try {
+ log.print("setAttributes(0," + length + "):");
+ locRes = oObj.setAttributes(0, length, attrs);
+ log.println(locRes);
+ res &= (changeableAttr && locRes)
+ || (!changeableAttr && !locRes);
+ if (changeableAttr) {
+ log.print("checking that new attributes was set...");
+ PropertyValue[] newAttrs = oObj.getCharacterAttributes(0, new String[]{""});
+ locRes = ValueComparer.equalValue(attrs, newAttrs);
+ log.println(locRes);
+ res &= locRes;
+ } else {
+ log.println("Text attributes can't be changed.");
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("setAttributes()", res);
+ }
+
+ /**
+ * Calls the method with different parameters and checks text.
+ */
+ public void _setText() {
+ executeMethod("setAttributes()");
+ boolean res = true;
+ boolean locRes = true;
+
+ String oldText = oObj.getText();
+ log.println("Current text: '" + oldText + "'");
+
+ String newText = "New text";
+ log.print("setText('" + newText + "'): ");
+ locRes = oObj.setText(newText);
+ log.println(locRes);
+ String newCurText = oObj.getText();
+ log.println("getText(): '" + newCurText + "'");
+ res &= locRes && newCurText.equals(newText);
+
+ newText = "";
+ log.print("setText('" + newText + "'): ");
+ locRes = oObj.setText(newText);
+ log.println(locRes);
+ newCurText = oObj.getText();
+ log.println("getText(): '" + newCurText + "'");
+ res &= locRes && newCurText.equals(newText);
+
+ log.print("setText('" + oldText + "'): ");
+ locRes = oObj.setText(oldText);
+ log.println(locRes);
+ newCurText = oObj.getText();
+ log.println("getText(): '" + newCurText + "'");
+ res &= locRes && newCurText.equals(oldText);
+
+ tRes.tested("setText()", res);
+ }
+
+ /**
+ * Restores initial component text.
+ */
+ @Override
+ protected void after() {
+ oObj.setText(initialText);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java
new file mode 100644
index 000000000..297166988
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java
@@ -0,0 +1,208 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEventBroadcaster;
+import com.sun.star.accessibility.XAccessibleEventListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Testing <code>
+ * com.sun.star.accessibility.XAccessibleEventBroadcaster</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addAccessibleEventListener()</code></li>
+ * <li><code> removeAccessibleEventListener()</code></li>
+ * </ul> <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'EventProducer'</code> (of type
+ * <code>ifc.accessibility._XAccessibleEventBroadcaster.EventProducer</code>):
+ * this must be an implementation of the interface which could perform
+ * some actions for generating any kind of <code>AccessibleEvent</code></li>
+ * <ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+public class _XAccessibleEventBroadcaster extends MultiMethodTest {
+
+ public interface EventProducer {
+ void fireEvent();
+ }
+
+ public XAccessibleEventBroadcaster oObj = null;
+ public String EventMsg = "";
+ public boolean destroy = false;
+
+
+ /**
+ * Listener implementation which registers listener calls.
+ */
+ private class EvListener implements XAccessibleEventListener {
+ public AccessibleEventObject notifiedEvent = null ;
+ public void notifyEvent(AccessibleEventObject ev) {
+ log.println("Listener, Event : " + ev.EventId);
+ System.out.println("EventID: " + ev.EventId);
+ Object old=ev.OldValue;
+ if (old instanceof com.sun.star.accessibility.XAccessible) {
+ System.out.println("Old: "+((XAccessible)old).getAccessibleContext().getAccessibleName());
+ }
+
+ Object nev=ev.NewValue;
+ if (nev instanceof com.sun.star.accessibility.XAccessible) {
+ System.out.println("New: "+((XAccessible)nev).getAccessibleContext().getAccessibleName());
+ }
+ synchronized (this) {
+ notifiedEvent = ev;
+ }
+ }
+
+ public void disposing(EventObject ev) {}
+ }
+
+ /**
+ * Retrieves relation.
+ * @throws StatusException If the relation is not found.
+ */
+ @Override
+ public void before() {
+ prod = (EventProducer) tEnv.getObjRelation("EventProducer") ;
+ if (prod == null) {
+ throw new StatusException(Status.failed("Relation missed."));
+ }
+ EventMsg = (String) tEnv.getObjRelation("EventMsg");
+ Object dp = tEnv.getObjRelation("Destroy");
+ if (dp != null) {
+ destroy=true;
+ }
+ }
+
+ EventProducer prod = null ;
+ EvListener list = new EvListener();
+
+ /**
+ * Adds two listeners and fires event by mean of object relation. <p>
+ * Has <b> OK </b> status if both listeners were called
+ */
+ public void _addEventListener() {
+ log.println("adding listener");
+ oObj.addAccessibleEventListener(list);
+ boolean isTransient = chkTransient(tEnv.getTestObject());
+ log.println("fire event");
+ prod.fireEvent() ;
+
+ waitForEventIdle();
+
+ boolean works = true;
+
+ AccessibleEventObject ne;
+ synchronized (list) {
+ ne = list.notifiedEvent;
+ }
+ if (ne == null) {
+ if (!isTransient) {
+ log.println("listener wasn't called");
+ works = false;
+ } else {
+ log.println("Object is Transient, listener isn't expected to be called");
+ }
+ oObj.removeAccessibleEventListener(list);
+ }
+
+ if (EventMsg != null) {
+ log.println(EventMsg);
+ tRes.tested("addEventListener()", Status.skipped(true) );
+ return;
+ }
+
+ tRes.tested("addEventListener()", works );
+ }
+
+ /**
+ * Removes one of two listeners added before and fires event
+ * by mean of object relation.<p>
+ *
+ * Has <b> OK </b> status if the removed listener wasn't called.<p>
+ *
+ * The following method tests are to be completed successfully before:
+ * <ul>
+ * <li> <code>addEventListener()</code> : to have added listeners </li>
+ * </ul>
+ */
+ public void _removeEventListener() throws Exception {
+ requiredMethod("addEventListener()");
+
+ log.println("remove listener");
+ oObj.removeAccessibleEventListener(list);
+
+ synchronized (list) {
+ list.notifiedEvent = null;
+ }
+
+ log.println("fire event");
+ prod.fireEvent() ;
+
+ waitForEventIdle();
+
+ AccessibleEventObject ne;
+ synchronized (list) {
+ ne = list.notifiedEvent;
+ }
+ if (ne == null) {
+ log.println("listener wasn't called -- OK");
+ }
+
+ tRes.tested("removeEventListener()", list.notifiedEvent == null);
+
+ }
+
+ protected static boolean chkTransient(Object Testcase) {
+ boolean ret = false;
+ XAccessibleContext accCon = UnoRuntime.queryInterface(XAccessibleContext.class,Testcase);
+ if (accCon.getAccessibleStateSet().contains(
+ com.sun.star.accessibility.AccessibleStateType.TRANSIENT)){
+ if (!accCon.getAccessibleParent().getAccessibleContext().getAccessibleStateSet().contains(
+ com.sun.star.accessibility.AccessibleStateType.MANAGES_DESCENDANTS)) {
+ throw new lib.StatusException(lib.Status.failed("Parent doesn't manage descendents"));
+ }
+ ret=true;
+ }
+ return ret;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ if (destroy) disposeEnvironment();
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java
new file mode 100644
index 000000000..0b2c204c2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java
@@ -0,0 +1,114 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.accessibility.XAccessibleExtendedComponent;
+import com.sun.star.awt.XFont;
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleExtendedComponent</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getForeground()</code></li>
+ * <li><code> getBackground()</code></li>
+ * <li><code> getFont()</code></li>
+ * <li><code> isEnabled()</code></li>
+ * <li><code> getTitledBorderText()</code></li>
+ * <li><code> getToolTipText()</code></li>
+ * </ul> <p>
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ */
+public class _XAccessibleExtendedComponent extends MultiMethodTest {
+
+ public XAccessibleExtendedComponent oObj = null;
+
+ /**
+ * Just calls the method.
+ * deprecated from version srx644g 29.10.02 on
+ *
+ public void _getForeground() {
+ int forColor = oObj.getForeground();
+ log.println("getForeground(): " + forColor);
+ tRes.tested("getForeground()", true);
+ }
+
+ /**
+ * Just calls the method.
+ * deprecated from version srx644g 29.10.02 on
+ *
+ public void _getBackground() {
+ int backColor = oObj.getBackground();
+ log.println("getBackground(): " + backColor);
+ tRes.tested("getBackground()", true);
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getFont() {
+ XFont font = oObj.getFont();
+ log.println("getFont(): " + font);
+ tRes.tested("getFont()", true);
+ }
+
+ /**
+ * Calls the method and compares returned value with value that was
+ * returned by the method
+ * <code>XAccessibleStateSet.contains(AccessibleStateType.ENABLED)</code>.
+ * Has OK status if returned values are equal.
+ * deprecated from version srx644g 29.10.02 on
+ *
+ public void _isEnabled() {
+ boolean isEnabled = oObj.isEnabled();
+ log.println("isEnabled(): " + isEnabled);
+
+ boolean res = true;
+
+ XAccessibleStateSet accStateSet = (XAccessibleStateSet)
+ UnoRuntime.queryInterface(XAccessibleStateSet.class, oObj);
+
+ if (accStateSet != null) {
+ res = accStateSet.contains(AccessibleStateType.ENABLED)==isEnabled;
+ }
+
+ tRes.tested("isEnabled()", res);
+ }
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if returned value isn't null.
+ */
+ public void _getTitledBorderText() {
+ String titleBorderText = oObj.getTitledBorderText();
+ log.println("getTitledBorderText(): '" + titleBorderText + "'");
+ tRes.tested("getTitledBorderText()", titleBorderText != null);
+ }
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if returned value isn't null.
+ */
+ public void _getToolTipText() {
+ String toolTipText = oObj.getToolTipText();
+ log.println("getToolTipText(): '" + toolTipText + "'");
+ tRes.tested("getToolTipText()", toolTipText != null);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleImage.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleImage.java
new file mode 100644
index 000000000..c19b06850
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleImage.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.accessibility.XAccessibleImage;
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleImage</code>
+ * interface methods :
+ * <ul>
+ * <li><code>getAccessibleImageDescription()</code></li>
+ * <li><code>getAccessibleImageHeight()</code></li>
+ * <li><code>getAccessibleImageWidth()</code></li>
+ * </ul> <p>
+ * @see com.sun.star.accessibility.XAccessibleImage
+ */
+public class _XAccessibleImage extends MultiMethodTest {
+
+ public XAccessibleImage oObj = null;
+
+ /**
+ * Just calls the method.
+ */
+ public void _getAccessibleImageDescription() {
+ String descr = oObj.getAccessibleImageDescription();
+ log.println("getAccessibleImageDescription(): '" + descr + "'");
+ tRes.tested("getAccessibleImageDescription()", descr != null);
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getAccessibleImageHeight() {
+ int height = oObj.getAccessibleImageHeight();
+ log.println("getAccessibleImageHeight(): " + height);
+ tRes.tested("getAccessibleImageHeight()", true);
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getAccessibleImageWidth() {
+ int width = oObj.getAccessibleImageWidth();
+ log.println("getAccessibleImageWidth(): " + width);
+ tRes.tested("getAccessibleImageWidth()", true);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java
new file mode 100644
index 000000000..edbf477c9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java
@@ -0,0 +1,586 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.accessibility;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleSelection</code>
+ * interface methods :
+ * <ul>
+ * <li><code>selectAccessibleChild()</code></li>
+ * <li><code>isAccessibleChildSelected()</code></li>
+ * <li><code>clearAccessibleSelection()</code></li>
+ * <li><code>selectAllAccessibleChildren()</code></li>
+ * <li><code>getSelectedAccessibleChildCount()</code></li>
+ * <li><code>getSelectedAccessibleChild()</code></li>
+ * <li><code>deselectAccessibleChild()</code></li>
+ * </ul> <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'XAccessibleSelection.multiSelection'</code>
+ * (of type <code>Boolean</code>) <b> optional </b>:
+ * Indicates whether or not multiply children could be selected.
+ * If the relation is <code>false</code> then more than 1 child
+ * couldn't be selected. </li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ */
+public class _XAccessibleSelection extends MultiMethodTest {
+ private static final String className = "com.sun.star.accessibility.XAccessibleSelection";
+ public XAccessibleSelection oObj = null;
+ XAccessibleContext xAC = null;
+ int childCount;
+ protected boolean multiSelection = true;
+ protected boolean OneAlwaysSelected = false;
+
+ // temporary while accessibility package is in com.sun.star
+ @Override
+ protected String getTestedClassName() {
+ return className;
+ }
+
+ /**
+ * Retrieves the interface <code>XAccessibleContext</code>
+ * and object relation.
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleContext
+ */
+ @Override
+ protected void before() {
+ xAC = UnoRuntime.queryInterface(
+ XAccessibleContext.class, oObj);
+
+ if (xAC == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't query XAccessibleContext. Test must be modified"));
+ }
+
+ Boolean b = (Boolean) tEnv.getObjRelation(
+ "XAccessibleSelection.multiSelection");
+
+ if (b != null) {
+ multiSelection = b.booleanValue();
+ }
+
+ Boolean b2 = (Boolean) tEnv.getObjRelation(
+ "XAccessibleSelection.OneAlwaysSelected");
+
+ if (b2 != null) {
+ OneAlwaysSelected = b2.booleanValue();
+ }
+
+ childCount = xAC.getAccessibleChildCount();
+ log.println("Child count: " + childCount);
+ }
+
+ /**
+ * Selects accessible child with index some wrong indexes
+ * and with legal index.
+ * Has OK status if exception was thrown for wrong indexes
+ * and if exception wasn't thrown for correct index.
+ */
+ public void _selectAccessibleChild() {
+ boolean res = true;
+
+ try {
+ log.println("Try to select child with index " + childCount);
+ oObj.selectAccessibleChild(childCount);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res = true;
+ }
+
+ try {
+ log.println("Try to select child with index -1");
+ oObj.selectAccessibleChild(-1);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ log.println("ChildCount: " + childCount);
+
+ int usedChildren = childCount;
+
+ if (childCount > 500) {
+ log.println("Restricting to 500");
+ usedChildren = 500;
+ }
+
+ if (usedChildren > 0) {
+ try {
+ for (int i = 0; i < usedChildren; i++) {
+ log.print("Trying to select child with index " + i + ": ");
+
+ if (isSelectable(tEnv.getTestObject(), i)) {
+ oObj.selectAccessibleChild(i);
+ log.println("OK");
+ } else {
+ log.println("Child isn't selectable");
+ }
+ }
+
+ res &= true;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("selectAccessibleChild()", res);
+ }
+
+ /**
+ * Calls the method with the wrong index and with the correct index.
+ * Has OK status if exception was thrown for wrong index and
+ * if exception wasn't thrown for the correct index.
+ */
+ public void _isAccessibleChildSelected() throws Exception {
+ executeMethod("selectAccessibleChild()");
+
+ boolean res = true;
+ boolean isSelected = false;
+
+ try {
+ log.print("isAccessibleChildSelected(-1)? ");
+ isSelected = oObj.isAccessibleChildSelected(-1);
+ log.println(res);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res = true;
+ }
+
+ try {
+ log.print("isAccessibleChildSelected(" + childCount + ")? ");
+ isSelected = oObj.isAccessibleChildSelected(childCount);
+ log.println(isSelected);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ int SelectableChildCount = chkSelectable(tEnv.getTestObject());
+
+ if (SelectableChildCount > 500) {
+ SelectableChildCount = 500;
+ }
+
+ log.println("SelectableChildCount: " + SelectableChildCount);
+
+ if (SelectableChildCount > 0) {
+ try {
+ oObj.selectAllAccessibleChildren();
+
+ for (int k = 0; k < SelectableChildCount; k++) {
+ log.println("Trying to select child with index " + k);
+
+ if (isSelectable(tEnv.getTestObject(), k)) {
+ oObj.selectAccessibleChild(k);
+ waitForEventIdle();
+ isSelected = oObj.isAccessibleChildSelected(k);
+ log.println("isAccessibleChildSelected - " +
+ isSelected);
+ res &= isSelected;
+ } else {
+ log.println("Child isn't selectable");
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("isAccessibleChildSelected()", res);
+ }
+
+ /**
+ * Calls the method.
+ * Has OK status if the method <code>isAccessibleChildSelected()</code>
+ * returned <code>false</code>.
+ */
+ public void _clearAccessibleSelection() throws Exception {
+ executeMethod("isAccessibleChildSelected()");
+
+ boolean res = true;
+
+ log.println("clearAccessibleSelection");
+ oObj.clearAccessibleSelection();
+
+
+ // clearAccessibleSelection() call is oneway so we need
+ // some waiting
+ waitForEventIdle();
+
+ if ((childCount > 0) && !OneAlwaysSelected) {
+ try {
+ log.print("isAccessibleChildSelected(" + (childCount - 1) +
+ ")? ");
+
+ boolean isSel = oObj.isAccessibleChildSelected(childCount - 1);
+ log.println(isSel);
+ res = !isSel;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+ } else if (OneAlwaysSelected) {
+ log.println("Can't clear selection, one child is always selected");
+ }
+
+ tRes.tested("clearAccessibleSelection()", res);
+ }
+
+ /**
+ * Calls the method.
+ * Has OK status if the method <code>isAccessibleChildSelected()</code>
+ * returns <code>true</code> for first and for last accessible child
+ * or if multiselection is not allowed.
+ */
+ public void _selectAllAccessibleChildren() {
+ executeMethod("clearAccessibleSelection()");
+
+ log.println("selectAllAccessibleChildren...");
+ oObj.selectAllAccessibleChildren();
+
+
+ // selectAllAccessibleChildren() call is oneway so we need
+ // some waiting
+ waitForEventIdle();
+
+ boolean res = true;
+ boolean isSelected = true;
+
+ int SelectableChildCount = chkSelectable(tEnv.getTestObject());
+
+ if ((SelectableChildCount > 0) && multiSelection) {
+ try {
+ log.print("isAccessibleChildSelected(1)? ");
+ isSelected = oObj.isAccessibleChildSelected(1);
+ log.println(isSelected);
+ res = isSelected;
+
+ log.print("isAccessibleChildSelected(" + (childCount - 1) +
+ ")? ");
+ isSelected = oObj.isAccessibleChildSelected(childCount - 1);
+ log.println(isSelected);
+ res &= isSelected;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("selectAllAccessibleChildren()", res);
+ }
+
+ /**
+ * Calls the method. Clears accessible selection and calls the method again.
+ * <p>
+ * Has OK status if the method returns number equal to number of accessible
+ * child count after first call if multiselection allowed, or
+ * 1 returned if multiselection not allowed.
+ * And if the method returns a zero after clearing selection.
+ */
+ public void _getSelectedAccessibleChildCount() {
+ log.println("getSelectedAccessibleChildCount():");
+
+ if (multiSelection) {
+ oObj.selectAllAccessibleChildren();
+ } else {
+ int usedChildren = childCount;
+
+ if (childCount > 500) {
+ log.println("Restricting to 500");
+ usedChildren = 500;
+ }
+
+ if (usedChildren > 0) {
+ try {
+ for (int i = 0; i < usedChildren; i++) {
+
+ if (isSelectable(tEnv.getTestObject(), i)) {
+ log.print("Trying to select child with index "+i+": ");
+ oObj.selectAccessibleChild(i);
+ long curtime = System.currentTimeMillis();
+ long checktime = System.currentTimeMillis();
+
+ while (!oObj.isAccessibleChildSelected(i) && (checktime-curtime<5000)) {
+ checktime = System.currentTimeMillis();
+ }
+
+ log.println("OK");
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ }
+ }
+ }
+
+ int sCount = chkSelectable(tEnv.getTestObject());
+ log.println("Found " + sCount + " selectable Children");
+
+ int selectedCount = oObj.getSelectedAccessibleChildCount();
+ log.println("After selecting all accessible " + selectedCount +
+ " are selected");
+
+ boolean res = true;
+
+ if (multiSelection) {
+ res &= (selectedCount == sCount);
+ } else {
+ res &= (selectedCount == 1);
+ }
+
+ log.println("clearAccessibleSelection...");
+ oObj.clearAccessibleSelection();
+ log.print("getSelectedAccessibleChildCount: ");
+ selectedCount = oObj.getSelectedAccessibleChildCount();
+ log.println(selectedCount);
+
+ if (OneAlwaysSelected) {
+ res &= (selectedCount == 1);
+ } else {
+ res &= (selectedCount == 0);
+ }
+
+ tRes.tested("getSelectedAccessibleChildCount()", res);
+ }
+
+ /**
+ * Calls the method with wrong and correct indexes.
+ * Has OK status if exception was thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if the method have returned a not null for the correct index.
+ */
+ public void _getSelectedAccessibleChild() throws Exception {
+ executeMethod("getSelectedAccessibleChildCount()");
+
+ boolean res = true;
+ int selectedCount = oObj.getSelectedAccessibleChildCount();
+ log.println("getSelectedAccessibleChildCount: " + selectedCount);
+
+ try {
+ log.println("getSelectedAccessibleChild(-1)");
+ oObj.getSelectedAccessibleChild(-1);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res = true;
+ }
+
+ try {
+ log.println("getSelectedAccessibleChild(" + selectedCount + ")");
+ oObj.getSelectedAccessibleChild(selectedCount);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ int SelectableChildCount = chkSelectable(tEnv.getTestObject());
+
+ if (SelectableChildCount > 500) {
+ SelectableChildCount = 500;
+ }
+
+ if (SelectableChildCount > 0) {
+ int k = 0;
+ try {
+ for (k = 0; k < SelectableChildCount; k++) {
+ log.println("Trying to select child with index " + k);
+
+ if (isSelectable(tEnv.getTestObject(), k)) {
+ oObj.selectAccessibleChild(k);
+ waitForEventIdle();
+ log.println("selected child count: " +
+ oObj.getSelectedAccessibleChildCount());
+ XAccessible selChild = oObj.getSelectedAccessibleChild(0);
+ res &= (selChild != null);
+ log.println("valid child - " + (selChild != null));
+ } else {
+ log.println("Child isn't selectable");
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception: Last relevant calls:\n " +
+ "\toObj.selectAccessibleChild("+k+")\n" +
+ "\toObj.getSelectedAccessibleChild(0)");
+ e.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("getSelectedAccessibleChild()", res);
+ }
+
+ /**
+ * Calls the method with wrong and with correct indexes.
+ * Has OK status if exceptions were thrown for the calls with
+ * the wrong indexes, if exception wasn't thrown for the call
+ * with correct index and if number of selected child was
+ * decreased after the correct call.
+ */
+ public void _deselectAccessibleChild() {
+ executeMethod("getSelectedAccessibleChild()");
+
+ boolean res = true;
+ int selCount = oObj.getSelectedAccessibleChildCount();
+ log.println("getSelectedAccessibleChildCount():" + selCount);
+
+ try {
+ log.println("deselectAccessibleChild(-1)");
+ oObj.deselectAccessibleChild(-1);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.println("deselectAccessibleChild(" + (childCount + 1) + ")");
+ oObj.deselectAccessibleChild(childCount + 1);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ log.println("#################");
+ log.println("Selecting all accessible");
+ oObj.selectAllAccessibleChildren();
+ selCount = oObj.getSelectedAccessibleChildCount();
+ log.println("getSelectedAccessibleChildCount():" + selCount);
+
+ if ((childCount > 0) && (selCount > 0)) {
+ try {
+ int maxCount = chkSelectable(tEnv.getTestObject());
+
+ if (childCount > 100) {
+ maxCount = 100;
+ }
+
+ for (int k = 0; k < maxCount; k++) {
+ log.println("deselectAccessibleChild(" + k + ")");
+
+ if (oObj.isAccessibleChildSelected(k)) {
+ oObj.deselectAccessibleChild(k);
+ }
+ }
+
+ int newSelCount = oObj.getSelectedAccessibleChildCount();
+ log.println("getSelectedAccessibleChildCount():" +
+ newSelCount);
+
+ if (OneAlwaysSelected && (selCount == 1)) {
+ log.println("One Child is always selected");
+ res &= true;
+ } else {
+ res &= (selCount > newSelCount);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("deselectAccessibleChild()", res);
+ }
+
+ protected static int chkSelectable(Object Testcase) {
+ int ret = 0;
+ XAccessibleContext accCon = UnoRuntime.queryInterface(
+ XAccessibleContext.class, Testcase);
+ int cc = accCon.getAccessibleChildCount();
+
+ if (cc > 500) {
+ return cc;
+ }
+
+ for (int i = 0; i < cc; i++) {
+ try {
+ if (accCon.getAccessibleChild(i).getAccessibleContext()
+ .getAccessibleStateSet()
+ .contains(com.sun.star.accessibility.AccessibleStateType.SELECTABLE)) {
+ ret = ret + 1;
+ System.out.println("Child " + i + " is selectable");
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iab) {
+ }
+ }
+
+ return ret;
+ }
+
+ protected static boolean isSelectable(Object Testcase, int index) {
+ XAccessibleContext accCon = UnoRuntime.queryInterface(
+ XAccessibleContext.class, Testcase);
+ boolean res = false;
+
+ try {
+ if (accCon.getAccessibleChild(index).getAccessibleContext()
+ .getAccessibleStateSet()
+ .contains(com.sun.star.accessibility.AccessibleStateType.SELECTABLE)) {
+ res = true;
+ }
+
+ //selecting menuitems or the separator will lead to closing the menu
+ if ((accCon.getAccessibleChild(index).getAccessibleContext()
+ .getAccessibleRole() == AccessibleRole.MENU_ITEM) ||
+ (accCon.getAccessibleChild(index).getAccessibleContext()
+ .getAccessibleRole() == AccessibleRole.SEPARATOR)) {
+ res = false;
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.out.println("Exception while checking for selectability");
+ }
+
+ return res;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleTable.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleTable.java
new file mode 100644
index 000000000..ee2400f44
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleTable.java
@@ -0,0 +1,1000 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.accessibility.XAccessibleTable;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleTable</code>
+ * interface methods :
+ * <ul>
+ * <li><code>getAccessibleRowCount()</code></li>
+ * <li><code>getAccessibleColumnCount()</code></li>
+ * <li><code>getAccessibleRowDescription()</code></li>
+ * <li><code>getAccessibleColumnDescription()</code></li>
+ * <li><code>getAccessibleRowExtentAt()</code></li>
+ * <li><code>getAccessibleColumnExtentAt()</code></li>
+ * <li><code>getAccessibleRowHeaders()</code></li>
+ * <li><code>getAccessibleColumnHeaders()</code></li>
+ * <li><code>getSelectedAccessibleRows()</code></li>
+ * <li><code>getSelectedAccessibleColumns()</code></li>
+ * <li><code>isAccessibleRowSelected()</code></li>
+ * <li><code>isAccessibleColumnSelected()</code></li>
+ * <li><code>getAccessibleCellAt()</code></li>
+ * <li><code>getAccessibleCaption()</code></li>
+ * <li><code>getAccessibleSummary()</code></li>
+ * <li><code>isAccessibleSelected()</code></li>
+ * <li><code>getAccessibleIndex()</code></li>
+ * <li><code>getAccessibleRow()</code></li>
+ * <li><code>getAccessibleColumn()</code></li>
+ * </ul> <p>
+ * @see com.sun.star.accessibility.XAccessibleTable
+ */
+public class _XAccessibleTable extends MultiMethodTest {
+
+ public XAccessibleTable oObj = null;
+ XAccessibleSelection xASel = null;
+ XAccessibleContext xACont = null;
+
+ @Override
+ protected void before() {
+ xASel = UnoRuntime.queryInterface(XAccessibleSelection.class, oObj);
+ if (xASel == null) {
+ log.println("The component doesn't implement the interface " +
+ "XAccessibleSelection.");
+ log.println("This interface is required for more detailed tests.");
+ }
+
+ xACont = UnoRuntime.queryInterface(XAccessibleContext.class, oObj);
+ }
+
+ int rowCount = 0;
+
+ /**
+ * Calls the method and stores the returned value to the variable
+ * <code>rowCount</code>.
+ */
+ public void _getAccessibleRowCount() {
+ rowCount = oObj.getAccessibleRowCount();
+ log.println("Accessible row count: " + rowCount);
+ tRes.tested("getAccessibleRowCount()", true);
+ }
+
+ int colCount = 0;
+
+ /**
+ * Calls the method and stores the returned value to the variable
+ * <code>colCount</code>.
+ */
+ public void _getAccessibleColumnCount() {
+ colCount = oObj.getAccessibleColumnCount();
+ log.println("Accessible column count: " + colCount);
+ tRes.tested("getAccessibleColumnCount()", true);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct index,
+ * checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value isn't <code>null</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleRowDescription() {
+ requiredMethod("getAccessibleRowCount()");
+ boolean res = true;
+
+ try {
+ log.print("getAccessibleRowDescription(-1): ");
+ String descr = oObj.getAccessibleRowDescription(-1);
+ log.println("'" + descr + "'");
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRowDescription(" + rowCount + "): ");
+ String descr = oObj.getAccessibleRowDescription(rowCount);
+ log.println("'" + descr + "'");
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRowDescription(" + (rowCount - 1) + "): ");
+ String descr =
+ oObj.getAccessibleRowDescription(rowCount - 1);
+ res &= descr != null;
+ log.println("'" + descr + "'");
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleRowDescription()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct index,
+ * checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value isn't <code>null</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleColumnDescription() {
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+
+ try {
+ log.print("getAccessibleColumnDescription(-1): ");
+ String descr = oObj.getAccessibleColumnDescription(-1);
+ log.println("'" + descr + "'");
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumnDescription(" + colCount + "): ");
+ String descr = oObj.getAccessibleColumnDescription(colCount);
+ log.println("'" + descr + "'");
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumnDescription(" + (colCount - 1) + "): ");
+ String descr =
+ oObj.getAccessibleColumnDescription(colCount - 1);
+ res &= descr != null;
+ log.println("'" + descr + "'");
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleColumnDescription()", res);
+ }
+
+
+ /**
+ * Calls the method with the wrong parameters and with the correct
+ * parameters, checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value is greater than or is equal to 1.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleRowExtentAt() {
+ requiredMethod("getAccessibleRowCount()");
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+
+ try {
+ log.print("getAccessibleRowExtentAt(-1," + (colCount-1) + "):");
+ int ext = oObj.getAccessibleRowExtentAt(-1, colCount - 1);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRowExtentAt(" + (rowCount-1) + ",-1):");
+ int ext = oObj.getAccessibleRowExtentAt(rowCount - 1, -1);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRowExtentAt(0," + colCount + "):");
+ int ext = oObj.getAccessibleRowExtentAt(0, colCount);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRowExtentAt(" + rowCount + ",0):");
+ int ext = oObj.getAccessibleRowExtentAt(rowCount, 0);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRowExtentAt(" +
+ (rowCount-1) + "," + (colCount-1) + "):");
+ int ext = oObj.getAccessibleRowExtentAt(rowCount-1, colCount - 1);
+ log.println(ext);
+ res &= ext >= 1;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleRowExtentAt()", res);
+ }
+
+ /**
+ * Calls the method with the wrong parameters and with the correct
+ * parameters, checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value is greater than or is equal to 1.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleColumnExtentAt() {
+ requiredMethod("getAccessibleRowCount()");
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+
+ try {
+ log.print("getAccessibleColumnExtentAt(-1," + (colCount-1) + "):");
+ int ext = oObj.getAccessibleColumnExtentAt(-1, colCount - 1);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumnExtentAt(" + (rowCount-1) + ",-1):");
+ int ext = oObj.getAccessibleColumnExtentAt(rowCount - 1, -1);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumnExtentAt(0," + colCount + "):");
+ int ext = oObj.getAccessibleColumnExtentAt(0, colCount);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumnExtentAt(" + rowCount + ",0):");
+ int ext = oObj.getAccessibleColumnExtentAt(rowCount, 0);
+ log.println(ext);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumnExtentAt(" +
+ (rowCount-1) + "," + (colCount-1) + "):");
+ int ext = oObj.getAccessibleColumnExtentAt(rowCount-1,colCount - 1);
+ log.println(ext);
+ res &= ext >= 1;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleColumnExtentAt()", res);
+ }
+
+ /**
+ * Calls the method and checks a returned value.
+ * Has OK status if returned value isn't <code>null</code>.
+ */
+ public void _getAccessibleRowHeaders() {
+ XAccessibleTable rowHeaders = oObj.getAccessibleRowHeaders();
+ log.println("getAccessibleRowHeaders(): " + rowHeaders);
+ tRes.tested("getAccessibleRowHeaders()", true);
+ }
+
+ /**
+ * Calls the method and checks a returned value.
+ * Has OK status if returned value isn't <code>null</code>.
+ */
+ public void _getAccessibleColumnHeaders() {
+ XAccessibleTable colHeaders = oObj.getAccessibleColumnHeaders();
+ log.println("getAccessibleColumnHeaders(): " + colHeaders);
+ tRes.tested("getAccessibleColumnHeaders()", true);
+ }
+
+ /**
+ * If the interface <code>XAccessibleSelection</code> is supported by
+ * the component than selects all accessible children.
+ * Calls the method and checks a returned sequence.
+ * Has OK status if a returned sequince is in ascending order.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _getSelectedAccessibleRows() {
+ requiredMethod("getAccessibleRowCount()");
+ boolean res = true;
+ boolean locRes = true;
+ int selRows[] = null;
+
+ if (xASel != null) {
+ log.println("XAccessibleSelection.selectAllAccessibleChildren()");
+ xASel.selectAllAccessibleChildren();
+ }
+
+ log.println("getSelectedAccessibleRows()");
+ selRows = oObj.getSelectedAccessibleRows();
+ log.println("Length of the returned sequince: " + selRows.length);
+ if (xASel != null) {
+ res &= selRows.length == rowCount;
+ } else {
+ res &= selRows.length == 0;
+ }
+
+ if (selRows.length > 0) {
+ log.println("Checking that returned sequence is" +
+ " in ascending order");
+ }
+
+ for(int i = 1; i < selRows.length; i++) {
+ locRes &= selRows[i] >= selRows[i - 1];
+ res &= locRes;
+ if (!locRes) {
+ log.println("Element #" + i + ":" + selRows[i] +
+ " is less than element #" + (i-1) + ": " +
+ selRows[i-1]);
+ break;
+ }
+ }
+
+ tRes.tested("getSelectedAccessibleRows()", res);
+ }
+
+ /**
+ * If the interface <code>XAccessibleSelection</code> is supported by
+ * the component than selects all accessible children.
+ * Calls the method and checks a returned sequence.
+ * Has OK status if a returned sequince is in ascending order.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * </ul>
+ */
+ public void _getSelectedAccessibleColumns() {
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+ boolean locRes = true;
+ int selCols[] = null;
+
+ if (xASel != null) {
+ log.println("XAccessibleSelection.selectAllAccessibleChildren()");
+ xASel.selectAllAccessibleChildren();
+ }
+
+ log.println("getSelectedAccessibleColumns()");
+ selCols = oObj.getSelectedAccessibleColumns();
+ log.println("Length of the returned sequince: " + selCols.length);
+
+ if (xASel != null) {
+ res &= selCols.length == colCount;
+ } else {
+ res &= selCols.length == 0;
+ }
+
+ if (selCols.length > 0) {
+ log.println("Checking that returned sequence is" +
+ " in ascending order");
+ }
+
+ for(int i = 1; i < selCols.length; i++) {
+ locRes &= selCols[i] >= selCols[i - 1];
+ res &= locRes;
+ if (!locRes) {
+ log.println("Element #" + i + ":" + selCols[i] +
+ " is less than element #" + (i-1) + ": " +
+ selCols[i-1]);
+ break;
+ }
+ }
+
+ tRes.tested("getSelectedAccessibleColumns()", res);
+ }
+
+ /**
+ * Calls the method with invalid indexes.
+ * If the interface <code>XAccessibleSelection</code> is supported by
+ * the component than selects all accessible children.
+ * Calls the method for every row and checks returned values.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _isAccessibleRowSelected() {
+ requiredMethod("getAccessibleRowCount()");
+ boolean res = true;
+ boolean locRes = true;
+
+ try {
+ log.print("isAccessibleRowSelected(-1): ");
+ locRes = oObj.isAccessibleRowSelected(-1);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("isAccessibleRowSelected(" + rowCount + "): ");
+ locRes = oObj.isAccessibleRowSelected(rowCount);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ if (xASel != null) {
+ log.println("XAccessibleSelection.selectAllAccessibleChildren()");
+ xASel.selectAllAccessibleChildren();
+ }
+
+ try {
+ log.println("Checking of every row selection...");
+ for(int i = 0; i < rowCount; i++) {
+ boolean isSel = oObj.isAccessibleRowSelected(i);
+ locRes = (xASel == null) ? !isSel : isSel;
+ res &= locRes;
+ if (!locRes) {
+ log.println("isAccessibleRowSelected(" + i + "): " + isSel);
+ break;
+ }
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("isAccessibleRowSelected()", res);
+ }
+
+ /**
+ * Calls the method with invalid indexes.
+ * If the interface <code>XAccessibleSelection</code> is supported by
+ * the component than selects all accessible children.
+ * Calls the method for every column and checks returned values.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _isAccessibleColumnSelected() {
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+ boolean locRes = true;
+
+ try {
+ log.print("isAccessibleColumnSelected(-1): ");
+ locRes = oObj.isAccessibleColumnSelected(-1);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("isAccessibleColumnSelected(" + colCount + "): ");
+ locRes = oObj.isAccessibleColumnSelected(colCount);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ if (xASel != null) {
+ log.println("XAccessibleSelection.selectAllAccessibleChildren()");
+ xASel.selectAllAccessibleChildren();
+ }
+
+ try {
+ log.println("Checking of every column selection...");
+ for(int i = 0; i < colCount; i++) {
+ boolean isSel = oObj.isAccessibleColumnSelected(i);
+ locRes = (xASel == null) ? !isSel : isSel;
+ res &= locRes;
+ if (!locRes) {
+ log.println("isAccessibleColumnSelected(" + i + "): " + isSel);
+ break;
+ }
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("isAccessibleColumnSelected()", res);
+ }
+
+ XAccessible xCellAc = null;
+
+ /**
+ * Calls the method with the wrong parameters and with the correct
+ * parameter, checks a returned value and stores it to the variable
+ * <code>xCellAc</code>.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value isn't null.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleCellAt() {
+ requiredMethod("getAccessibleRowCount()");
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+
+ try {
+ log.print("getAccessibleCellAt(-1," + (colCount-1) + "):");
+ xCellAc = oObj.getAccessibleCellAt(-1, colCount - 1);
+ log.println(xCellAc);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleCellAt(" + (rowCount-1) + ",-1):");
+ xCellAc = oObj.getAccessibleCellAt(rowCount - 1, -1);
+ log.println(xCellAc);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleCellAt(0, " + colCount + "):");
+ xCellAc = oObj.getAccessibleCellAt(0, colCount);
+ log.println(xCellAc);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleCellAt(" + rowCount + ",0):");
+ XAccessible xCellAc = oObj.getAccessibleCellAt(rowCount, 0);
+ log.println(xCellAc);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleCellAt(" + (rowCount-1) + "," +
+ (colCount-1) + "): ");
+ xCellAc = oObj.getAccessibleCellAt(
+ rowCount - 1, colCount - 1);
+ log.println(xCellAc);
+ res &= xCellAc != null;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleCellAt()", res);
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getAccessibleCaption() {
+ XAccessible caption = oObj.getAccessibleCaption();
+ log.println("getAccessibleCaption(): " + caption);
+ tRes.tested("getAccessibleCaption()", true);
+ }
+
+ /**
+ * Just calls the method.
+ */
+ public void _getAccessibleSummary() {
+ XAccessible summary = oObj.getAccessibleSummary();
+ log.println("getAccessibleSummary(): " + summary);
+ tRes.tested("getAccessibleSummary()", true);
+ }
+
+ /**
+ * Calls the method with the wrong parameters and with the correct
+ * parameter, checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _isAccessibleSelected() {
+ requiredMethod("getAccessibleRowCount()");
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+ boolean locRes = true;
+
+ try {
+ log.print("isAccessibleSelected(-1," + (colCount-1) + "):");
+ locRes = oObj.isAccessibleSelected(-1, colCount - 1);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("isAccessibleSelected(" + (rowCount-1) + ",-1):");
+ locRes = oObj.isAccessibleSelected(rowCount - 1, -1);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("isAccessibleSelected(0, " + colCount + "):");
+ locRes = oObj.isAccessibleSelected(0, colCount);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("isAccessibleSelected(" + rowCount + ",0):");
+ locRes = oObj.isAccessibleSelected(rowCount, 0);
+ log.println(locRes);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ if (xASel != null) {
+ log.println("XAccessibleSelection.selectAllAccessibleChildren()");
+ xASel.selectAllAccessibleChildren();
+ }
+
+ try {
+ log.print("isAccessibleSelected(" + (rowCount-1) + "," +
+ (colCount-1) + "): ");
+ boolean isSel = oObj.isAccessibleSelected(
+ rowCount - 1, colCount - 1);
+ log.println(isSel);
+ locRes = (xASel == null) ? !isSel : isSel ;
+ res &= locRes;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("isAccessibleSelected()", res);
+ }
+
+ /**
+ * Calls the method with the wrong parameters and with the correct
+ * parameter, checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value is equal to value returned by calling
+ * <code>XAccessibleContext::getAccessibleIndexInParent</code> for the cell.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleCellAt()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleIndex() {
+ executeMethod("getAccessibleCellAt()");
+ boolean res = true;
+
+ try {
+ log.print("getAccessibleIndex(-1," + (colCount-1) + "):");
+ int indx = oObj.getAccessibleIndex(-1, colCount - 1);
+ log.println(indx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleIndex(" + (rowCount-1) + ",-1):");
+ int indx = oObj.getAccessibleIndex(rowCount - 1, -1);
+ log.println(indx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleIndex(0," + colCount + "):");
+ int indx = oObj.getAccessibleIndex(0, colCount);
+ log.println(indx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleIndex(" + rowCount + ",0):");
+ int indx = oObj.getAccessibleIndex(rowCount, 0);
+ log.println(indx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleIndex(" + (rowCount-1) + "," +
+ (colCount-1) + "): ");
+ int indx = oObj.getAccessibleIndex(
+ rowCount - 1, colCount - 1);
+ log.println(indx);
+ if (xCellAc != null) {
+ XAccessibleContext xAC = xCellAc.getAccessibleContext();
+ int expIndx = xAC.getAccessibleIndexInParent();
+ log.println("Expected index: " + expIndx);
+ res &= expIndx == indx;
+ } else {
+ res &= true;
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleIndex()", res);
+ }
+
+ /**
+ * Receives an accessible child count using the interface
+ * <code>XAccessibleContext</code>.
+ * Calls the method with the wrong parameters and with the correct
+ * parameter, checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value is greater than zero and is less than
+ * accessible row count.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleRowCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleRow() {
+ requiredMethod("getAccessibleRowCount()");
+ boolean res = true;
+
+ if (xACont != null) {
+ int childCount = xACont.getAccessibleChildCount();
+ log.println("accessible child count: " + childCount);
+
+ try {
+ log.print("getAccessibleRow(" + childCount + "): ");
+ int rowIndx = oObj.getAccessibleRow(childCount);
+ log.println(rowIndx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRow(" + (childCount-1) + "): ");
+ int rowIndx = oObj.getAccessibleRow(childCount - 1);
+ log.println(rowIndx);
+ res &= (rowIndx >= 0 && rowIndx <= rowCount);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+ }
+
+ try {
+ log.print("getAccessibleRow(-1): ");
+ int rowIndx = oObj.getAccessibleRow(-1);
+ log.println(rowIndx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleRow(0): ");
+ int rowIndx = oObj.getAccessibleRow(0);
+ log.println(rowIndx);
+ res &= (rowIndx >= 0 && rowIndx <= rowCount);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleRow()", res);
+ }
+
+ /**
+ * Receives an accessible child count using the interface
+ * <code>XAccessibleContext</code>.
+ * Calls the method with the wrong parameters and with the correct
+ * parameter, checks a returned value.
+ * Has OK status if exceptions were thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value is greater than zero and is less than
+ * accessible column count.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getAccessibleColumnCount()</code> </li>
+ * </ul>
+ */
+ public void _getAccessibleColumn() {
+ requiredMethod("getAccessibleColumnCount()");
+ boolean res = true;
+
+ if (xACont != null) {
+ int childCount = xACont.getAccessibleChildCount();
+ log.println("accessible child count: " + childCount);
+
+ try {
+ log.print("getAccessibleColumn(" + childCount + "): ");
+ int colIndx = oObj.getAccessibleColumn(childCount);
+ log.println(colIndx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumn(" + (childCount-1) + "): ");
+ int colIndx = oObj.getAccessibleColumn(childCount - 1);
+ log.println(colIndx);
+ res &= (colIndx >= 0 && colIndx <= colCount);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+ }
+
+ try {
+ log.print("getAccessibleColumn(-1): ");
+ int colIndx = oObj.getAccessibleColumn(-1);
+ log.println(colIndx);
+ log.println("Exception was expected");
+ res &= false;
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getAccessibleColumn(0): ");
+ int colIndx = oObj.getAccessibleColumn(0);
+ log.println(colIndx);
+ res &= (colIndx >= 0 && colIndx <= rowCount);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getAccessibleColumn()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleText.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleText.java
new file mode 100644
index 000000000..b4dd7d674
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleText.java
@@ -0,0 +1,1208 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.accessibility;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.accessibility.AccessibleTextType;
+import com.sun.star.accessibility.TextSegment;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleText</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getCaretPosition()</code></li>
+ * <li><code> setCaretPosition()</code></li>
+ * <li><code> getCharacter()</code></li>
+ * <li><code> getCharacterAttributes()</code></li>
+ * <li><code> getCharacterBounds()</code></li>
+ * <li><code> getCharacterCount()</code></li>
+ * <li><code> getIndexAtPoint()</code></li>
+ * <li><code> getSelectedText()</code></li>
+ * <li><code> getSelectionStart()</code></li>
+ * <li><code> getSelectionEnd()</code></li>
+ * <li><code> setSelection()</code></li>
+ * <li><code> getText()</code></li>
+ * <li><code> getTextRange()</code></li>
+ * <li><code> getTextAtIndex()</code></li>
+ * <li><code> getTextBeforeIndex()</code></li>
+ * <li><code> getTextBehindIndex()</code></li>
+ * <li><code> copyText()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'XAccessibleText.Text'</code> (of type <code>String</code>)
+ * <b> optional </b> :
+ * the string presentation of component's text. If the relation
+ * is not specified, then text from method <code>getText()</code>
+ * is used.
+ * </li>
+ * </ul> <p>
+ * @see com.sun.star.accessibility.XAccessibleText
+ */
+public class _XAccessibleText extends MultiMethodTest {
+
+ public XAccessibleText oObj = null;
+ protected com.sun.star.awt.Rectangle bounds = null;
+ String text = null;
+ String editOnly = null;
+ Object LimitedBounds = null;
+ Rectangle chBounds = null;
+ int chCount = 0;
+
+
+ /**
+ * Retrieves a string representation of the component's text.
+ * The length of retrieved string must be greater than zero.
+ */
+ @Override
+ protected void before() {
+ Object xat = tEnv.getObjRelation("XAccessibleText");
+
+ XAccessibleComponent component = null;
+
+ if (xat != null) {
+ oObj = UnoRuntime.queryInterface(
+ XAccessibleText.class, xat);
+ component = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, xat);
+ }
+
+ text = (String) tEnv.getObjRelation("XAccessibleText.Text");
+
+ if (text == null) {
+ text = oObj.getText();
+ }
+
+ if (text.length() == 0) {
+ throw new StatusException(Status.failed(
+ "The length of text must be greater than zero"));
+ }
+
+ editOnly = (String) tEnv.getObjRelation("EditOnly");
+ LimitedBounds = tEnv.getObjRelation("LimitedBounds");
+
+ if (component == null) {
+ component = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ tEnv.getTestObject());
+ }
+
+ bounds = component.getBounds();
+
+ log.println("Text is '" + text + "'");
+ System.out.println("############################");
+ }
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if returned value is equal to <code>chCount - 1</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>setCaretPosition()</code> </li>
+ * </ul>
+ */
+ public void _getCaretPosition() {
+ requiredMethod("getCharacterCount()");
+
+ if (editOnly != null) {
+ log.println(editOnly);
+ throw new StatusException(Status.skipped(true));
+ }
+
+ boolean res = true;
+ boolean sc = true;
+
+ try {
+ oObj.setCaretPosition(chCount - 1);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ie) {
+ }
+
+ int carPos = oObj.getCaretPosition();
+ log.println("getCaretPosition: " + carPos);
+
+ if (sc) {
+ res = carPos == (chCount - 1);
+ } else {
+ log.println(
+ "Object is read only and Caret position couldn't be set");
+ res = carPos == -1;
+ }
+
+ tRes.tested("getCaretPosition()", res);
+ }
+
+ /**
+ * Calls the method with the wrong index and with the correct index
+ * <code>chCount - 1</code>.
+ * Has OK status if exception was thrown for wrong index and
+ * if exception wasn't thrown for the correct index.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _setCaretPosition() {
+ requiredMethod("getCharacterCount()");
+
+ boolean res = true;
+
+ try {
+ log.print("setCaretPosition(-1):");
+ oObj.setCaretPosition(-1);
+ res &= false;
+ log.println("exception was expected ... FAILED");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("setCaretPosition(chCount+1):");
+ oObj.setCaretPosition(chCount + 1);
+ res &= false;
+ log.println("exception was expected ... FAILED");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("expected exception");
+ res &= true;
+ }
+
+ try {
+ log.println("setCaretPosition(chCount - 1)");
+ oObj.setCaretPosition(chCount - 1);
+ res &= true;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("unexpected exception ... FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("setCaretPosition()", res);
+ }
+
+ /**
+ * Calls the method with the wrong index and with the correct indexes.
+ * Checks every character in the text.
+ * Has OK status if exception was thrown for wrong index,
+ * if exception wasn't thrown for the correct index and
+ * if every character is equal to corresponding character in the text.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getCharacter() {
+ requiredMethod("getCharacterCount()");
+
+ boolean res = true;
+
+ try {
+ log.println("getCharacter(-1)");
+ oObj.getCharacter(-1);
+ log.println("Exception was expected");
+ res = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res = true;
+ }
+
+ try {
+ log.println("getCharacter(chCount)");
+ oObj.getCharacter(chCount);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.println("Checking of every character in the text...");
+
+ boolean isEqCh = true;
+
+ for (int i = 0; i < chCount; i++) {
+ char ch = oObj.getCharacter(i);
+ isEqCh = ch == text.charAt(i);
+ res &= isEqCh;
+
+ if (!isEqCh) {
+ log.println("At the position " + i +
+ "was expected character: " + text.charAt(i));
+ log.println("but was returned: " + ch);
+
+ break;
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getCharacter()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct index,
+ * checks a returned value.
+ * Has OK status if exception was thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value isn't <code>null</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getCharacterAttributes() {
+ requiredMethod("getCharacterCount()");
+
+ boolean res = true;
+ String[] attr = new String[] { "" };
+
+ try {
+ log.println("getCharacterAttributes(-1)");
+ oObj.getCharacterAttributes(-1, attr);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ try {
+ log.println("getCharacterAttributes(chCount = " + chCount + ")");
+ oObj.getCharacterAttributes(chCount, attr);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ try {
+ log.println(
+ "getCharacterAttributes(chCount-1 = " + (chCount - 1) + ")");
+
+ PropertyValue[] props = oObj.getCharacterAttributes(chCount - 1,
+ attr);
+ res &= (props != null);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("unexpected exception => FAILED");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getCharacterAttributes()", res);
+ }
+
+ /**
+ * Calls the method with the wrong indexes and with the correct index.
+ * checks and stores a returned value.
+ * Has OK status if exception was thrown for the wrong indexes,
+ * if exception wasn't thrown for the correct index and
+ * if returned value isn't <code>null</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getCharacterBounds() {
+ requiredMethod("getCharacterCount()");
+
+ boolean res = true;
+
+ int lastIndex = chCount;
+
+ if (LimitedBounds != null) {
+ if (LimitedBounds instanceof Integer) {
+ lastIndex = ((Integer) LimitedBounds).intValue();
+ } else {
+ lastIndex = chCount - 1;
+ }
+
+ log.println(LimitedBounds);
+ }
+
+ try {
+ log.println("getCharacterBounds(-1)");
+ oObj.getCharacterBounds(-1);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.println("getCharacterBounds(" + (lastIndex + 1) + ")");
+ oObj.getCharacterBounds(lastIndex + 1);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ for (int i = 0; i < lastIndex; i++) {
+ log.println("getCharacterBounds(" + i + ")");
+ chBounds = oObj.getCharacterBounds(i);
+
+ boolean localres = true;
+ localres = chBounds.X >= 0;
+ localres &= (chBounds.Y >= 0);
+ localres &= ((chBounds.X + chBounds.Width) <= bounds.Width);
+ localres &= ((chBounds.X + chBounds.Width) >= 0);
+ localres &= ((chBounds.Y + chBounds.Height) <= bounds.Height);
+ localres &= ((chBounds.Y + chBounds.Height) >= 0);
+
+ if (!localres) {
+ log.println("Text at this place: "+oObj.getCharacter(i));
+ log.println("Character bounds outside component");
+ log.println("Character rect: " + chBounds.X + ", " +
+ chBounds.Y + ", " + chBounds.Width + ", " +
+ chBounds.Height);
+ log.println("Component rect: " + bounds.X + ", " +
+ bounds.Y + ", " + bounds.Width + ", " +
+ bounds.Height);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getCharacterBounds()", res);
+ }
+
+ /**
+ * Calls the method and stores a returned value to the variable
+ * <code>chCount</code>.
+ * Has OK status if a returned value is equal to the text length.
+ */
+ public void _getCharacterCount() {
+ chCount = oObj.getCharacterCount();
+ log.println("Character count:" + chCount);
+
+ boolean res = chCount == text.length();
+ tRes.tested("getCharacterCount()", res);
+ }
+
+ /**
+ * Calls the method for an invalid point and for the point of rectangle
+ * returned by the method <code>getCharacterBounds()</code>.
+ * Has OK status if returned value is equal to <code>-1</code> for an
+ * invalid point and if returned value is equal to <code>chCount-1</code>
+ * for a valid point.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterBounds()</code> </li>
+ * </ul>
+ */
+ public void _getIndexAtPoint() {
+ //requiredMethod("getCharacterBounds()");
+ boolean res = true;
+ log.print("getIndexAtPoint(-1, -1):");
+
+ Point pt = new Point(-1, -1);
+ int index = oObj.getIndexAtPoint(pt);
+ log.println(index);
+ res &= (index == -1);
+
+ int lastIndex = chCount;
+
+ if (LimitedBounds != null) {
+ if (LimitedBounds instanceof Integer) {
+ lastIndex = ((Integer) LimitedBounds).intValue();
+ } else {
+ lastIndex = chCount - 1;
+ }
+
+ log.println(LimitedBounds);
+ }
+
+ for (int i = 0; i < lastIndex; i++) {
+ Rectangle aRect = null;
+ String text = "empty";
+
+ try {
+ aRect = oObj.getCharacterBounds(i);
+ text = oObj.getTextAtIndex(i, (short) 1).SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+
+ if (aRect == null) {
+ res = false;
+ log.print("aRect unexpected null");
+ break;
+ }
+
+ int x = aRect.X + (aRect.Width / 2);
+ int y = aRect.Y + (aRect.Height / 2);
+
+ Point aPoint = new Point(x, y);
+ int nIndex = oObj.getIndexAtPoint(aPoint);
+
+ x = aRect.X;
+ y = aRect.Y + (aRect.Height / 2);
+ aPoint = new Point(x, y);
+ int left = oObj.getIndexAtPoint(aPoint);
+
+
+
+ int[] previous = (int[]) tEnv.getObjRelation("PreviousUsed");
+
+ if (previous != null) {
+ for (int k = 0; k < previous.length; k++) {
+ if (i == previous[k]) {
+ nIndex++;
+ }
+ }
+ }
+
+ if (nIndex != i) {
+ // for some letters the center of the rectangle isn't recognised
+ // in this case we are happy if the left border of the rectangle
+ // returns the correct value.
+ if (left !=i) {
+ log.println("## Method didn't work for Point (" + x + "," + y +
+ ")");
+ log.println("Expected Index " + i);
+ log.println("Gained Index: " + nIndex);
+ log.println("Left Border: "+left);
+ log.println("CharacterAtIndex: " + text);
+ res &= false;
+ }
+ }
+ }
+
+ tRes.tested("getIndexAtPoint()", res);
+ }
+
+ /**
+ * Checks a returned values after different calls of the method
+ * <code>setSelection()</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>setSelection()</code> </li>
+ * </ul>
+ */
+ public void _getSelectedText() {
+ if (editOnly != null) {
+ log.println(editOnly);
+ throw new StatusException(Status.skipped(true));
+ }
+
+ requiredMethod("setSelection()");
+
+ boolean res = true;
+
+ try {
+ log.println("setSelection(0, 0)");
+ oObj.setSelection(0, 0);
+ log.print("getSelectedText():");
+
+ String txt = oObj.getSelectedText();
+ log.println("'" + txt + "'");
+ res &= (txt.length() == 0);
+
+ log.println("setSelection(0, chCount)");
+ oObj.setSelection(0, chCount);
+ log.print("getSelectedText():");
+ txt = oObj.getSelectedText();
+ log.println("'" + txt + "'");
+ res &= txt.equals(text);
+
+ if (chCount > 2) {
+ log.println("setSelection(1, chCount-1)");
+ oObj.setSelection(1, chCount - 1);
+ log.print("getSelectedText():");
+ txt = oObj.getSelectedText();
+ log.println("'" + txt + "'");
+ res &= txt.equals(text.substring(1, chCount - 1));
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getSelectedText()", res);
+ }
+
+ /**
+ * Checks a returned values after different calls of the method
+ * <code>setSelection()</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>setSelection()</code> </li>
+ * </ul>
+ */
+ public void _getSelectionStart() {
+ if (editOnly != null) {
+ log.println(editOnly);
+ throw new StatusException(Status.skipped(true));
+ }
+
+ requiredMethod("setSelection()");
+
+ boolean res = true;
+
+ try {
+ log.println("setSelection(0, chCount)");
+ oObj.setSelection(0, chCount);
+
+ int start = oObj.getSelectionStart();
+ log.println("getSelectionStart():" + start);
+ res &= (start == 0);
+
+ if (chCount > 2) {
+ log.println("setSelection(1, chCount-1)");
+ oObj.setSelection(1, chCount - 1);
+ start = oObj.getSelectionStart();
+ log.println("getSelectionStart():" + start);
+ res &= (start == 1);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getSelectionStart()", res);
+ }
+
+ /**
+ * Checks a returned values after different calls of the method
+ * <code>setSelection()</code>.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>setSelection()</code> </li>
+ * </ul>
+ */
+ public void _getSelectionEnd() {
+ if (editOnly != null) {
+ log.println(editOnly);
+ throw new StatusException(Status.skipped(true));
+ }
+
+ requiredMethod("setSelection()");
+
+ boolean res = true;
+
+ try {
+ log.println("setSelection(0, chCount)");
+ oObj.setSelection(0, chCount);
+
+ int end = oObj.getSelectionEnd();
+ log.println("getSelectionEnd():" + end);
+ res &= (end == chCount);
+
+ if (chCount > 2) {
+ log.println("setSelection(1, chCount-1)");
+ oObj.setSelection(1, chCount - 1);
+ end = oObj.getSelectionEnd();
+ log.println("getSelectionEnd():" + end);
+ res &= (end == (chCount - 1));
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getSelectionEnd()", res);
+ }
+
+ /**
+ * Calls the method with invalid parameters and with valid parameters.
+ * Has OK status if exception was thrown for invalid parameters,
+ * if exception wasn't thrown for valid parameters.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _setSelection() {
+ requiredMethod("getCharacterCount()");
+
+ boolean res = true;
+ boolean locRes = true;
+
+ if (editOnly != null) {
+ log.println(editOnly);
+ throw new StatusException(Status.skipped(true));
+ }
+
+ try {
+ log.print("setSelection(-1, chCount-1):");
+ locRes = oObj.setSelection(-1, chCount - 1);
+ log.println(locRes + " exception was expected");
+ res &= !locRes;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("setSelection(0, chCount+1):");
+ locRes = oObj.setSelection(0, chCount + 1);
+ log.println(locRes + " exception was expected");
+ res &= !locRes;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ if (chCount > 2) {
+ log.print("setSelection(1, chCount-1):");
+ locRes = oObj.setSelection(1, chCount - 1);
+ log.println(locRes);
+ res &= locRes;
+
+ log.print("setSelection(chCount-1, 1):");
+ locRes = oObj.setSelection(chCount - 1, 1);
+ log.println(locRes);
+ res &= locRes;
+ }
+
+ log.print("setSelection(0, chCount-1):");
+ locRes = oObj.setSelection(0, chCount - 1);
+ log.println(locRes);
+ res &= locRes;
+
+ log.print("setSelection(chCount-1, 0):");
+ locRes = oObj.setSelection(chCount - 1, 0);
+ log.println(locRes);
+ res &= locRes;
+
+ log.print("setSelection(0, 0):");
+ locRes = oObj.setSelection(0, 0);
+ log.println(locRes);
+ res &= locRes;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("setSelection()", res);
+ }
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if returned string is equal to string
+ * received from relation.
+ */
+ public void _getText() {
+ String txt = oObj.getText();
+ log.println("getText: " + txt);
+
+ boolean res = txt.equals(text);
+ tRes.tested("getText()", res);
+ }
+
+ /**
+ * Calls the method with invalid parameters and with valid parameters,
+ * checks returned values.
+ * Has OK status if exception was thrown for invalid parameters,
+ * if exception wasn't thrown for valid parameters and if returned values
+ * are equal to corresponding substrings of the text received by relation.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getTextRange() {
+ requiredMethod("getCharacterCount()");
+
+ boolean res = true;
+ boolean locRes = true;
+
+ String txtRange = "";
+
+ try {
+ if (chCount > 3) {
+ log.print("getTextRange(1, chCount - 2): ");
+
+ txtRange = oObj.getTextRange(1, chCount - 2);
+ log.println(txtRange);
+ locRes = txtRange.equals(text.substring(1, chCount - 2));
+ res &= locRes;
+
+ if (!locRes) {
+ log.println("Was expected: " +
+ text.substring(1, chCount - 2));
+ }
+ }
+
+ log.print("getTextRange(0, chCount-1): ");
+
+ txtRange = oObj.getTextRange(0, chCount - 1);
+ log.println(txtRange);
+ locRes = txtRange.equals(text.substring(0, chCount - 1));
+ res &= locRes;
+
+ if (!locRes) {
+ log.println("Was expected: " +
+ text.substring(0, chCount - 1));
+ }
+
+ log.print("getTextRange(chCount, 0): ");
+ txtRange = oObj.getTextRange(chCount, 0);
+ log.println(txtRange);
+ res &= txtRange.equals(text);
+
+ log.print("getTextRange(0, 0): ");
+ txtRange = oObj.getTextRange(0, 0);
+ log.println(txtRange);
+ locRes = txtRange.equals("");
+ res &= locRes;
+
+ if (!locRes) {
+ log.println("Empty string was expected");
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ try {
+ log.print("getTextRange(-1, chCount - 1): ");
+
+ txtRange = oObj.getTextRange(-1, chCount - 1);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getTextRange(0, chCount + 1): ");
+
+ txtRange = oObj.getTextRange(0, chCount + 1);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getTextRange(chCount+1, -1): ");
+
+ txtRange = oObj.getTextRange(chCount + 1, -1);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ tRes.tested("getTextRange()", res);
+ }
+
+ /**
+ * Calls the method with invalid parameters and with valid parameters,
+ * checks returned values.
+ * Has OK status if exception was thrown for invalid parameters,
+ * if exception wasn't thrown for valid parameters and if returned values
+ * are equal to corresponding substrings of the text received by relation.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getTextAtIndex() {
+ requiredMethod("getCharacterCount()");
+ TextSegment txt = null;
+ boolean res = true;
+
+ try {
+ log.print("getTextAtIndex(-1, AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextAtIndex(-1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("UnExpected exception");
+ res &= false;
+ }
+
+ try {
+ log.print("getTextAtIndex(chCount+1," +
+ " AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextAtIndex(chCount + 1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("UnExpected exception");
+ res &= false;
+ }
+
+ try {
+ log.print("getTextAtIndex(chCount," +
+ " AccessibleTextType.WORD):");
+
+ txt = oObj.getTextAtIndex(chCount, AccessibleTextType.WORD);
+ log.println("'" + txt.SegmentText + "'");
+ res &= compareLength(0,txt.SegmentText);
+ if (!tEnv.getTestCase().getObjectName().equals("SmGraphicAccessible")) {
+ log.print("getTextAtIndex(1," +
+ " AccessibleTextType.PARAGRAPH):");
+ txt = oObj.getTextAtIndex(1, AccessibleTextType.PARAGRAPH);
+ log.println("'" + txt.SegmentText + "'");
+ res &= compareStrings(text,txt.SegmentText);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getTextAtIndex()", res);
+ }
+
+ /**
+ * Calls the method with invalid parameters and with valid parameters,
+ * checks returned values.
+ * Has OK status if exception was thrown for invalid parameters,
+ * if exception wasn't thrown for valid parameters and if returned values
+ * are equal to corresponding substrings of the text received by relation.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getTextBeforeIndex() {
+ requiredMethod("getCharacterCount()");
+ TextSegment txt = null;
+ boolean res = true;
+
+ try {
+ log.print("getTextBeforeIndex(-1, AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextBeforeIndex(-1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("UnExpected exception");
+ res &= false;
+ }
+
+ try {
+ log.print("getTextBeforeIndex(chCount+1, " +
+ "AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextBeforeIndex(chCount + 1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("UnExpected exception");
+ res &= true;
+ }
+
+ try {
+ if (!tEnv.getTestCase().getObjectName().equals("SmGraphicAccessible")
+ // next one fails because the control actually contains 2 words
+ && !tEnv.getTestCase().getObjectName().equals("AccessibleStatusBarItem"))
+ {
+ log.print("getTextBeforeIndex(chCount," +
+ " AccessibleTextType.WORD):");
+
+ txt = oObj.getTextBeforeIndex(chCount,
+ AccessibleTextType.WORD);
+ log.println("'" + txt.SegmentText + "'");
+ res &= compareLength(chCount, txt.SegmentText);
+ }
+
+ log.print("getTextBeforeIndex(1," +
+ " AccessibleTextType.PARAGRAPH):");
+ txt = oObj.getTextBeforeIndex(1, AccessibleTextType.PARAGRAPH);
+ log.println("'" + txt.SegmentText + "'");
+ res &= compareLength(0, txt.SegmentText);
+
+ log.print("getTextBeforeIndex(chCount-1," +
+ " AccessibleTextType.CHARACTER):");
+ txt = oObj.getTextBeforeIndex(chCount - 1,
+ AccessibleTextType.CHARACTER);
+ log.println("'" + txt.SegmentText + "'");
+ res &= compareStrings(text.substring(chCount - 2, chCount - 1),
+ txt.SegmentText);
+
+ if (chCount > 2) {
+ log.print("getTextBeforeIndex(2," +
+ " AccessibleTextType.CHARACTER):");
+ txt = oObj.getTextBeforeIndex(2, AccessibleTextType.CHARACTER);
+ log.println("'" + txt.SegmentText + "'");
+ res &= compareStrings(text.substring(1, 2), txt.SegmentText);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getTextBeforeIndex()", res);
+ }
+
+ /**
+ * Calls the method with invalid parameters and with valid parameters,
+ * checks returned values.
+ * Has OK status if exception was thrown for invalid parameters,
+ * if exception wasn't thrown for valid parameters and if returned values
+ * are equal to corresponding substrings of the text received by relation.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code>getCharacterCount()</code> </li>
+ * </ul>
+ */
+ public void _getTextBehindIndex() {
+ requiredMethod("getCharacterCount()");
+ TextSegment txt = null;
+ boolean res = true;
+
+ try {
+ log.print("getTextBehindIndex(-1, AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextBehindIndex(-1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("UnExpected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getTextBehindIndex(chCount+1, " +
+ "AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextBehindIndex(chCount + 1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("UnExpected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("getTextBehindIndex(chCount," +
+ " AccessibleTextType.PARAGRAPH):");
+
+ txt = oObj.getTextBehindIndex(chCount,
+ AccessibleTextType.PARAGRAPH);
+ log.println("'" + txt.SegmentText + "'");
+ res &= (txt.SegmentText.length() == 0);
+
+ log.print("getTextBehindIndex(chCount-1," +
+ " AccessibleTextType.PARAGRAPH):");
+ txt = oObj.getTextBehindIndex(chCount - 1,
+ AccessibleTextType.PARAGRAPH);
+ log.println("'" + txt.SegmentText + "'");
+ res &= (txt.SegmentText.length() == 0);
+
+ log.print("getTextBehindIndex(1," +
+ " AccessibleTextType.CHARACTER):");
+ txt = oObj.getTextBehindIndex(1, AccessibleTextType.CHARACTER);
+ log.println("'" + txt.SegmentText + "'");
+ res &= txt.SegmentText.equals(text.substring(2, 3));
+
+ if (chCount > 2) {
+ log.print("getTextBehindIndex(chCount-2," +
+ " AccessibleTextType.CHARACTER):");
+ txt = oObj.getTextBehindIndex(chCount - 2,
+ AccessibleTextType.CHARACTER);
+ log.println("'" + txt.SegmentText + "'");
+ res &= txt.SegmentText.equals(text.substring(chCount - 1, chCount));
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("getTextBehindIndex()", res);
+ }
+
+ /**
+ * Calls the method with invalid parameters and with valid parameter,
+ * checks returned values.
+ * Has OK status if exception was thrown for invalid parameters,
+ * if exception wasn't thrown for valid parameter and if returned value for
+ * valid parameter is equal to <code>true</code>.
+ */
+ public void _copyText() {
+ boolean res = true;
+ boolean locRes = true;
+
+ if (editOnly != null) {
+ log.println(editOnly);
+ throw new StatusException(Status.skipped(true));
+ }
+
+ try {
+ log.print("copyText(-1,chCount):");
+ oObj.copyText(-1, chCount);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("copyText(0,chCount+1):");
+ oObj.copyText(0, chCount + 1);
+ log.println("Exception was expected");
+ res &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+
+ try {
+ log.print("copyText(0,chCount):");
+ locRes = oObj.copyText(0, chCount);
+ log.println(locRes);
+ res &= locRes;
+
+ String cbText = null;
+
+ try {
+ cbText = util.SysUtils.getSysClipboardText(tParam.getMSF());
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't access system clipboard :");
+ e.printStackTrace(log);
+ }
+
+ log.println("Clipboard: '" + cbText + "'");
+ res &= text.equals(cbText);
+
+ if (chCount > 2) {
+ log.print("copyText(1,chCount-1):");
+ locRes = oObj.copyText(1, chCount - 1);
+ log.println(locRes);
+ res &= locRes;
+
+ try {
+ cbText = util.SysUtils.getSysClipboardText(tParam.getMSF());
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't access system clipboard :");
+ e.printStackTrace(log);
+ }
+
+ log.println("Clipboard: '" + cbText + "'");
+ res &= text.substring(1, chCount - 1).equals(cbText);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res &= false;
+ }
+
+ tRes.tested("copyText()", res);
+ }
+
+ public boolean compareStrings(String expected, String getting) {
+ boolean res = expected.equals(getting);
+
+ if (!res) {
+ log.println("## The result isn't the expected:");
+ log.println("\tGetting: " + getting);
+ log.println("\tExpected: " + expected);
+ }
+
+ return res;
+ }
+
+ public boolean compareLength(int expected, String getting) {
+ boolean res = (expected == getting.length());
+
+ if (!res) {
+ log.println("## The result isn't the expected:");
+ log.println("\tGetting: " + getting.length());
+ log.println("\tExpected: " + expected);
+ }
+
+ return res;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleValue.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleValue.java
new file mode 100644
index 000000000..b72874768
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleValue.java
@@ -0,0 +1,344 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.accessibility;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.accessibility.XAccessibleValue;
+
+/**
+ * Testing <code>com.sun.star.accessibility.XAccessibleValue</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getCurrentValue()</code></li>
+ * <li><code> setCurrentValue()</code></li>
+ * <li><code> getMaximumValue()</code></li>
+ * <li><code> getMinimumValue()</code></li>
+ * </ul> <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'XAccessibleValue.anotherFromGroup'</code>
+ * (of type <code>XAccessibleValue</code>) <b> optional </b>:
+ * another component from the group(e.g. radio button group)</li>
+ * </ul><p>
+ * @see com.sun.star.accessibility.XAccessibleValue
+ */
+public class _XAccessibleValue extends MultiMethodTest {
+
+ public XAccessibleValue oObj = null;
+
+ private double minVal = 0;
+ private double maxVal = 0;
+ private static final double curVal = 0;
+ private Object val = null;
+ XAccessibleValue anotherFromGroup = null;
+
+ @Override
+ protected void before() {
+ anotherFromGroup = (XAccessibleValue)tEnv.getObjRelation(
+ "XAccessibleValue.anotherFromGroup");
+ }
+
+ /**
+ * Gets current value and stores it as double. <p>
+ *
+ * Has <b> OK </b> status if the current value is between Min and Max
+ * values. <p>
+ *
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getMaximumValue </code> </li>
+ * <li> <code> getMinimumValue </code> </li>
+ * </ul>
+ */
+ public void _getCurrentValue() {
+ executeMethod("getMaximumValue()");
+ executeMethod("getMinimumValue()");
+
+ boolean result = true;
+
+ double curVal ;
+ val = oObj.getCurrentValue() ;
+ if (util.utils.isVoid(val)) {
+ val = Integer.valueOf(0);
+ curVal = 0;
+ } else {
+ curVal = getDoubleValue(val);
+ }
+
+ if (curVal < minVal || maxVal < curVal) {
+ log.println((curVal - minVal) + "," + (maxVal - curVal));
+ log.println("Current value " + curVal + " is not in range ["
+ + minVal + "," + maxVal + "]");
+ result = false;
+ }
+
+ tRes.tested("getCurrentValue()", result) ;
+ }
+
+ /**
+ * Performs testing for following cases :
+ * <ul>
+ * <li> Creates new value in valid range and sets it. </li>
+ * <li> Sets maximum and minimum values. </li>
+ * <li> Sets Min - 1, and Max + 1 values </li>
+ * </ul> <p>
+ *
+ * Has <b> OK </b> status if for the first case the value returned
+ * is the same as was set and the method <code>setCurrentValue</code>
+ * returns <code>true</code>.
+ *
+ * In the second if Max and Min values are set and method
+ * <code>setCurrentValue</code> returns <code>true</code>.
+ *
+ * In the third case invalid values are truncated to Min and Max
+ * values accordingly. <p>
+ *
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getCurrentValue() </code> </li>
+ * </ul>
+ */
+ public void _setCurrentValue() {
+ executeMethod("getCurrentValue()");
+
+ boolean result = true ;
+ boolean partResult=true;
+ String noMax = "com.sun.star.comp.toolkit.AccessibleScrollBar";
+ String implName = util.utils.getImplName(oObj);
+
+ if (tEnv.getObjRelation("ValueNotPersistent")!=null) {
+ log.println("Excluded since it works like AccessibleAction");
+ tRes.tested("setCurrentValue()",Status.skipped(true));
+ return;
+ }
+
+ if (anotherFromGroup == null) {
+ double newVal = curVal + 1;
+ if (newVal > maxVal) newVal -= 2;
+ if (newVal < minVal) newVal += 1;
+
+ log.println("New value is " + newVal);
+
+ Object setVal = getObjectValue(newVal, val.getClass());
+
+ result &= oObj.setCurrentValue(setVal);
+
+ if (!result) {
+ log.println("The value can't be set");
+ throw new StatusException(Status.skipped(true));
+ }
+
+ double resVal = getDoubleValue(oObj.getCurrentValue());
+ log.println("Res value is " + resVal);
+
+ result &= Math.abs(newVal - resVal) < 0.00001;
+
+ log.println("Checking min/max values");
+ result &= oObj.setCurrentValue(getObjectValue(minVal, val.getClass()));
+ log.println("Setting to "+ getObjectValue(minVal, val.getClass()));
+ resVal = getDoubleValue(oObj.getCurrentValue());
+ log.println("Result min value is " + resVal);
+ result &= Math.abs(minVal - resVal) < 0.00001;
+ log.println("\t works: "+(Math.abs(minVal - resVal) < 0.00001));
+
+ result &= oObj.setCurrentValue(getObjectValue(maxVal, val.getClass()));
+ log.println("Setting to "+ getObjectValue(maxVal, val.getClass()));
+ resVal = getDoubleValue(oObj.getCurrentValue());
+ log.println("Result max value is " + resVal);
+ partResult = Math.abs(maxVal - resVal) < 0.00001;
+
+ if (implName.equals(noMax)) {
+ log.println("If one sets the maximum value of a scroll bar with XScrollBar::setMaximum(),"+
+ "then XScrollBar::getValue() returns the maximum value minus the visible size of"+
+ "the thumb");
+ //using arbitrary Value, since we can't determine the resulting value
+ partResult = resVal > 10;
+ }
+
+ result &=partResult;
+ log.println("\t works: "+partResult);
+
+ log.println("Checking truncating of min/max values");
+ oObj.setCurrentValue(getObjectValue(minVal - 1, val.getClass()));
+ log.println("Setting to "+ getObjectValue(minVal -1 , val.getClass()));
+ resVal = getDoubleValue(oObj.getCurrentValue());
+ log.println("Result min value is " + resVal);
+ result &= Math.abs(minVal - resVal) < 0.00001;
+ log.println("\t works: "+(Math.abs(minVal - resVal) < 0.00001));
+
+ oObj.setCurrentValue(getObjectValue(maxVal + 1, val.getClass()));
+ log.println("Setting to "+ getObjectValue(maxVal +1 , val.getClass()));
+ resVal = getDoubleValue(oObj.getCurrentValue());
+ log.println("Result max value is " + resVal);
+ partResult = Math.abs(maxVal - resVal) < 0.00001;
+ if (implName.equals(noMax)) {
+ log.println("If one sets the maximum value of a scroll bar with XScrollBar::setMaximum(),"+
+ "then XScrollBar::getValue() returns the maximum value minus the visible size of"+
+ "the thumb");
+ //using arbitrary Value, since we can't determine the resulting value
+ partResult = resVal > 10;
+ }
+
+ result &=partResult;
+ log.println("\t works: "+partResult);
+ } else {
+ int curValBase = getIntegerValue(val);
+ Object valAnotherFromGroup = anotherFromGroup.getCurrentValue();
+ int curValAnother = getIntegerValue(valAnotherFromGroup);
+ log.println("Current value of base component: " + curValBase);
+ log.println("Current value of another component from group: " +
+ curValAnother);
+ log.println("Set value of base component to " + curValAnother);
+ if (tEnv.getTestCase().getObjectName().equals("AccessibleRadioButton")) {
+ anotherFromGroup.setCurrentValue(Integer.valueOf(curValBase));
+ } else {
+ oObj.setCurrentValue(valAnotherFromGroup);
+ }
+ log.println("Checking of values...");
+ int newValBase = getIntegerValue(oObj.getCurrentValue());
+ int newValAnother = getIntegerValue(
+ anotherFromGroup.getCurrentValue());
+ log.println("New value of base component: " + newValBase);
+ log.println("Expected value of base component: " + curValAnother);
+ log.println("New value of another component from group: " +
+ newValAnother);
+ log.println("Expected value of another component from group: " +
+ curValBase);
+
+ result = (newValBase == curValAnother) &&
+ (newValAnother == curValBase);
+ }
+
+ tRes.tested("setCurrentValue()", result);
+ }
+
+ /**
+ * Gets and stores maximal value. <p>
+ *
+ * Has <b> OK </b> status if non empty value returned and
+ * Max value is greater than Min value.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMinimumValue() </code> : to compare with </li>
+ * </ul>
+ */
+ public void _getMaximumValue() {
+ requiredMethod("getMinimumValue()");
+
+ boolean result = true ;
+
+ Object val = oObj.getMaximumValue();
+ if (util.utils.isVoid(val)) {
+ maxVal = Double.MAX_VALUE ;
+ result = false;
+ } else {
+ maxVal = getDoubleValue(val);
+ }
+ log.println("Max is " + val.getClass()+ " = " + maxVal);
+
+ result &= maxVal >= minVal;
+
+ tRes.tested("getMaximumValue()", result) ;
+ }
+
+ /**
+ * Gets and stores minimal value. <p>
+ *
+ * Has <b> OK </b> status if non empty value returned. <p>
+ *
+ */
+ public void _getMinimumValue() {
+ boolean result = true ;
+
+ Object val = oObj.getMinimumValue() ;
+ if (util.utils.isVoid(val)) {
+ minVal = - Double.MAX_VALUE ;
+ result = false;
+ } else {
+ minVal = getDoubleValue(val);
+ }
+ log.println("Min is " + val.getClass()+ " = " + minVal);
+
+ tRes.tested("getMinimumValue()", result) ;
+ }
+
+ private int getIntegerValue(Object val) {
+ if (val instanceof Integer) {
+ return ((Integer) val).intValue();
+ } else {
+ throw new StatusException
+ (Status.failed("Unexpected value type: " + val.getClass()));
+ }
+ }
+
+ private double getDoubleValue(Object val) {
+ if (val instanceof Integer) {
+ return ((Integer) val).doubleValue();
+ }
+ else if (val instanceof Short) {
+ return ((Short) val).doubleValue();
+ }
+ else if (val instanceof Float) {
+ return ((Float) val).doubleValue();
+ }
+ else if (val instanceof Double) {
+ return ((Double) val).doubleValue();
+ }
+ else if (util.utils.isVoid(val)) {
+ return Double.NaN;
+ }
+ else {
+ throw new StatusException
+ (Status.failed("Undetected value type: " + val.getClass()));
+ }
+ }
+
+ private Object getObjectValue(double val, Class<?> clazz) {
+ if (clazz.equals(Integer.class)) {
+ return Integer.valueOf((int)val);
+ }
+ else if (clazz.equals(Short.class)) {
+ return Short.valueOf((short)val);
+ }
+ else if (clazz.equals(Float.class)) {
+ return new Float((float)val);
+ }
+ else if (clazz.equals(Double.class)) {
+ return new Double(val);
+ }
+ else {
+ throw new StatusException
+ (Status.failed("Unexpected class: " + clazz));
+ }
+ }
+
+ /**
+ * Disposes test environment.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlButtonModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlButtonModel.java
new file mode 100644
index 000000000..93d2063d5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlButtonModel.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+
+/*
+* Testing <code>com.sun.star.awt.UnoControlButtonModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> DefaultButton</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Label</code></li>
+* <li><code> Printable</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* @see com.sun.star.awt.UnoControlButtonModel
+*/
+public class _UnoControlButtonModel extends MultiPropertyTest {
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester BoolTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Boolean.TRUE))
+ return Boolean.FALSE;
+ else
+ return Boolean.TRUE;
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _BackgroundColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackgroundColor", ColorTester) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextColor", ColorTester) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("Tabstop", BoolTester) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _PushButtonType() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("PushButtonType",
+ Short.valueOf((short)0), Short.valueOf((short)1));
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlCheckBoxModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlCheckBoxModel.java
new file mode 100644
index 000000000..74906e8bf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlCheckBoxModel.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlCheckBoxModel</code>
+* service properties :
+* <ul>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Label</code></li>
+* <li><code> Printable</code></li>
+* <li><code> State</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> TriState</code></li>
+* </ul>
+* @see com.sun.star.awt.UnoControlCheckBoxModel
+*/
+public class _UnoControlCheckBoxModel extends MultiPropertyTest {
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ if (utils.isVoid(old)) return Boolean.TRUE ;
+ else return null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ if (utils.isVoid(old)) return Integer.valueOf(12345) ;
+ else return null ;
+ }
+ }) ;
+ }
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlComboBoxModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlComboBoxModel.java
new file mode 100644
index 000000000..7e3202eba
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlComboBoxModel.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/*
+* Testing <code>com.sun.star.awt.UnoControlComboBoxModel</code>
+* service properties :
+* <ul>
+* <li><code> Autocomplete</code></li>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Dropdown</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> LineCount</code></li>
+* <li><code> MaxTextLen</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> StringItemList</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> Text</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* @see com.sun.star.awt.UnoControlComboBoxModel
+*/
+public class _UnoControlComboBoxModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ public void _Text() {
+ try {
+ oObj.setPropertyValue("MaxTextLen",Short.valueOf((short)0));
+ } catch (com.sun.star.beans.UnknownPropertyException ue) {
+ } catch (com.sun.star.beans.PropertyVetoException pe) {
+ } catch (com.sun.star.lang.IllegalArgumentException ie) {
+ } catch (com.sun.star.lang.WrappedTargetException we) {
+ }
+ testProperty("Text");
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+
+} //EOF UnoControlComboBoxModel
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlContainerModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlContainerModel.java
new file mode 100644
index 000000000..a57e92986
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlContainerModel.java
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+
+/*
+* Testing <code>com.sun.star.awt.UnoControlButtonModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Printable</code></li>
+* <li><code> Text</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* </ul>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.awt.UnoControlContainerModel
+*/
+public class _UnoControlContainerModel extends MultiPropertyTest {
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _BackgroundColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackgroundColor", ColorTester) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlCurrencyFieldModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlCurrencyFieldModel.java
new file mode 100644
index 000000000..a4daa1315
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlCurrencyFieldModel.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlCurrencyFieldModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> CurrencySymbol</code></li>
+* <li><code> DecimalAccuracy</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> ShowThousandsSeparator</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> Spin</code></li>
+* <li><code> StrictFormat</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> Value</code></li>
+* <li><code> ValueMax</code></li>
+* <li><code> ValueMin</code></li>
+* <li><code> ValueStep</code></li>
+* </ul>
+* @see com.sun.star.awt.UnoControlCurrencyFieldModel
+*/
+public class _UnoControlCurrencyFieldModel extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(6543) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(123) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(123) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Value() {
+ testProperty("Value", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? new Double(777) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlDateFieldModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlDateFieldModel.java
new file mode 100644
index 000000000..e0918f9e9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlDateFieldModel.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/*
+* Testing <code>com.sun.star.awt.UnoControlDateFieldModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> Date</code></li>
+* <li><code> DateMax</code></li>
+* <li><code> DateMin</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> DateFormat</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> Spin</code></li>
+* <li><code> StrictFormat</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlDateFieldModel
+*/
+public class _UnoControlDateFieldModel extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(6543) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Date() {
+ testProperty("Date", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(6543) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(123) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+
+ public void _DateShowCentury() {
+ boolean res = false;
+ try {
+ util.dbg.printPropertyInfo(oObj,"DateShowCentury",log);
+ Object oDsc = oObj.getPropertyValue("DateShowCentury");
+ Boolean dsc = null;
+ if (util.utils.isVoid(oDsc)) {
+ log.println("Property is void, set it to true");
+ dsc = Boolean.TRUE;
+ } else {
+ dsc = (Boolean) oDsc;
+ dsc = Boolean.valueOf(!dsc.booleanValue());
+ log.println("Setting property to "+dsc);
+ }
+ oObj.setPropertyValue("DateShowCentury",dsc);
+ Boolean getdsc = (Boolean) oObj.getPropertyValue("DateShowCentury");
+ log.println("Getting value "+getdsc);
+ res = dsc.equals(getdsc);
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Don't know the Property 'DateShowCentury'");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("WrappedTargetException while getting Property 'DateShowCentury'");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("IllegalArgumentException while getting Property 'DateShowCentury'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("PropertyVetoException while getting Property 'DateShowCentury'");
+ }
+ tRes.tested("DateShowCentury",res);
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlDialogElement.java b/qadevOOo/tests/java/ifc/awt/_UnoControlDialogElement.java
new file mode 100644
index 000000000..b37432138
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlDialogElement.java
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+
+public class _UnoControlDialogElement extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlDialogModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlDialogModel.java
new file mode 100644
index 000000000..e3fbbed11
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlDialogModel.java
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlDialogModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Title</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> Sizeable</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlDialogModel
+*/
+public class _UnoControlDialogModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlEditModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlEditModel.java
new file mode 100644
index 000000000..6d2617ccb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlEditModel.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlEditModel</code>
+* service properties :
+* <ul>
+* <li><code> Align</code></li>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> EchoChar</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> HardLineBreaks</code></li>
+* <li><code> HScroll</code></li>
+* <li><code> MaxTextLen</code></li>
+* <li><code> MultiLine</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> Text</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> VScroll</code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlEditModel
+*/
+public class _UnoControlEditModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlFileControlModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlFileControlModel.java
new file mode 100644
index 000000000..3226f392a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlFileControlModel.java
@@ -0,0 +1,113 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlFileControlModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* <li><code> FontEmphasisMark</code></li>
+* <li><code> FontRelief</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Printable</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> Text</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> TextLineColor</code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlFileControlModel
+*/
+public class _UnoControlFileControlModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlFixedLineModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlFixedLineModel.java
new file mode 100644
index 000000000..bea4e906f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlFixedLineModel.java
@@ -0,0 +1,69 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlFixedLineModel</code>
+* service properties :
+* <ul>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* <li><code> Label</code></li>
+* <li><code> Orientation</code></li>
+* <li><code> Printable</code></li>
+* <li><code> TextColor</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlFixedLineModel
+*/
+public class _UnoControlFixedLineModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlFixedTextModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlFixedTextModel.java
new file mode 100644
index 000000000..3b2ed525f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlFixedTextModel.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlFixedTextModel</code>
+* service properties :
+* <ul>
+* <li><code> Align</code></li>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Label</code></li>
+* <li><code> MultiLine</code></li>
+* <li><code> Printable</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlFixedTextModel
+*/
+public class _UnoControlFixedTextModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlFormattedFieldModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlFormattedFieldModel.java
new file mode 100644
index 000000000..3538eb6af
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlFormattedFieldModel.java
@@ -0,0 +1,254 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlFormattedFieldModel</code>
+* service properties :
+* <ul>
+* <li><code> Align</code></li>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> EffectiveDefault</code></li>
+* <li><code> EffectiveMax</code></li>
+* <li><code> EffectiveMin</code></li>
+* <li><code> EffectiveValue</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> FormatKey</code></li>
+* <li><code> FormatsSupplier</code></li>
+* <li><code> MaxTextLen</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> Spin</code></li>
+* <li><code> StrictFormat</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> Text</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlFormattedFieldModel
+*/
+public class _UnoControlFormattedFieldModel extends MultiPropertyTest {
+
+ /**
+ * Redefined method must return a valid service name, that differs from
+ * name exists.
+ *
+ */
+ protected PropertyTester ControlTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue,
+ "com.sun.star.form.control.FormattedField"))
+ return "com.sun.star.awt.UnoControlFormattedField";
+ else
+ return "com.sun.star.form.control.FormattedField";
+ }
+ };
+
+ /**
+ * This property must contain a valid service name.
+ */
+ public void _DefaultControl() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("DefaultControl", ControlTester) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Integer.valueOf(123) :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Integer.valueOf(123) :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Integer.valueOf(123) :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _EffectiveDefault() {
+ testProperty("EffectiveDefault", new Double(5.8),new Double(2.3)) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _EffectiveValue() {
+ testProperty("EffectiveValue", new Double(5.8),new Double(2.3)) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _EffectiveMax() {
+ testProperty("EffectiveMax", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? new Double(123.8) :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _FormatsSupplier() {
+ testProperty("FormatsSupplier", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ Object newValue = null;
+ try {
+ newValue = tParam.getMSF().createInstance(
+ "com.sun.star.util.NumberFormatsSupplier");
+ } catch (com.sun.star.uno.Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ return newValue;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _EffectiveMin() {
+ testProperty("EffectiveMin", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? new Double(0.1) :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _FormatKey() {
+ testProperty("FormatKey", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Integer.valueOf(0) :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _StrictFromat() {
+ testProperty("StrictFromat", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Boolean.TRUE :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Boolean.TRUE :
+ null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Text() {
+ testProperty("Text", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? "UnoControlFormattedFieldModel" :
+ super.getNewValue(p,v) ;
+ }
+ }) ;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlGroupBoxModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlGroupBoxModel.java
new file mode 100644
index 000000000..0b4899d8b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlGroupBoxModel.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlGroupBoxModel</code>
+* service properties :
+* <ul>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Label</code></li>
+* <li><code> Printable</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlGroupBoxModel
+*/
+public class _UnoControlGroupBoxModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) :
+ super.getNewValue(p, old) ;
+ }
+ }) ;
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlImageControlModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlImageControlModel.java
new file mode 100644
index 000000000..8b58c6284
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlImageControlModel.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlImageControlModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor </code></li>
+* <li><code> Border </code></li>
+* <li><code> DefaultControl </code></li>
+* <li><code> Enabled </code></li>
+* <li><code> ImageURL </code></li>
+* <li><code> Printable </code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlImageControlModel
+*/
+public class _UnoControlImageControlModel extends MultiPropertyTest {
+
+ /**
+ * Custom <code>PropertyTester</code> used in <code>ImageURL</code> test.
+ */
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg")))
+ return util.utils.getFullTestURL("crazy-blue.jpg");
+ else
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ } ;
+
+ /**
+ * Test changes one image URL onto another.
+ */
+ public void _ImageURL() {
+ testProperty("ImageURL", URLTester) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ return utils.isVoid(oldValue) ? Integer.valueOf(8945) :
+ super.getNewValue(propName, oldValue) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object v) {
+ return utils.isVoid(v) ? Boolean.TRUE :
+ null ;
+ }
+ }) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlListBoxModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlListBoxModel.java
new file mode 100644
index 000000000..4c9b682f1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlListBoxModel.java
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlListBoxModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Dropdown</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> LineCount</code></li>
+* <li><code> MultiSelection</code></li>
+* <li><code> Printable</code></li>
+* <li><code> SelectedItems</code></li>
+* <li><code> StringItemList</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* Almost all properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlListBoxModel
+*/
+public class _UnoControlListBoxModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlModel.java
new file mode 100644
index 000000000..3ce601dd4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlModel.java
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+
+public class _UnoControlModel extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlNumericFieldModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlNumericFieldModel.java
new file mode 100644
index 000000000..218696664
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlNumericFieldModel.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlNumericFieldModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DecimalAccuracy</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> ShowThousandsSeparator</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> Spin</code></li>
+* <li><code> StrictFormat</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> Value</code></li>
+* <li><code> ValueMax</code></li>
+* <li><code> ValueMin</code></li>
+* <li><code> ValueStep</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlNumericFieldModel
+*/
+public class _UnoControlNumericFieldModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Value() {
+ testProperty("Value", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? new Double(234.89) :
+ super.getNewValue(p, old) ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlPatternFieldModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlPatternFieldModel.java
new file mode 100644
index 000000000..cd1814f30
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlPatternFieldModel.java
@@ -0,0 +1,112 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlPatternFieldModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> EditMask</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> LiteralMask</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> StrictFormat</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> Text</code></li>
+* <li><code> TextColor</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlPatternFieldModel
+*/
+public class _UnoControlPatternFieldModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlProgressBarModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlProgressBarModel.java
new file mode 100644
index 000000000..9e998c854
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlProgressBarModel.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlProgressBarModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FillColor</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ProgressValue</code></li>
+* <li><code> ProgressValueMax</code></li>
+* <li><code> ProgressValueMin</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlProgressBarModel
+*/
+public class _UnoControlProgressBarModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _FillColor() {
+ testProperty("FillColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _ProgressValue() {
+ testProperty("ProgressValue", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(10) : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlRadioButtonModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlRadioButtonModel.java
new file mode 100644
index 000000000..373c2f603
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlRadioButtonModel.java
@@ -0,0 +1,103 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlRadioButtonModel</code>
+* service properties :
+* <ul>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Label</code></li>
+* <li><code> Printable</code></li>
+* <li><code> State</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlRadioButtonModel
+*/
+public class _UnoControlRadioButtonModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester ColorTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
+ return Integer.valueOf(25);
+ else
+ return Integer.valueOf(17);
+ }
+ };
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextLineColor() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextLineColor", ColorTester) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlScrollBarModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlScrollBarModel.java
new file mode 100644
index 000000000..cc083692f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlScrollBarModel.java
@@ -0,0 +1,111 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlScrollBarModel</code>
+* service properties :
+* <ul>
+* <li><code> BlockIncrement</code></li>
+* <li><code> Border</code></li>
+* <li><code> DefaultControl</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* <li><code> LineIncrement</code></li>
+* <li><code> Orientation</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ScrollValue</code></li>
+* <li><code> ScrollValueMax</code></li>
+* <li><code> VisibleSize</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlScrollBarModel
+*/
+public class _UnoControlScrollBarModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(32768) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _SymbolColor() {
+ testProperty("SymbolColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(65324) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _ScrollValue() {
+ testProperty("ScrollValue", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(10) : Integer.valueOf(15) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _VisibleSize() {
+ testProperty("VisibleSize", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(10) : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlSpinButtonModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlSpinButtonModel.java
new file mode 100644
index 000000000..2aa70a45c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlSpinButtonModel.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+public class _UnoControlSpinButtonModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(32768) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _SymbolColor() {
+ testProperty("SymbolColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(65324) : null ;
+ }
+ }) ;
+ }
+
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/awt/_UnoControlTimeFieldModel.java b/qadevOOo/tests/java/ifc/awt/_UnoControlTimeFieldModel.java
new file mode 100644
index 000000000..fcc6b7246
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_UnoControlTimeFieldModel.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+
+/**
+* Testing <code>com.sun.star.awt.UnoControlTimeFieldModel</code>
+* service properties :
+* <ul>
+* <li><code> BackgroundColor</code></li>
+* <li><code> Border</code></li>
+* <li><code> HelpText</code></li>
+* <li><code> HelpURL</code></li>
+* <li><code> FontEmphasisMark</code></li>
+* <li><code> FontRelief</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> TimeFormat</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> Printable</code></li>
+* <li><code> ReadOnly</code></li>
+* <li><code> Spin</code></li>
+* <li><code> StrictFormat</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* <li><code> TextLineColor</code></li>
+* <li><code> Time</code></li>
+* <li><code> TimeFormat</code></li>
+* <li><code> TimeMax</code></li>
+* <li><code> TimeMin</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.awt.UnoControlTimeFieldModel
+*/
+public class _UnoControlTimeFieldModel extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BackgroundColor() {
+ testProperty("BackgroundColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) : null ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Time() {
+ testProperty("Time", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) :
+ super.getNewValue(p, old) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Boolean.TRUE : null ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XButton.java b/qadevOOo/tests/java/ifc/awt/_XButton.java
new file mode 100644
index 000000000..4cd436481
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XButton.java
@@ -0,0 +1,103 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XButton;
+
+/**
+* Testing <code>com.sun.star.awt.XButton</code>
+* interface methods :
+* <ul>
+* <li><code> addActionListener()</code></li>
+* <li><code> removeActionListener()</code></li>
+* <li><code> setLabel()</code></li>
+* <li><code> setActionCommand()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XButton
+*/
+public class _XButton extends MultiMethodTest {
+
+ public XButton oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestActionListener implements com.sun.star.awt.XActionListener {
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ }
+
+ public void actionPerformed(com.sun.star.awt.ActionEvent e) {}
+ }
+
+ TestActionListener listener = new TestActionListener() ;
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addActionListener() {
+
+ boolean result = true ;
+ oObj.addActionListener(listener) ;
+
+ tRes.tested("addActionListener()", result) ;
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeActionListener() {
+
+ boolean result = true ;
+ oObj.removeActionListener(listener) ;
+
+ tRes.tested("removeActionListener()", result) ;
+ }
+
+ /**
+ * Just sets some text for label. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _setLabel() {
+
+ boolean result = true ;
+ oObj.setLabel("XButton Label") ;
+
+ tRes.tested("setLabel()", result) ;
+ }
+
+ /**
+ * Just sets some command for button. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _setActionCommand() {
+
+ boolean result = true ;
+ oObj.setActionCommand("XButtonCommand") ;
+
+ tRes.tested("setActionCommand()", result) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XCheckBox.java b/qadevOOo/tests/java/ifc/awt/_XCheckBox.java
new file mode 100644
index 000000000..06073680e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XCheckBox.java
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XCheckBox;
+
+/**
+* Testing <code>com.sun.star.awt.XCheckBox</code>
+* interface methods :
+* <ul>
+* <li><code> addItemListener()</code></li>
+* <li><code> removeItemListener()</code></li>
+* <li><code> getState()</code></li>
+* <li><code> setState()</code></li>
+* <li><code> setLabel()</code></li>
+* <li><code> enableTriState()</code></li>
+* </ul> <p>
+*
+* @see com.sun.star.awt.XCheckBox
+*/
+public class _XCheckBox extends MultiMethodTest {
+
+ public XCheckBox oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestItemListener implements com.sun.star.awt.XItemListener {
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ }
+
+ public void itemStateChanged(com.sun.star.awt.ItemEvent e) {}
+ }
+ TestItemListener listener = new TestItemListener() ;
+ short state = -1 ;
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addItemListener() {
+
+ boolean result = true ;
+ oObj.addItemListener(listener) ;
+ tRes.tested("addItemListener()", result) ;
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeItemListener() {
+
+ boolean result = true ;
+ oObj.removeItemListener(listener) ;
+
+ tRes.tested("removeItemListener()", result) ;
+ }
+
+ /**
+ * Just retrieves current state and stores it. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurs.
+ */
+ public void _getState() {
+
+ boolean result = true ;
+ state = oObj.getState() ;
+
+ tRes.tested("getState()", result) ;
+ }
+
+ /**
+ * Sets a new value and then checks get value. <p>
+ * Has <b>OK</b> status if set and get values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getState </code> </li>
+ * </ul>
+ */
+ public void _setState() {
+ requiredMethod("getState()") ;
+
+ boolean result = true ;
+ short newState = state == 0 ? (short)1 : (short)0 ;
+ oObj.setState(newState) ;
+ result = newState == oObj.getState() ;
+
+ tRes.tested("setState()", result) ;
+ }
+
+ /**
+ * Just sets some text for label. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurs.
+ */
+ public void _setLabel() {
+
+ boolean result = true ;
+ oObj.setLabel("XCheckBox test") ;
+
+ tRes.tested("setLabel()", result) ;
+ }
+
+ /**
+ * Just enables tristate. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurs.
+ */
+ public void _enableTriState() {
+
+ boolean result = true ;
+ oObj.enableTriState(true) ;
+
+ tRes.tested("enableTriState()", result) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XComboBox.java b/qadevOOo/tests/java/ifc/awt/_XComboBox.java
new file mode 100644
index 000000000..37bf4e324
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XComboBox.java
@@ -0,0 +1,262 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.awt.XComboBox;
+
+/**
+* Testing <code>com.sun.star.awt.XComboBox</code>
+* interface methods :
+* <ul>
+* <li><code> addItemListener()</code></li>
+* <li><code> removeItemListener()</code></li>
+* <li><code> addActionListener()</code></li>
+* <li><code> removeActionListener()</code></li>
+* <li><code> addItem()</code></li>
+* <li><code> addItems()</code></li>
+* <li><code> removeItems()</code></li>
+* <li><code> getItemCount()</code></li>
+* <li><code> getItem()</code></li>
+* <li><code> getItems()</code></li>
+* <li><code> getDropDownLineCount()</code></li>
+* <li><code> setDropDownLineCount()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XComboBox
+*/
+public class _XComboBox extends MultiMethodTest {
+
+ public XComboBox oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestActionListener
+ implements com.sun.star.awt.XActionListener {
+
+ public void disposing(com.sun.star.lang.EventObject e) {}
+
+ public void actionPerformed(com.sun.star.awt.ActionEvent e) {}
+ }
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestItemListener
+ implements com.sun.star.awt.XItemListener {
+
+ public void disposing(com.sun.star.lang.EventObject e) {}
+
+ public void itemStateChanged(com.sun.star.awt.ItemEvent e) {}
+ }
+ private final TestActionListener actionListener = new TestActionListener();
+ private final TestItemListener itemListener = new TestItemListener();
+ short lineCount = 0;
+ short itemCount = 0;
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addItemListener() {
+
+ oObj.addItemListener(itemListener);
+
+ tRes.tested("addItemListener()", Status.skipped(true));
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeItemListener() {
+ requiredMethod("addItemListener()");
+
+ oObj.removeItemListener(itemListener);
+
+ tRes.tested("removeItemListener()", Status.skipped(true));
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addActionListener() {
+
+ oObj.addActionListener(actionListener);
+
+ tRes.tested("addActionListener()", Status.skipped(true));
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeActionListener() {
+ requiredMethod("addActionListener()");
+
+ oObj.removeActionListener(actionListener);
+
+ tRes.tested("removeActionListener()", Status.skipped(true));
+ }
+
+ /**
+ * Adds one item to the last position and check the number of
+ * items after addition. <p>
+ * Has <b>OK</b> status if the number of items increased by 1.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getItemCount </code> </li>
+ * </ul>
+ */
+ public void _addItem() {
+ requiredMethod("getItemCount()");
+
+ boolean result = true;
+ oObj.addItem("Item1", itemCount);
+ result = oObj.getItemCount() == itemCount + 1;
+
+ tRes.tested("addItem()", result);
+ }
+
+ /**
+ * Adds one two items to the last position and check the number of
+ * items after addition. <p>
+ * Has <b>OK</b> status if the number of items increased by 2.<p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> addItem </code> </li>
+ * </ul>
+ */
+ public void _addItems() {
+ executeMethod("addItem()");
+
+ boolean result = true;
+ short oldCnt = oObj.getItemCount();
+ oObj.addItems(new String[] { "Item2", "Item3" }, oldCnt);
+ result = oObj.getItemCount() == oldCnt + 2;
+
+ tRes.tested("addItems()", result);
+ }
+
+ /**
+ * Gets the current number of items and tries to remove them all
+ * then checks number of items. <p>
+ * Has <b>OK</b> status if no items remains. <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getItems </code> </li>
+ * <li> <code> getItem </code> </li>
+ * </ul>
+ */
+ public void _removeItems() {
+ executeMethod("getItems()");
+ executeMethod("getItem()");
+
+ boolean result = true;
+ short oldCnt = oObj.getItemCount();
+ oObj.removeItems((short) 0, oldCnt);
+ result = oObj.getItemCount() == 0;
+
+ tRes.tested("removeItems()", result);
+ }
+
+ /**
+ * Just retrieves current number of items and stores it. <p>
+ * Has <b>OK</b> status if the count is not less than 0.
+ */
+ public void _getItemCount() {
+
+ itemCount = oObj.getItemCount();
+
+ tRes.tested("getItemCount()", itemCount >= 0);
+ }
+
+ /**
+ * After <code>addItem</code> and <code>addItems</code> methods
+ * test the following items must exist {..., "Item1", "Item2", "Item3"}
+ * Retrieves the item from the position which was ititially the last.<p>
+ * Has <b>OK</b> status if the "Item1" was retrieved. <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> addItems </code> </li>
+ * </ul>
+ */
+ public void _getItem() {
+ requiredMethod("addItems()");
+
+ boolean result = true;
+ String item = oObj.getItem(itemCount);
+ result = "Item1".equals(item);
+
+ tRes.tested("getItem()", result);
+ }
+
+ /**
+ * After <code>addItem</code> and <code>addItems</code> methods
+ * test the following items must exist {..., "Item1", "Item2", "Item3"}
+ * Retrieves all items. <p>
+ * Has <b>OK</b> status if the last three items retrieved are
+ * "Item1", "Item2" and "Item3". <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> addItems </code> </li>
+ * </ul>
+ */
+ public void _getItems() {
+ requiredMethod("addItems()");
+
+ boolean result = true;
+ String[] items = oObj.getItems();
+ for (int i = itemCount; i < (itemCount + 3); i++) {
+ result &= ("Item" + (i + 1)).equals(items[i]);
+ }
+
+ tRes.tested("getItems()", result);
+ }
+
+ /**
+ * Gets line count and stores it. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getDropDownLineCount() {
+
+ boolean result = true;
+ lineCount = oObj.getDropDownLineCount();
+
+ tRes.tested("getDropDownLineCount()", result);
+ }
+
+ /**
+ * Sets a new value and then checks get value. <p>
+ * Has <b>OK</b> status if set and get values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getDropDownLineCount </code> </li>
+ * </ul>
+ */
+ public void _setDropDownLineCount() {
+ requiredMethod("getDropDownLineCount()");
+
+ boolean result = true;
+ oObj.setDropDownLineCount((short) (lineCount + 1));
+ result = oObj.getDropDownLineCount() == lineCount + 1;
+
+ tRes.tested("setDropDownLineCount()", result);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XControl.java b/qadevOOo/tests/java/ifc/awt/_XControl.java
new file mode 100644
index 000000000..ffb9bcbaa
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XControl.java
@@ -0,0 +1,213 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XView;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.awt.XControl</code>
+* interface methods:
+* <ul>
+* <li><code> setContext() </code></li>
+* <li><code> getContext() </code></li>
+* <li><code> createPeer() </code></li>
+* <li><code> getPeer() </code></li>
+* <li><code> setModel() </code></li>
+* <li><code> getModel() </code></li>
+* <li><code> setDesignMode() </code></li>
+* <li><code> isDesignMode() </code></li>
+* <li><code> isTransparent() </code></li>
+* <li><code> getView() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CONTEXT'</code> (of type <code>XInterface</code>):
+* used as a parameter to setContext() and for testing getContext().</li>
+* <li> <code>'WINPEER'</code> (of type <code>XWindowPeer</code>):
+* used as a parameter to createPeer() and for testing getPeer()</li>
+* <li> <code>'TOOLKIT'</code> (of type <code>XToolkit</code>):
+* used as a parameter to createPeer()</li>
+* <li> <code>'MODEL'</code> (of type <code>XControlModel</code>):
+* used as a parameter to setModel() and for testing getModel()</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XControl
+*/
+public class _XControl extends MultiMethodTest {
+ public XControl oObj = null;
+ public XControlModel aModel = null;
+ public boolean desMode;
+
+ /**
+ * After test calls the method, the Context is set to a corresponding
+ * object relation.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _setContext() {
+ XInterface cont = (XInterface) tEnv.getObjRelation("CONTEXT");
+ oObj.setContext(cont);
+ tRes.tested("setContext()",true);
+ }
+
+ /**
+ * After test calls the method, the Context is gotten and compared
+ * with object relation 'CONTEXT'.<p>
+ * Has <b> OK </b> status if get value is equals to value set before.<p>
+ * The following method tests are to be completed successfully before:
+ * <ul>
+ * <li> <code> setContext() </code> : set Context to a corresponding
+ * object relation</li>
+ * </ul>
+ */
+ public void _getContext() {
+ requiredMethod("setContext()");
+ XInterface cont = (XInterface) tEnv.getObjRelation("CONTEXT");
+ Object get = oObj.getContext();
+ boolean res = get.equals(cont);
+ if (!res) {
+ log.println("!!! Error: getting: "+get.toString());
+ log.println("!!! expected: "+cont.toString());
+ }
+ tRes.tested("getContext()",res);
+ }
+
+
+ /**
+ * The objects needed to create peer are obtained
+ * from corresponding object relations, then the peer is created.
+ * <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _createPeer() {
+ XWindowPeer the_win = (XWindowPeer) tEnv.getObjRelation("WINPEER");
+ XToolkit the_kit = (XToolkit) tEnv.getObjRelation("TOOLKIT");
+ oObj.createPeer(the_kit,the_win);
+ tRes.tested("createPeer()",true);
+ }
+
+ /*
+ * Test calls the method. Then the object relation 'WINPEER' is
+ * obtained, and compared with the peer, gotten from (XControl) oObj
+ * variable.<p>
+ * Has <b> OK </b> status if peer gotten isn't null
+ * The following method tests are to be completed successfully before:
+ */
+ public void _getPeer() {
+ requiredMethod("createPeer()");
+ boolean res = false;
+ XWindowPeer get = oObj.getPeer();
+ if (get == null) {
+ log.println("The method 'getPeer' returns NULL");
+ } else {
+ res = true;
+ }
+ tRes.tested("getPeer()",res);
+ }
+
+
+ /**
+ * At first current model is obtained and saved to variable aModel.
+ * Then object relation 'MODEL' is gotten and test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setModel() {
+ aModel = oObj.getModel();
+ XControlModel the_model = (XControlModel) tEnv.getObjRelation("MODEL");
+ oObj.setModel(the_model);
+ tRes.tested("setModel()",true);
+ }
+
+ /**
+ * Test calls the method, then object relation 'MODEL' is gotten and
+ * compared with object returned by the method. Then previously saved
+ * value of model (aModel) restored to (XControl) oObj<p>
+ * Has <b> OK </b> status if models set and get are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setModel() </code> : setting model from corresponding
+ * object relation </li>
+ * </ul>
+ */
+ public void _getModel() {
+ requiredMethod("setModel()");
+ XControlModel the_model = (XControlModel) tEnv.getObjRelation("MODEL");
+ XControlModel get = oObj.getModel();
+ boolean res = get.equals(the_model);
+ if (!res) {
+ log.println("getting: "+get.toString());
+ log.println("expected: "+the_model.toString());
+ }
+ if (aModel != null) {
+ oObj.setModel(aModel);
+ }
+ tRes.tested("getModel()",res);
+ }
+
+ /**
+ * Test calls the method. Then mode is checked using isDesignMode().<p>
+ * Has <b> OK </b> status if mode is switched.
+ */
+ public void _setDesignMode() {
+ desMode = oObj.isDesignMode();
+ oObj.setDesignMode(!desMode);
+ tRes.tested("setDesignMode()",oObj.isDesignMode() == !desMode);
+ }
+
+ /**
+ * The mode is changed and result is checked.<p>
+ * Has <b> OK </b> status if the mode changed successfully.
+ */
+ public void _isDesignMode() {
+ requiredMethod("setDesignMode()");
+ oObj.setDesignMode(desMode);
+ tRes.tested("isDesignMode()", oObj.isDesignMode() == desMode);
+ }
+
+ /**
+ * Test calls the method.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _isTransparent() {
+ oObj.isTransparent();
+ tRes.tested("isTransparent()",true );
+ }
+
+ /**
+ * Test calls the method.<p>
+ * Has <b> OK </b> status if the method returns not null. <p>
+ */
+ public void _getView() {
+ XView the_view = oObj.getView();
+ tRes.tested("getView()", the_view != null);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XControlContainer.java b/qadevOOo/tests/java/ifc/awt/_XControlContainer.java
new file mode 100644
index 000000000..0c7e63620
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XControlContainer.java
@@ -0,0 +1,133 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+
+/**
+* Testing <code>com.sun.star.awt.XControlContainer</code>
+* interface methods:
+* <ul>
+* <li><code> setStatusText() </code></li>
+* <li><code> addControl() </code></li>
+* <li><code> removeControl() </code></li>
+* <li><code> getControl() </code></li>
+* <li><code> getControls() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CONTROL1'</code> (of type <code>XControl</code>):
+* used as a parameter to addControl(), getControl() and removeControl()</li>
+* <li> <code>'CONTROL2'</code> (of type <code>XControl</code>):
+* used as a parameter to addControl(), getControl() and removeControl()</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XControlContainer
+*/
+public class _XControlContainer extends MultiMethodTest {
+ public XControlContainer oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setStatusText() {
+ oObj.setStatusText("testing XControlContainer::setStatusText(String)");
+ tRes.tested("setStatusText()",true);
+ }
+
+ /**
+ * Test calls the method twice - two controls gotten from object relations
+ * 'CONTROL1' and 'CONTROL2' added to container.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _addControl() {
+ oObj.addControl("CONTROL1", (XControl)tEnv.getObjRelation("CONTROL1"));
+ oObj.addControl("CONTROL2", (XControl)tEnv.getObjRelation("CONTROL2"));
+ tRes.tested("addControl()",true);
+ }
+
+ /**
+ * Test calls the method with object relation 'CONTROL1' as a
+ * parameter. Then control gotten from container is checked, and if returned
+ * value is null then another control 'CONTROL2' is removed from container,
+ * otherwise returned value of method test is 'false'.<p>
+ * Has <b> OK </b> status if control is removed successfully.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addControl() </code> : adds control to a container </li>
+ * <li> <code> getControl() </code> : gets control from container </li>
+ * <li> <code> getControls() </code> : gets controls from container</li>
+ * </ul>
+ */
+ public void _removeControl() {
+ boolean result = true;
+
+ requiredMethod("addControl()");
+ requiredMethod("getControl()");
+ requiredMethod("getControls()");
+ oObj.removeControl( (XControl) tEnv.getObjRelation("CONTROL1") );
+ XControl ctrl = oObj.getControl("CONTROL1");
+ if (ctrl != null) {
+ result = false;
+ log.println("'removeControl()' fails; Control still exists");
+ } else {
+ oObj.removeControl( (XControl) tEnv.getObjRelation("CONTROL2") );
+ }
+ tRes.tested("removeControl()", result);
+ }
+
+ /**
+ * Test calls the method with 'CONTROL1' as a parameter, then we just
+ * compare returned object and object relation 'CONTROL1'.<p>
+ * Has <b> OK </b> status if value returned by the method is equal to
+ * a corresponding object relation.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addControl() </code> : adds control to a container </li>
+ * </ul>
+ */
+ public void _getControl() {
+ requiredMethod("addControl()");
+ XControl xCtrlComp = oObj.getControl("CONTROL1");
+ XControl xCl = (XControl) tEnv.getObjRelation("CONTROL1");
+ tRes.tested("getControl()", xCtrlComp.equals(xCl));
+ }
+
+ /**
+ * Test calls the method, then returned value is checked.<p>
+ * Has <b> OK </b> status if returned array consists of at least two
+ * elements.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addControl() </code> : adds control to a container </li>
+ * </ul>
+ */
+ public void _getControls() {
+ requiredMethod("addControl()");
+ XControl[] xCtrls = oObj.getControls();
+ tRes.tested("getControls()",xCtrls.length >= 2);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XCurrencyField.java b/qadevOOo/tests/java/ifc/awt/_XCurrencyField.java
new file mode 100644
index 000000000..beb74889d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XCurrencyField.java
@@ -0,0 +1,307 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XCurrencyField;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.XCurrencyField</code>
+* interface methods :
+* <ul>
+* <li><code> setValue()</code></li>
+* <li><code> getValue()</code></li>
+* <li><code> setMin()</code></li>
+* <li><code> getMin()</code></li>
+* <li><code> setMax()</code></li>
+* <li><code> getMax()</code></li>
+* <li><code> setFirst()</code></li>
+* <li><code> getFirst()</code></li>
+* <li><code> setLast()</code></li>
+* <li><code> getLast()</code></li>
+* <li><code> setSpinSize()</code></li>
+* <li><code> getSpinSize()</code></li>
+* <li><code> setDecimalDigits()</code></li>
+* <li><code> getDecimalDigits()</code></li>
+* <li><code> setStrictFormat()</code></li>
+* <li><code> isStrictFormat()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XCurrencyField
+*/
+public class _XCurrencyField extends MultiMethodTest {
+
+ public XCurrencyField oObj = null;
+ private double val = 0;
+ private double min = 0;
+ private double max = 0;
+ private double first = 0;
+ private double last = 0;
+ private double spin = 0;
+ private short digits = 0;
+ private boolean strict = true;
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getValue </code> </li>
+ * </ul>
+ */
+ public void _setValue() {
+ requiredMethod("getValue()");
+
+ double value = val + 1.1;
+ oObj.setValue(value);
+ double ret = oObj.getValue();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setValue()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getValue() {
+ val = oObj.getValue();
+
+ tRes.tested("getValue()", true);
+ }
+
+ /**
+ * Sets minimal value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMin </code> </li>
+ * </ul>
+ */
+ public void _setMin() {
+ requiredMethod("getMin()");
+
+ double value = min + 1.1;
+ oObj.setMin(value);
+ double ret = oObj.getMin();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setMin()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getMin() {
+
+ boolean result = true;
+ min = oObj.getMin();
+
+ tRes.tested("getMin()", result);
+ }
+
+ /**
+ * Sets maximal value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMax </code> </li>
+ * </ul>
+ */
+ public void _setMax() {
+ requiredMethod("getMax()");
+
+ double value = max + 1.1;
+ oObj.setMax(value);
+ double ret = oObj.getMax();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setMax()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getMax() {
+
+ boolean result = true;
+ max = oObj.getMax();
+
+ tRes.tested("getMax()", result);
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getFirst </code> </li>
+ * </ul>
+ */
+ public void _setFirst() {
+ requiredMethod("getFirst()");
+
+ double value = first + 1.1;
+ oObj.setFirst(value);
+ double ret = oObj.getFirst();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setFirst()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getFirst() {
+
+ boolean result = true;
+ first = oObj.getFirst();
+
+ tRes.tested("getFirst()", result);
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLast </code> </li>
+ * </ul>
+ */
+ public void _setLast() {
+ requiredMethod("getLast()");
+
+ double value = last + 1.1;
+ oObj.setLast(value);
+ double ret = oObj.getLast();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setLast()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getLast() {
+
+ boolean result = true;
+ last = oObj.getLast();
+
+ tRes.tested("getLast()", result);
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSpinSize </code> </li>
+ * </ul>
+ */
+ public void _setSpinSize() {
+ requiredMethod("getSpinSize()");
+
+ double value = spin + 1.1;
+ oObj.setSpinSize(value);
+ double ret = oObj.getSpinSize();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setSpinSize()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getSpinSize() {
+
+ boolean result = true;
+ spin = oObj.getSpinSize();
+
+ tRes.tested("getSpinSize()", result);
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getDecimalDigits </code> </li>
+ * </ul>
+ */
+ public void _setDecimalDigits() {
+ requiredMethod("getDecimalDigits()");
+
+ boolean result = true;
+ oObj.setDecimalDigits((short) (digits + 1));
+
+ short res = oObj.getDecimalDigits();
+ result = res == (digits + 1);
+
+ tRes.tested("setDecimalDigits()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getDecimalDigits() {
+
+ boolean result = true;
+ digits = oObj.getDecimalDigits();
+
+ tRes.tested("getDecimalDigits()", result);
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isStrictFormat </code> </li>
+ * </ul>
+ */
+ public void _setStrictFormat() {
+ requiredMethod("isStrictFormat()");
+
+ boolean result = true;
+ oObj.setStrictFormat(!strict);
+ result = oObj.isStrictFormat() == !strict;
+
+ tRes.tested("setStrictFormat()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _isStrictFormat() {
+
+ boolean result = true;
+ strict = oObj.isStrictFormat();
+
+ tRes.tested("isStrictFormat()", result);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XDataTransferProviderAccess.java b/qadevOOo/tests/java/ifc/awt/_XDataTransferProviderAccess.java
new file mode 100644
index 000000000..54c273a70
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XDataTransferProviderAccess.java
@@ -0,0 +1,127 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.awt.XDataTransferProviderAccess;
+import com.sun.star.awt.XWindow;
+import com.sun.star.datatransfer.clipboard.XClipboard;
+import com.sun.star.datatransfer.dnd.XDragGestureRecognizer;
+import com.sun.star.datatransfer.dnd.XDragSource;
+import com.sun.star.datatransfer.dnd.XDropTarget;
+
+/**
+* Testing <code>com.sun.star.awt.XDataTransferProviderAccess</code>
+* interface methods :
+* <ul>
+* <li><code> getDragGestureRecognizer()</code></li>
+* <li><code> getDragSource()</code></li>
+* <li><code> getDropTarget()</code></li>
+* <li><code> getClipboard()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XDataTransferProviderAccess.XWindow'</code>
+* (of type <code>com.sun.star.awt.XWindow</code>):
+* this window must created by the Toolkit tested. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XDataTransferProviderAccess
+*/
+public class _XDataTransferProviderAccess extends MultiMethodTest {
+
+ public XDataTransferProviderAccess oObj = null;
+ protected XWindow win = null ;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ win = (XWindow) tEnv.getObjRelation
+ ("XDataTransferProviderAccess.XWindow") ;
+ if (win == null) throw new StatusException(Status.failed
+ ("Relation not found")) ;
+ }
+
+ /**
+ * Tries to get gesture recognizer for the window passed as
+ * relation. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned
+ */
+ public void _getDragGestureRecognizer() {
+
+ boolean result = true ;
+ XDragGestureRecognizer rec = oObj.getDragGestureRecognizer(win) ;
+
+ result = rec != null ;
+
+ tRes.tested("getDragGestureRecognizer()", result) ;
+ }
+
+ /**
+ * Tries to get drag source for the window passed as
+ * relation. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned
+ */
+ public void _getDragSource() {
+
+ boolean result = true ;
+ XDragSource src = oObj.getDragSource(win) ;
+
+ result = src != null ;
+
+ tRes.tested("getDragSource()", result) ;
+ }
+
+ /**
+ * Tries to get drop target for the window passed as
+ * relation. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned
+ */
+ public void _getDropTarget() {
+
+ boolean result = true ;
+ XDropTarget targ = oObj.getDropTarget(win) ;
+
+ result = targ != null ;
+
+ tRes.tested("getDropTarget()", result) ;
+ }
+
+ /**
+ * Tries to obtain default clipboard.<p>
+ * Has <b> OK </b> status if not <code>null</code> value returned.
+ */
+ public void _getClipboard() {
+
+ boolean result = true ;
+ XClipboard cb = oObj.getClipboard("") ;
+
+ result = cb != null ;
+
+ tRes.tested("getClipboard()", result) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XDateField.java b/qadevOOo/tests/java/ifc/awt/_XDateField.java
new file mode 100644
index 000000000..c70d34ab1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XDateField.java
@@ -0,0 +1,332 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XDateField;
+import com.sun.star.util.Date;
+
+/**
+* Testing <code>com.sun.star.awt.XDateField</code>
+* interface methods :
+* <ul>
+* <li><code> setDate()</code></li>
+* <li><code> getDate()</code></li>
+* <li><code> setMin()</code></li>
+* <li><code> getMin()</code></li>
+* <li><code> setMax()</code></li>
+* <li><code> getMax()</code></li>
+* <li><code> setFirst()</code></li>
+* <li><code> getFirst()</code></li>
+* <li><code> setLast()</code></li>
+* <li><code> getLast()</code></li>
+* <li><code> setLongFormat()</code></li>
+* <li><code> isLongFormat()</code></li>
+* <li><code> setEmpty()</code></li>
+* <li><code> isEmpty()</code></li>
+* <li><code> setStrictFormat()</code></li>
+* <li><code> isStrictFormat()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XDateField
+*/
+public class _XDateField extends MultiMethodTest {
+
+ public XDateField oObj = null;
+
+ private boolean strict = false ;
+ private boolean longFormat = false ;
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getTime </code> </li>
+ * </ul>
+ */
+ public void _setDate() {
+ requiredMethod("getDate()") ;
+
+ boolean result = true ;
+ oObj.setDate(new Date((short)1, (short)1, (short)1900)) ;
+ Date date = oObj.getDate();
+ result = date.Day == 1 && date.Month == 1 && date.Year == 1900;
+
+ if (! result ) {
+ System.out.println("getDate: " + oObj.getDate() + " , expected 1900-01-01");
+ }
+
+ tRes.tested("setDate()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getDate() {
+
+ boolean result = true ;
+ oObj.getDate() ;
+
+ tRes.tested("getDate()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMin </code> </li>
+ * </ul>
+ */
+ public void _setMin() {
+
+ boolean result = true ;
+ oObj.setMin(new Date((short)5, (short)2, (short)1963));
+ Date date = oObj.getMin();
+ result = date.Day == 5 && date.Month == 2 && date.Year == 1963;
+
+ tRes.tested("setMin()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getMin() {
+
+ boolean result = true ;
+ oObj.getMin() ;
+
+ tRes.tested("getMin()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMax </code> </li>
+ * </ul>
+ */
+ public void _setMax() {
+
+ boolean result = true ;
+ oObj.setMax(new Date((short)18, (short)9, (short)2117)) ;
+ Date date = oObj.getMax();
+ result = date.Day == 18 && date.Month == 9 && date.Year == 2117;
+
+ tRes.tested("setMax()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getMax() {
+
+ boolean result = true ;
+ oObj.getMax() ;
+
+ tRes.tested("getMax()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getFirst </code> </li>
+ * </ul>
+ */
+ public void _setFirst() {
+
+ boolean result = true ;
+ oObj.setFirst(new Date((short)7, (short)12, (short)1972)) ;
+ Date date = oObj.getFirst();
+ result = date.Day == 7 && date.Month == 12 && date.Year == 1972;
+
+ if (!result) {
+ log.println("Set to " + 5118 + " but returned " + oObj.getFirst()) ;
+ }
+
+ tRes.tested("setFirst()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getFirst() {
+
+ boolean result = true ;
+ com.sun.star.util.Date val = oObj.getFirst() ;
+
+ log.println("getFirst() = " + val) ;
+
+ tRes.tested("getFirst()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLast </code> </li>
+ * </ul>
+ */
+ public void _setLast() {
+
+ boolean result = true ;
+ oObj.setLast(new Date((short)23, (short)8, (short)2053)) ;
+ Date date = oObj.getLast();
+ result = date.Day == 23 && date.Month == 8 && date.Year == 2053;
+
+ if (!result) {
+ log.println("Set to 2053-08-23 but returned " + oObj.getLast()) ;
+ }
+
+ tRes.tested("setLast()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getLast() {
+
+ boolean result = true ;
+ com.sun.star.util.Date val = oObj.getLast() ;
+
+ log.println("getLast() = " + val) ;
+
+ tRes.tested("getLast()", result) ;
+ }
+
+ /**
+ * Sets the value to empty. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setTime </code> : value must be not empty </li>
+ * </ul>
+ */
+ public void _setEmpty() {
+ requiredMethod("setDate()") ;
+
+ boolean result = true ;
+ oObj.setEmpty() ;
+
+ tRes.tested("setEmpty()", result) ;
+ }
+
+ /**
+ * Checks if the field is empty. <p>
+ * Has <b> OK </b> status if the value is empty.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setEmpty() </code> </li>
+ * </ul>
+ */
+ public void _isEmpty() {
+ requiredMethod("setEmpty()") ;
+
+ boolean result = true ;
+ result = oObj.isEmpty() ;
+
+ tRes.tested("isEmpty()", result) ;
+ }
+
+ /**
+ * Checks strict state. <p>
+ * Has <b> OK </b> status if strict format is properly set.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isStrictFormat </code> </li>
+ * </ul>
+ */
+ public void _setStrictFormat() {
+ requiredMethod("isStrictFormat()") ;
+
+ boolean result = true ;
+ oObj.setStrictFormat(!strict) ;
+
+ result = oObj.isStrictFormat() == !strict ;
+
+ if (!result) {
+ log.println("Was '" + strict + "', set to '" + !strict +
+ "' but returned '" + oObj.isStrictFormat() + "'") ;
+ }
+
+ tRes.tested("setStrictFormat()", result) ;
+ }
+
+ /**
+ * Gets strict state and stores it. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _isStrictFormat() {
+
+ boolean result = true ;
+ strict = oObj.isStrictFormat() ;
+
+ tRes.tested("isStrictFormat()", result) ;
+ }
+
+
+ /**
+ * Checks long format state. <p>
+ * Has <b> OK </b> status if long format is properly set.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isLongFormat </code> </li>
+ * </ul>
+ */
+ public void _setLongFormat() {
+
+ boolean result = true ;
+ oObj.setLongFormat(!longFormat) ;
+
+ result = oObj.isLongFormat() == !longFormat ;
+
+ if (!result) {
+ log.println("Was '" + longFormat + "', set to '" + !longFormat +
+ "' but returned '" + oObj.isLongFormat() + "'") ;
+ }
+
+ tRes.tested("setLongFormat()", result) ;
+ }
+
+ /**
+ * Gets long format state and stores it. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _isLongFormat() {
+
+ boolean result = true ;
+ longFormat = oObj.isLongFormat() ;
+
+ tRes.tested("isLongFormat()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XDialog.java b/qadevOOo/tests/java/ifc/awt/_XDialog.java
new file mode 100644
index 000000000..65b4f47ae
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XDialog.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XDialog;
+
+/**
+* Testing <code>com.sun.star.awt.XDialog</code>
+* interface methods :
+* <ul>
+* <li><code> setTitle()</code></li>
+* <li><code> getTitle()</code></li>
+* <li><code> execute()</code></li>
+* <li><code> endExecute()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.awt.XDialog
+*/
+public class _XDialog extends MultiMethodTest {
+
+ public XDialog oObj = null;
+
+ /**
+ * As <code>execute()</code> method is a blocking call,
+ * then it must be executed in a separate thread. This
+ * thread class just call <code>execute</code> method
+ * of tested object.
+ */
+ protected Thread execThread = new Thread(
+ new Runnable() {
+ public void run() {
+ oObj.execute() ;
+ }
+ }) ;
+
+ /**
+ * Sets the title to some string. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurs.
+ */
+ public void _setTitle() {
+
+ oObj.setTitle("XDialog test") ;
+
+ tRes.tested("setTitle()", true) ;
+ }
+
+ /**
+ * Gets the title and compares it to the value set in
+ * <code>setTitle</code> method test. <p>
+ * Has <b>OK</b> status is set/get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setTitle </code> </li>
+ * </ul>
+ */
+ public void _getTitle() {
+ requiredMethod("setTitle()") ;
+
+ tRes.tested("getTitle()",
+ "XDialog test".equals(oObj.getTitle())) ;
+ }
+
+ /**
+ * Starts the execution of dialog in a separate thread.
+ * As this call is blocking then the thread execution
+ * must not be finished. <p>
+ * Has <b>OK</b> status if thread wasn't finished and
+ * no exceptions occurred.
+ */
+ public void _execute() {
+ boolean result = true ;
+
+ log.println("Starting execute() thread ...") ;
+ execThread.start() ;
+
+ try {
+ execThread.join(200) ;
+ } catch (InterruptedException e) {
+ log.println("execute() thread was interrupted") ;
+ result = false ;
+ }
+ result &= execThread.isAlive() ;
+
+ tRes.tested("execute()", result) ;
+ }
+
+ /**
+ * Calls the method and checks if the execution thread
+ * where <code>execute()</code> method is running was
+ * finished. If <code>execute</code> method didn't return
+ * and still running then thread interrupted. <p>
+ * Has <b>OK</b> status if <code>execute</code> method
+ * call successfully returned.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> execute </code> </li>
+ * </ul>
+ */
+ public void _endExecute() {
+ requiredMethod("execute()") ;
+
+ boolean result = true ;
+
+ oObj.endExecute() ;
+
+ try {
+ execThread.join(200) ;
+ } catch (InterruptedException e) {
+ log.println("execute() thread was interrupted") ;
+ result = false ;
+ }
+
+ if (execThread.isAlive()) {
+ execThread.interrupt() ;
+ }
+
+ result &= !execThread.isAlive() ;
+
+ tRes.tested("endExecute()", result) ;
+ }
+
+ /**
+ * Disposes object environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XFixedText.java b/qadevOOo/tests/java/ifc/awt/_XFixedText.java
new file mode 100644
index 000000000..9ea5527c7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XFixedText.java
@@ -0,0 +1,111 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.TextAlign;
+import com.sun.star.awt.XFixedText;
+
+/**
+* Testing <code>com.sun.star.awt.XFixedText</code>
+* interface methods :
+* <ul>
+* <li><code> setText()</code></li>
+* <li><code> getText()</code></li>
+* <li><code> setAlignment()</code></li>
+* <li><code> getAlignment()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XFixedText
+*/
+public class _XFixedText extends MultiMethodTest {
+
+ public XFixedText oObj = null;
+ private String text = null ;
+ private int align = -1 ;
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getText </code> </li>
+ * </ul>
+ */
+ public void _setText() {
+ requiredMethod("getText()") ;
+
+ boolean result = true ;
+ oObj.setText(text + "_") ;
+ result = (text+"_").equals(oObj.getText()) ;
+
+ tRes.tested("setText()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getText() {
+
+ boolean result = true ;
+ text = oObj.getText() ;
+ if (util.utils.isVoid(text)) text = "XFixedText";
+
+ tRes.tested("getText()", result) ;
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getAlignment </code> </li>
+ * </ul>
+ */
+ public void _setAlignment() {
+ requiredMethod("getAlignment()") ;
+
+ boolean result = true ;
+ int newAlign = align ==
+ TextAlign.CENTER ? TextAlign.LEFT : TextAlign.CENTER ;
+ oObj.setAlignment((short)newAlign) ;
+ short getAlign = oObj.getAlignment() ;
+ result = newAlign == getAlign ;
+
+ tRes.tested("setAlignment()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getAlignment() {
+
+ boolean result = true ;
+ align = oObj.getAlignment() ;
+
+ tRes.tested("getAlignment()", result) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XImageConsumer.java b/qadevOOo/tests/java/ifc/awt/_XImageConsumer.java
new file mode 100644
index 000000000..7c170fb25
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XImageConsumer.java
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XImageConsumer;
+
+/**
+* Testing <code>com.sun.star.awt.XImageConsumer</code>
+* interface methods :
+* <ul>
+* <li><code> init()</code></li>
+* <li><code> setColorModel()</code></li>
+* <li><code> setPixelsByBytes()</code></li>
+* <li><code> setPixelsByLongs()</code></li>
+* <li><code> complete()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XImageConsumer
+*/
+
+public class _XImageConsumer extends MultiMethodTest {
+
+ public XImageConsumer oObj = null;
+
+ /**
+ * Initialize the consumer with size 2x2. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _init() {
+
+ boolean result = true ;
+ oObj.init(2, 2) ;
+
+ tRes.tested("init()", result) ;
+ }
+
+ /**
+ * Sets color model. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> init </code> </li>
+ * </ul>
+ */
+ public void _setColorModel() {
+ requiredMethod("init()") ;
+
+ boolean result = true ;
+ int[] pal = new int[256] ;
+ for (int i = 0; i < 256; i++) pal[i] = i ;
+ oObj.setColorModel((short)8, pal, 100, 100, 100, 100) ;
+
+ tRes.tested("setColorModel()", result) ;
+ }
+
+ /**
+ * Fill the picture with for pixels. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> setColorModel </code> </li>
+ * </ul>
+ */
+ public void _setPixelsByBytes() {
+ executeMethod("setColorModel()") ;
+
+ boolean result = true ;
+ oObj.setPixelsByBytes(0, 0, 2, 2,
+ new byte[] {(byte)0, (byte)255, (byte)255, (byte)0}, 0, 2) ;
+
+ tRes.tested("setPixelsByBytes()", result) ;
+ }
+
+ /**
+ * Fill the picture with for pixels. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> setColorModel </code> </li>
+ * </ul>
+ */
+ public void _setPixelsByLongs() {
+ executeMethod("setColorModel()") ;
+
+ boolean result = true ;
+ oObj.setPixelsByLongs(0, 0, 2, 2, new int[] {0, 255, 255, 0}, 0, 2) ;
+
+ tRes.tested("setPixelsByLongs()", result) ;
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> init </code> </li>
+ * </ul> <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> setPixelsByBytes </code> </li>
+ * <li> <code> setPixelsByBytes </code> </li>
+ * </ul>
+ */
+ public void _complete() {
+ requiredMethod("init()") ;
+ executeMethod("setPixelsByBytes()") ;
+ executeMethod("setPixelsByBytes()") ;
+
+ boolean result = true ;
+ oObj.complete(0, null) ;
+
+ tRes.tested("complete()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XImageProducer.java b/qadevOOo/tests/java/ifc/awt/_XImageProducer.java
new file mode 100644
index 000000000..140c6ff3d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XImageProducer.java
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import java.io.PrintWriter;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XImageConsumer;
+import com.sun.star.awt.XImageProducer;
+
+/**
+* Testing <code>com.sun.star.awt.XImageProducer</code>
+* interface methods :
+* <ul>
+* <li><code> addConsumer()</code></li>
+* <li><code> removeConsumer()</code></li>
+* <li><code> startProduction()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XImageProducer
+*/
+public class _XImageProducer extends MultiMethodTest {
+
+ public XImageProducer oObj = null;
+
+ /**
+ * Consumer implementation which sets flags on appropriate
+ * method calls.
+ */
+ protected static class TestImageConsumer implements XImageConsumer {
+ PrintWriter log = null ;
+ public boolean initCalled = false ;
+
+ TestImageConsumer(PrintWriter log) {
+ log.println("### Consumer initialized" ) ;
+ this.log = log ;
+ }
+
+ public void init(int width, int height) {
+ log.println("### init() called") ;
+ initCalled = true ;
+ }
+
+ public void setColorModel(short bitCount, int[] RGBAPal,
+ int redMask, int greenMask, int blueMask, int alphaMask) {
+ log.println("### setColorModel() called") ;
+ }
+
+ public void setPixelsByBytes(int x, int y, int width, int height,
+ byte[] data, int offset, int scanSize) {
+ log.println("### setPixelByBytes() called") ;
+ }
+
+ public void setPixelsByLongs(int x, int y, int width, int height,
+ int[] data, int offset, int scanSize) {
+ log.println("### setPixelByLongs() called") ;
+ }
+
+ public void complete(int status, XImageProducer prod) {
+ log.println("### complete() called") ;
+ }
+ }
+
+ TestImageConsumer consumer = null ;
+
+ /**
+ * Creates a new XImageConsumer implementation.
+ */
+ @Override
+ public void before() {
+ consumer = new TestImageConsumer(log) ;
+ }
+
+ /**
+ * Adds a new consumer to producer. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _addConsumer() {
+
+ boolean result = true ;
+ oObj.addConsumer(consumer) ;
+
+ tRes.tested("addConsumer()", result) ;
+ }
+
+ /**
+ * Removes the consumer added before. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> startProduction </code> </li>
+ * </ul>
+ */
+ public void _removeConsumer() {
+ executeMethod("startProduction()") ;
+
+ boolean result = true ;
+ oObj.removeConsumer(consumer) ;
+
+ tRes.tested("removeConsumer()", result) ;
+ }
+
+ /**
+ * Starts the production and after short waiting checks what
+ * consumer's methods were called. <p>
+ * Has <b> OK </b> status if at least <code>init</code> consumer
+ * methods was called.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addConsumer </code> </li>
+ * </ul>
+ */
+ public void _startProduction() {
+ requiredMethod("addConsumer()") ;
+
+ oObj.startProduction() ;
+
+ waitForEventIdle();
+
+ tRes.tested("startProduction()", consumer.initCalled) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XItemListener.java b/qadevOOo/tests/java/ifc/awt/_XItemListener.java
new file mode 100644
index 000000000..f15022142
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XItemListener.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.awt.ItemEvent;
+import com.sun.star.awt.XItemListener;
+
+/**
+* Testing <code>com.sun.star.awt.XItemListener</code>
+* interface methods :
+* <ul>
+* <li><code> itemStateChanged()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'TestItemListener'</code>
+* (of type <code>ifc.awt._XItemListener.TestItemListener</code>):
+* this <code>XItemListener</code> implementation must be
+* added to the object tested for checking
+* <code> itemStateChanged()</code> method call. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XItemListener
+*/
+public class _XItemListener extends MultiMethodTest {
+
+ public XItemListener oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ * and stores event passed.
+ */
+ public static class TestItemListener implements com.sun.star.awt.XItemListener {
+ public boolean itemStateChangedCalled = false ;
+ public ItemEvent event = null ;
+
+ public void itemStateChanged(com.sun.star.awt.ItemEvent e) {
+ itemStateChangedCalled = true ;
+ event = e ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {}
+
+ }
+
+ TestItemListener itemListener = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If the relation not found.
+ */
+ @Override
+ public void before() {
+ itemListener = (TestItemListener) tEnv.getObjRelation("TestItemListener") ;
+ if (itemListener == null)
+ throw new StatusException(Status.failed("Relation not found")) ;
+ }
+
+ /**
+ * First a <code>ItemEvent</code> object created and
+ * it is passed to <code>itemStateChanged</code> method
+ * call. Then a short wait follows for listener already
+ * registered at the object to be called. <p>
+ * Has <b> OK </b> status if the listener was called with
+ * the same <code>ItemEvent</code> object as was created
+ * before.
+ */
+ public void _itemStateChanged() {
+
+ boolean result = true ;
+
+ ItemEvent event = new ItemEvent() ;
+ event.Selected = 1 ;
+ event.Highlighted = 2 ;
+ oObj.itemStateChanged(event) ;
+
+ waitForEventIdle();
+
+ result = itemListener.itemStateChangedCalled &&
+ itemListener.event.Selected == 1 &&
+ itemListener.event.Highlighted == 2 ;
+
+ tRes.tested("itemStateChanged()", result) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XLayoutConstrains.java b/qadevOOo/tests/java/ifc/awt/_XLayoutConstrains.java
new file mode 100644
index 000000000..5e1b4cb9f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XLayoutConstrains.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XLayoutConstrains;
+
+/**
+* Testing <code>com.sun.star.awt.XLayoutConstrains</code>
+* interface methods:
+* <ul>
+* <li><code> getMinimumSize() </code></li>
+* <li><code> getPreferredSize() </code></li>
+* <li><code> calcAdjustedSize() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XLayoutConstrains
+*/
+public class _XLayoutConstrains extends MultiMethodTest {
+ public XLayoutConstrains oObj = null;
+
+ /**
+ * Test calls the method, then check if returned value is not null.<p>
+ * Has <b> OK </b> status if the method returns not null.
+ */
+ public void _getMinimumSize() {
+ Size aSize = oObj.getMinimumSize();
+ tRes.tested("getMinimumSize()", aSize != null);
+ }
+
+ /**
+ * Test calls the method, then check if returned value is not null.<p>
+ * Has <b> OK </b> status if the method returns not null.
+ */
+ public void _getPreferredSize() {
+ Size aSize = oObj.getPreferredSize();
+ tRes.tested("getPreferredSize()", aSize != null);
+ }
+
+ /**
+ * Test calls the method with the new size as a parameter.<p>
+ * Has <b> OK </b> status if the method returns not null.
+ */
+ public void _calcAdjustedSize() {
+ Size aSize = oObj.calcAdjustedSize(new Size(50,50));
+ tRes.tested("calcAdjustedSize()", aSize != null);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XListBox.java b/qadevOOo/tests/java/ifc/awt/_XListBox.java
new file mode 100644
index 000000000..6c6ddd6b2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XListBox.java
@@ -0,0 +1,491 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.awt.XListBox;
+
+/**
+* Testing <code>com.sun.star.awt.XListBox</code>
+* interface methods :
+* <ul>
+* <li><code> addItemListener()</code></li>
+* <li><code> removeItemListener()</code></li>
+* <li><code> addActionListener()</code></li>
+* <li><code> removeActionListener()</code></li>
+* <li><code> addItem()</code></li>
+* <li><code> addItems()</code></li>
+* <li><code> removeItems()</code></li>
+* <li><code> getItemCount()</code></li>
+* <li><code> getItem()</code></li>
+* <li><code> getItems()</code></li>
+* <li><code> getSelectedItemPos()</code></li>
+* <li><code> getSelectedItemsPos()</code></li>
+* <li><code> getSelectedItem()</code></li>
+* <li><code> getSelectedItems()</code></li>
+* <li><code> selectItemPos()</code></li>
+* <li><code> selectItemsPos()</code></li>
+* <li><code> selectItem()</code></li>
+* <li><code> isMutipleMode()</code></li>
+* <li><code> setMultipleMode()</code></li>
+* <li><code> getDropDownLineCount()</code></li>
+* <li><code> setDropDownLineCount()</code></li>
+* <li><code> makeVisible()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XListBox
+*/
+public class _XListBox extends MultiMethodTest {
+
+ public XListBox oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestActionListener implements com.sun.star.awt.XActionListener {
+
+ public void disposing(com.sun.star.lang.EventObject e) {}
+
+ public void actionPerformed(com.sun.star.awt.ActionEvent e) {}
+
+ }
+
+ TestActionListener actionListener = new TestActionListener() ;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestItemListener implements com.sun.star.awt.XItemListener {
+
+ public void disposing(com.sun.star.lang.EventObject e) {}
+
+ public void itemStateChanged(com.sun.star.awt.ItemEvent e) {}
+ }
+
+ TestItemListener itemListener = new TestItemListener() ;
+
+ short lineCount = 0 ;
+ short itemCount = 0 ;
+
+ /**
+ * Retrieves object relations.
+ */
+ @Override
+ public void before() {
+ itemCount = oObj.getItemCount();
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addItemListener() {
+
+ oObj.addItemListener(itemListener) ;
+
+ tRes.tested("addItemListener()", Status.skipped(true)) ;
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeItemListener() {
+ requiredMethod("addItemListener()") ;
+
+ oObj.removeItemListener(itemListener) ;
+
+ tRes.tested("removeItemListener()", Status.skipped(true)) ;
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addActionListener() {
+
+ oObj.addActionListener(actionListener) ;
+
+ tRes.tested("addActionListener()", Status.skipped(true)) ;
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeActionListener() {
+ requiredMethod("addActionListener()") ;
+
+ oObj.removeActionListener(actionListener) ;
+
+ tRes.tested("removeActionListener()", Status.skipped(true)) ;
+ }
+
+ /**
+ * Adds one item to the last position and check the number of
+ * items after addition. <p>
+ * Has <b>OK</b> status if the number of items increased by 1.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getItemCount </code> </li>
+ * </ul>
+ */
+ public void _addItem() {
+ requiredMethod("getItemCount()") ;
+
+ boolean result = true ;
+ oObj.addItem("Item1", itemCount) ;
+ result = oObj.getItemCount() == itemCount + 1 ;
+
+ tRes.tested("addItem()", result) ;
+ }
+
+ /**
+ * Adds one two items to the last position and check the number of
+ * items after addition. <p>
+ * Has <b>OK</b> status if the number of items increased by 2.<p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> addItem </code> </li>
+ * </ul>
+ */
+ public void _addItems() {
+ executeMethod("addItem()") ;
+
+ boolean result = true ;
+ short oldCnt = oObj.getItemCount() ;
+ oObj.addItems(new String[] {"Item2", "Item3"}, oldCnt) ;
+ result = oObj.getItemCount() == oldCnt + 2 ;
+
+ tRes.tested("addItems()", result) ;
+ }
+
+ /**
+ * Gets the current number of items and tries to remove them all
+ * then checks number of items. <p>
+ * Has <b>OK</b> status if no items remains. <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getItems </code> </li>
+ * <li> <code> getItem </code> </li>
+ * </ul>
+ */
+ public void _removeItems() {
+ executeMethod("getItems()") ;
+ executeMethod("getItem()") ;
+ executeMethod("getSelectedItemPos()") ;
+ executeMethod("getSelectedItemsPos()") ;
+ executeMethod("getSelectedItem()") ;
+ executeMethod("getSelectedItems()") ;
+
+ boolean result = true ;
+ short oldCnt = oObj.getItemCount() ;
+ oObj.removeItems((short)0, oldCnt) ;
+ result = oObj.getItemCount() == 0 ;
+
+ tRes.tested("removeItems()", result) ;
+ }
+
+ /**
+ * Just retrieves current number of items and stores it. <p>
+ * Has <b>OK</b> status if the count is not less than 0.
+ */
+ public void _getItemCount() {
+
+ itemCount = oObj.getItemCount() ;
+
+ tRes.tested("getItemCount()", itemCount >= 0) ;
+ }
+
+ /**
+ * After <code>addItem</code> and <code>addItems</code> methods
+ * test the following items must exist {..., "Item1", "Item2", "Item3"}
+ * Retrieves the item from the position which was ititially the last.<p>
+ * Has <b>OK</b> status if the "Item1" was retrieved. <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> addItems </code> </li>
+ * </ul>
+ */
+ public void _getItem() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ String item = oObj.getItem(itemCount) ;
+ result = "Item1".equals(item) ;
+
+ tRes.tested("getItem()", result) ;
+ }
+
+ /**
+ * After <code>addItem</code> and <code>addItems</code> methods
+ * test the following items must exist {..., "Item1", "Item2", "Item3"}
+ * Retrieves all items. <p>
+ * Has <b>OK</b> status if the last three items retrieved are
+ * "Item1", "Item2" and "Item3". <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> addItems </code> </li>
+ * </ul>
+ */
+ public void _getItems() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ String[] items = oObj.getItems() ;
+ for (int i = itemCount; i < (itemCount + 3); i++) {
+ result &= ("Item" + (i+1 - itemCount)).equals(items[i]) ;
+ }
+
+ tRes.tested("getItems()", result) ;
+ }
+
+ /**
+ * Gets line count and stores it. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getDropDownLineCount() {
+
+ boolean result = true ;
+ lineCount = oObj.getDropDownLineCount() ;
+
+ tRes.tested("getDropDownLineCount()", result) ;
+ }
+
+ /**
+ * Sets a new value and then checks get value. <p>
+ * Has <b>OK</b> status if set and get values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getDropDownLineCount </code> </li>
+ * </ul>
+ */
+ public void _setDropDownLineCount() {
+ requiredMethod("getDropDownLineCount()") ;
+
+ boolean result = true ;
+ oObj.setDropDownLineCount((short)(lineCount + 1)) ;
+ result = oObj.getDropDownLineCount() == lineCount + 1 ;
+
+ tRes.tested("setDropDownLineCount()", result) ;
+ }
+
+ /**
+ * Selects some item and gets selected item position. <p>
+ * Has <b> OK </b> status if position is equal to position set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addItems </code> : to have some items </li>
+ * </ul>
+ */
+ public void _getSelectedItemPos() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ oObj.selectItemPos((short)1, true) ;
+ short pos = oObj.getSelectedItemPos() ;
+
+ result = pos == 1 ;
+
+ tRes.tested("getSelectedItemPos()", result) ;
+ }
+
+ /**
+ * Clears all selections, then selects some items and gets selected
+ * item positions. <p>
+ * Has <b> OK </b> status if positions get are the same as were set.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> selectItemsPos </code> </li>
+ * </ul>
+ */
+ public void _getSelectedItemsPos() {
+ requiredMethod("selectItemsPos()") ;
+
+ boolean result = true ;
+ short cnt = oObj.getItemCount() ;
+ for (short i = 0; i < cnt; i++) {
+ oObj.selectItemPos(i, false) ;
+ }
+ oObj.selectItemsPos(new short[] {0, 2}, true) ;
+
+ short[] items = oObj.getSelectedItemsPos() ;
+
+ result = items != null && items.length == 2 &&
+ items[0] == 0 && items[1] == 2 ;
+
+ tRes.tested("getSelectedItemsPos()", result) ;
+ }
+
+ /**
+ * Unselects all items, selects some item and then gets selected item. <p>
+ * Has <b> OK </b> status if items selected and get are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addItems </code> : to have some items </li>
+ * </ul>
+ */
+ public void _getSelectedItem() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ short cnt = oObj.getItemCount() ;
+ for (short i = 0; i < cnt; i++) {
+ oObj.selectItemPos(i, false) ;
+ }
+ oObj.selectItem("Item3", true) ;
+ String item = oObj.getSelectedItem() ;
+
+ result = "Item3".equals(item) ;
+
+ tRes.tested("getSelectedItem()", result) ;
+ }
+
+ /**
+ * Clears all selections, then selects some items positions and gets
+ * selected items. <p>
+ * Has <b> OK </b> status if items get are the same as items on
+ * positions which were set.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> selectItemsPos </code> </li>
+ * <li> <code> getItem </code>: this method is used here for checking.
+ * </li>
+ * </ul>
+ */
+ public void _getSelectedItems() {
+ requiredMethod("selectItemsPos()") ;
+ requiredMethod("getItem()") ;
+
+ boolean result = true ;
+ short cnt = oObj.getItemCount() ;
+ for (short i = 0; i < cnt; i++) {
+ oObj.selectItemPos(i, false) ;
+ }
+ oObj.selectItemsPos(new short[] {0, 2}, true) ;
+
+ String[] items = oObj.getSelectedItems() ;
+ result = items != null && items.length == 2 &&
+ oObj.getItem((short)0).equals(items[0]) &&
+ oObj.getItem((short)2).equals(items[1]) ;
+
+ tRes.tested("getSelectedItems()", result) ;
+ }
+
+ /**
+ * Unselects all items, then selects a single item. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addItems </code> : to have some items </li>
+ * </ul>
+ */
+ public void _selectItemPos() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ short cnt = oObj.getItemCount() ;
+ for (short i = 0; i < cnt; i++) {
+ oObj.selectItemPos(i, false) ;
+ }
+ oObj.selectItemPos((short)1, true) ;
+
+ tRes.tested("selectItemPos()", result) ;
+ }
+
+ /**
+ * Just selects some items. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addItems </code> : to have some items </li>
+ * </ul>
+ */
+ public void _selectItemsPos() {
+ requiredMethod("addItems()") ;
+ requiredMethod("setMultipleMode()") ;
+
+ boolean result = true ;
+ oObj.selectItemsPos(new short[] {0, 2}, true) ;
+
+ tRes.tested("selectItemsPos()", result) ;
+ }
+
+ /**
+ * Just selects an item. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addItems </code> : to have some items </li>
+ * </ul>
+ */
+ public void _selectItem() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ oObj.selectItem("Item3", true) ;
+
+ tRes.tested("selectItem()", result) ;
+ }
+
+ /**
+ * Checks if multiple mode is set. <p>
+ * Has <b> OK </b> status if multiple mode is set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setMultipleMode </code> </li>
+ * </ul>
+ */
+ public void _isMutipleMode() {
+ requiredMethod("setMultipleMode()") ;
+
+ boolean result = true ;
+ result = oObj.isMutipleMode() ;
+
+ tRes.tested("isMutipleMode()", result) ;
+ }
+
+ /**
+ * Sets multiple mode. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _setMultipleMode() {
+
+ boolean result = true ;
+ oObj.setMultipleMode(true) ;
+
+ tRes.tested("setMultipleMode()", result) ;
+ }
+
+ /**
+ * Just calls the method to make visible third item. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addItems </code> </li>
+ * </ul>
+ */
+ public void _makeVisible() {
+ requiredMethod("addItems()") ;
+
+ boolean result = true ;
+ oObj.makeVisible((short)2) ;
+
+ tRes.tested("makeVisible()", result) ;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java b/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
new file mode 100644
index 000000000..04f880828
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import com.sun.star.awt.AsyncCallback;
+import com.sun.star.awt.XCallback;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XRequestCallback;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+import util.UITools;
+
+/**
+ * Testing <code>com.sun.star.awt.XMessageBoxFactory</code>
+ * interface methods :
+ * <ul>
+ * <li><code> </code>createMessageBox()</li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.awt.XMessageBoxFactory
+ */
+public class _XMessageBoxFactory extends MultiMethodTest {
+ public XMessageBoxFactory oObj = null;
+
+ public void _createMessageBox() {
+ final XMessageBox mb = oObj.createMessageBox(
+ (XWindowPeer) tEnv.getObjRelation("WINPEER"),
+ com.sun.star.awt.MessageBoxType.ERRORBOX, 1, "The Title",
+ "The Message");
+ final UITools tools = new UITools(
+ UnoRuntime.queryInterface(XWindow.class, mb));
+ final boolean[] done = new boolean[] { false };
+ final boolean[] good = new boolean[] { false };
+ XRequestCallback async = AsyncCallback.create(
+ tParam.getComponentContext());
+ async.addCallback(
+ new XCallback() {
+ public void notify(Object aData) {
+ mb.execute();
+ synchronized (done) {
+ done[0] = true;
+ done.notifyAll();
+ }
+ }
+ },
+ Any.VOID);
+ async.addCallback(
+ new XCallback() {
+ public void notify(Object aData) {
+ try {
+ tools.clickButton("OK");
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ synchronized (good) {
+ good[0] = true;
+ }
+ }
+ },
+ Any.VOID);
+ synchronized (done) {
+ while (!done[0]) {
+ try {
+ done.wait();
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ boolean ok;
+ synchronized (good) {
+ ok = good[0];
+ }
+ tRes.tested("createMessageBox()", ok);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XNumericField.java b/qadevOOo/tests/java/ifc/awt/_XNumericField.java
new file mode 100644
index 000000000..a194fe332
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XNumericField.java
@@ -0,0 +1,308 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XNumericField;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.awt.XNumericField</code>
+* interface methods :
+* <ul>
+* <li><code> setValue()</code></li>
+* <li><code> getValue()</code></li>
+* <li><code> setMin()</code></li>
+* <li><code> getMin()</code></li>
+* <li><code> setMax()</code></li>
+* <li><code> getMax()</code></li>
+* <li><code> setFirst()</code></li>
+* <li><code> getFirst()</code></li>
+* <li><code> setLast()</code></li>
+* <li><code> getLast()</code></li>
+* <li><code> setSpinSize()</code></li>
+* <li><code> getSpinSize()</code></li>
+* <li><code> setDecimalDigits()</code></li>
+* <li><code> getDecimalDigits()</code></li>
+* <li><code> setStrictFormat()</code></li>
+* <li><code> isStrictFormat()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XNumericField
+*/
+public class _XNumericField extends MultiMethodTest {
+
+ public XNumericField oObj = null;
+ private double val = 0 ;
+ private double min = 0 ;
+ private double max = 0 ;
+ private double first = 0 ;
+ private double last = 0 ;
+ private double spin = 0 ;
+ private short digits = 0 ;
+ private boolean strict = true ;
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getValue </code> </li>
+ * </ul>
+ */
+ public void _setValue() {
+ requiredMethod("getValue()");
+
+ double value = val + 1.1;
+ oObj.setValue(value) ;
+
+ tRes.tested("setValue()", utils.approxEqual(oObj.getValue(), value));
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getValue() {
+ val = oObj.getValue() ;
+
+ tRes.tested("getValue()", true) ;
+ }
+
+ /**
+ * Sets minimal value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMin </code> </li>
+ * </ul>
+ */
+ public void _setMin() {
+ requiredMethod("getMin()") ;
+
+ double value = min + 1.1;
+ oObj.setMin(value);
+ double ret = oObj.getMin();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setMin()", result);
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getMin() {
+
+ boolean result = true ;
+ min = oObj.getMin() ;
+
+ tRes.tested("getMin()", result) ;
+ }
+
+ /**
+ * Sets maximal value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMax </code> </li>
+ * </ul>
+ */
+ public void _setMax() {
+ requiredMethod("getMax()") ;
+
+ double value = max + 1.1;
+ oObj.setMax(value);
+ double ret = oObj.getMax();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setMax()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getMax() {
+
+ boolean result = true ;
+ max = oObj.getMax() ;
+
+ tRes.tested("getMax()", result) ;
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getFirst </code> </li>
+ * </ul>
+ */
+ public void _setFirst() {
+ requiredMethod("getFirst()") ;
+
+ double value = first + 1.1;
+ oObj.setFirst(value);
+ double ret = oObj.getFirst();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setFirst()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getFirst() {
+
+ boolean result = true ;
+ first = oObj.getFirst() ;
+
+ tRes.tested("getFirst()", result) ;
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLast </code> </li>
+ * </ul>
+ */
+ public void _setLast() {
+ requiredMethod("getLast()") ;
+
+ double value = last + 1.1;
+ oObj.setLast(value);
+ double ret = oObj.getLast();
+ boolean result = utils.approxEqual(ret, value);
+
+ tRes.tested("setLast()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getLast() {
+
+ boolean result = true ;
+ last = oObj.getLast() ;
+
+ tRes.tested("getLast()", result) ;
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSpinSize </code> </li>
+ * </ul>
+ */
+ public void _setSpinSize() {
+ requiredMethod("getSpinSize()") ;
+
+ boolean result = true ;
+ double value = spin + 1.1;
+ oObj.setSpinSize(value) ;
+ result = utils.approxEqual(oObj.getSpinSize(), value);
+
+ tRes.tested("setSpinSize()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getSpinSize() {
+
+ boolean result = true ;
+ spin = oObj.getSpinSize() ;
+
+ tRes.tested("getSpinSize()", result) ;
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getDecimalDigits </code> </li>
+ * </ul>
+ */
+ public void _setDecimalDigits() {
+ requiredMethod("getDecimalDigits()") ;
+
+ boolean result = true ;
+ oObj.setDecimalDigits((short)(digits + 1)) ;
+
+ short res = oObj.getDecimalDigits() ;
+ result = res == (digits + 1) ;
+
+ tRes.tested("setDecimalDigits()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getDecimalDigits() {
+
+ boolean result = true ;
+ digits = oObj.getDecimalDigits() ;
+
+ tRes.tested("getDecimalDigits()", result) ;
+ }
+
+ /**
+ * Sets value changed and then compares it to get value. <p>
+ * Has <b>OK</b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isStrictFormat </code> </li>
+ * </ul>
+ */
+ public void _setStrictFormat() {
+ requiredMethod("isStrictFormat()") ;
+
+ boolean result = true ;
+ oObj.setStrictFormat(!strict) ;
+ result = oObj.isStrictFormat() == !strict ;
+
+ tRes.tested("setStrictFormat()", result) ;
+ }
+
+ /**
+ * Just calls the method and stores value returned. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _isStrictFormat() {
+
+ boolean result = true ;
+ strict = oObj.isStrictFormat() ;
+
+ tRes.tested("isStrictFormat()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XPatternField.java b/qadevOOo/tests/java/ifc/awt/_XPatternField.java
new file mode 100644
index 000000000..1613be4a0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XPatternField.java
@@ -0,0 +1,167 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XPatternField;
+
+/**
+* Testing <code>com.sun.star.awt.XPatternField</code>
+* interface methods :
+* <ul>
+* <li><code> setMasks()</code></li>
+* <li><code> getMasks()</code></li>
+* <li><code> setString()</code></li>
+* <li><code> getString()</code></li>
+* <li><code> setStrictFormat()</code></li>
+* <li><code> isStrictFormat()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XPatternField
+*/
+public class _XPatternField extends MultiMethodTest {
+
+ public XPatternField oObj = null ;
+ private String editMask = null ;
+ private String literalMask = null ;
+ private String string = null ;
+ private boolean strict = false ;
+
+ /**
+ * Sets masks to new values then gets them and compare. <p>
+ * Has <b> OK </b> status if set and get masks are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMasks </code> </li>
+ * </ul>
+ */
+ public void _setMasks() {
+ requiredMethod("getMasks()") ;
+
+ boolean result = true ;
+ String newEdit = editMask == null ? "ccc" : editMask + "ccc" ;
+ String newLiteral = literalMask == null ? " " : literalMask + " " ;
+ oObj.setMasks(newEdit, newLiteral) ;
+
+ String[] edit = new String[1] ;
+ String[] literal = new String[1] ;
+ oObj.getMasks(edit, literal) ;
+
+ result &= newEdit.equals(edit[0]) ;
+ result &= newLiteral.equals(literal[0]) ;
+
+ tRes.tested("setMasks()", result) ;
+ }
+
+ /**
+ * Gets masks and stores them. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _getMasks() {
+
+ boolean result = true ;
+ String[] edit = new String[1] ;
+ String[] literal = new String[1] ;
+ oObj.getMasks(edit, literal) ;
+
+ log.println("Edit mask = '" + edit[0] + "', literal = '" +
+ literal[0] + "'") ;
+
+ editMask = edit[0] ;
+ literalMask = literal[0] ;
+
+ tRes.tested("getMasks()", result) ;
+ }
+
+ /**
+ * Sets new string and then get it for verification. <p>
+ * Has <b> OK </b> status if get and set strings are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getString </code> </li>
+ * <li> <code> setMasks </code> : mask must be set for new string
+ * would be valid. </li>
+ * </ul>
+ */
+ public void _setString() {
+ requiredMethod("setMasks()") ;
+ requiredMethod("getString()") ;
+
+ boolean result = true ;
+ String newString = string = "abc" ;
+ oObj.setString(newString) ;
+ String getString = oObj.getString() ;
+
+ result = newString.equals(getString) ;
+
+ if (!result) {
+ log.println("Was '" + string + "', Set '" + newString
+ + "', Get '" + getString + "'") ;
+ }
+
+ tRes.tested("setString()", result) ;
+ }
+
+ /**
+ * Gets current string and stores it. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getString() {
+
+ boolean result = true ;
+ string = oObj.getString() ;
+
+ tRes.tested("getString()", result) ;
+ }
+
+ /**
+ * Sets new strict state then checks it. <p>
+ * Has <b> OK </b> status if the state was changed.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isStrictFormat </code> </li>
+ * </ul>
+ */
+ public void _setStrictFormat() {
+ requiredMethod("isStrictFormat()") ;
+
+ boolean result = true ;
+ oObj.setStrictFormat(!strict) ;
+
+ result = oObj.isStrictFormat() == !strict ;
+
+ tRes.tested("setStrictFormat()", result) ;
+ }
+
+ /**
+ * Gets the current strict state and stores it. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _isStrictFormat() {
+
+ boolean result = true ;
+ strict = oObj.isStrictFormat() ;
+
+ tRes.tested("isStrictFormat()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XRadioButton.java b/qadevOOo/tests/java/ifc/awt/_XRadioButton.java
new file mode 100644
index 000000000..a8757cd1c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XRadioButton.java
@@ -0,0 +1,136 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.awt.XRadioButton;
+
+/**
+* Testing <code>com.sun.star.awt.XRadioButton</code>
+* interface methods :
+* <ul>
+* <li><code> addItemListener()</code></li>
+* <li><code> removeItemListener()</code></li>
+* <li><code> getState()</code></li>
+* <li><code> setState()</code></li>
+* <li><code> setLabel()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XRadioButton
+*/
+public class _XRadioButton extends MultiMethodTest {
+
+ public XRadioButton oObj = null;
+ private boolean state = false ;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestItemListener implements com.sun.star.awt.XItemListener {
+ private final java.io.PrintWriter log;
+
+ public TestItemListener(java.io.PrintWriter log) {
+ this.log = log ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ log.println(" disposing was called.") ;
+ }
+
+ public void itemStateChanged(com.sun.star.awt.ItemEvent e) {
+ log.println(" itemStateChanged was called.") ;
+ }
+
+ }
+
+ TestItemListener itemListener = null ;
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _addItemListener() {
+
+ itemListener = new TestItemListener(log) ;
+
+ oObj.addItemListener(itemListener) ;
+
+ tRes.tested("addItemListener()", Status.skipped(true)) ;
+ }
+
+ /**
+ * !!! Can be checked only interactively !!!
+ */
+ public void _removeItemListener() {
+ requiredMethod("addItemListener()") ;
+
+ oObj.removeItemListener(itemListener) ;
+
+ tRes.tested("removeItemListener()", Status.skipped(true)) ;
+ }
+
+ /**
+ * Gets state and stores it. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getState() {
+
+ boolean result = true ;
+ state = oObj.getState() ;
+
+ tRes.tested("getState()", result) ;
+ }
+
+ /**
+ * Sets a new state and the gets it for checking. <p>
+ * Has <b> OK </b> status if set and get states are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getState </code> </li>
+ * </ul>
+ */
+ public void _setState() {
+ requiredMethod("getState()") ;
+
+ boolean result = true ;
+ oObj.setState(!state) ;
+
+ waitForEventIdle();
+
+ result = oObj.getState() == !state ;
+
+ tRes.tested("setState()", result) ;
+ }
+
+ /**
+ * Just sets a new label. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _setLabel() {
+
+ boolean result = true ;
+ oObj.setLabel("XRadioButton") ;
+
+ tRes.tested("setLabel()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XScrollBar.java b/qadevOOo/tests/java/ifc/awt/_XScrollBar.java
new file mode 100644
index 000000000..a298ed082
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XScrollBar.java
@@ -0,0 +1,203 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.awt;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.ScrollBarOrientation;
+import com.sun.star.awt.XScrollBar;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+
+import lib.MultiMethodTest;
+
+
+public class _XScrollBar extends MultiMethodTest {
+ public XScrollBar oObj;
+ public boolean adjusted = false;
+ com.sun.star.awt.XAdjustmentListener listener = new AdjustmentListener();
+
+ public void _addAdjustmentListener() throws Exception {
+ util.FormTools.switchDesignOf(tParam.getMSF(),
+ (XTextDocument) tEnv.getObjRelation("Document"));
+ oObj.addAdjustmentListener(listener);
+ adjustScrollBar();
+
+ boolean res = adjusted;
+ oObj.removeAdjustmentListener(listener);
+ adjusted = false;
+ adjustScrollBar();
+ res &= !adjusted;
+ tRes.tested("addAdjustmentListener()", res);
+ }
+
+ public void _removeAdjustmentListener() {
+ //this method is checked in addAdjustmentListener
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("addAdjustmentListener()");
+ tRes.tested("removeAdjustmentListener()", true);
+ }
+
+ public void _setBlockIncrement() {
+ oObj.setBlockIncrement(15);
+ oObj.setBlockIncrement(5);
+ int bi = oObj.getBlockIncrement();
+ tRes.tested("setBlockIncrement()",bi==5);
+ }
+
+ public void _getBlockIncrement() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setBlockIncrement()");
+ tRes.tested("getBlockIncrement()", true);
+ }
+
+ public void _setLineIncrement() {
+ oObj.setLineIncrement(12);
+ oObj.setLineIncrement(2);
+ int li = oObj.getLineIncrement();
+ tRes.tested("setLineIncrement()",li==2);
+ }
+
+ public void _getLineIncrement() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setLineIncrement()");
+ tRes.tested("getLineIncrement()", true);
+ }
+
+ public void _setMaximum() {
+ oObj.setMaximum(490);
+ oObj.setMaximum(480);
+ int max = oObj.getMaximum();
+ tRes.tested("setMaximum()",max==480);
+ }
+
+ public void _getMaximum() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setMaximum()");
+ tRes.tested("getMaximum()", true);
+ }
+
+ public void _setOrientation() {
+ oObj.setOrientation(ScrollBarOrientation.HORIZONTAL);
+ oObj.setOrientation(ScrollBarOrientation.VERTICAL);
+ int ori = oObj.getOrientation();
+ tRes.tested("setOrientation()",ori==ScrollBarOrientation.VERTICAL);
+ }
+
+ public void _getOrientation() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setOrientation()");
+ tRes.tested("getOrientation()", true);
+ }
+
+ public void _setValue() {
+ oObj.setMaximum(600);
+ oObj.setValue(480);
+ oObj.setValue(520);
+ int val = oObj.getValue();
+ tRes.tested("setValue()",val==520);
+ }
+
+ public void _getValue() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setValue()");
+ tRes.tested("getValue()", true);
+ }
+
+ public void _setVisibleSize() {
+ oObj.setVisibleSize(700);
+ oObj.setVisibleSize(500);
+ int vs = oObj.getVisibleSize();
+ tRes.tested("setVisibleSize()",vs==500);
+ }
+
+ public void _getVisibleSize() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setVisibleSize()");
+ tRes.tested("getVisibleSize()", true);
+ }
+
+ public void _setValues() {
+ oObj.setValues(80, 200, 300);
+ oObj.setValues(70, 210, 500);
+ int val = oObj.getValue();
+ int vs = oObj.getVisibleSize();
+ int max = oObj.getMaximum();
+ tRes.tested("setValues()",((val==70) && (vs==210) && (max==500)));
+ }
+
+ private void adjustScrollBar() {
+
+
+ XScrollBar sc = UnoRuntime.queryInterface(
+ XScrollBar.class, tEnv.getTestObject());
+
+ sc.setValue(500);
+
+ waitForEventIdle();
+
+ XAccessible acc = UnoRuntime.queryInterface(
+ XAccessible.class, tEnv.getTestObject());
+
+ XAccessibleComponent aCom = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ acc.getAccessibleContext());
+
+ Point location = aCom.getLocationOnScreen();
+ try {
+ Robot rob = new Robot();
+ rob.mouseMove(location.X + 50, location.Y + 75);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ System.out.println("couldn't adjust scrollbar");
+ }
+
+ waitForEventIdle();
+ }
+
+ public class AdjustmentListener
+ implements com.sun.star.awt.XAdjustmentListener {
+ public void adjustmentValueChanged(com.sun.star.awt.AdjustmentEvent adjustmentEvent) {
+ System.out.println("Adjustment Value changed");
+ System.out.println("AdjustmentEvent: " + adjustmentEvent.Value);
+ adjusted = true;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ System.out.println("Listener disposed");
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XSpinField.java b/qadevOOo/tests/java/ifc/awt/_XSpinField.java
new file mode 100644
index 000000000..d7044a3c3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XSpinField.java
@@ -0,0 +1,195 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.SpinEvent;
+import com.sun.star.awt.XSpinField;
+import com.sun.star.awt.XSpinListener;
+import com.sun.star.lang.EventObject;
+
+/**
+* Testing <code>com.sun.star.awt.XSpinField</code>
+* interface methods :
+* <ul>
+* <li><code> addSpinListener()</code></li>
+* <li><code> removeSpinListener()</code></li>
+* <li><code> up()</code></li>
+* <li><code> down()</code></li>
+* <li><code> first()</code></li>
+* <li><code> last()</code></li>
+* <li><code> enableRepeat()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XSpinField
+*/
+public class _XSpinField extends MultiMethodTest {
+
+ public XSpinField oObj = null;
+
+ /**
+ * Listener implementation which set flags on appropriate
+ * listener methods calls.
+ */
+ protected static class TestListener implements XSpinListener {
+ public boolean upFl = false ;
+ public boolean downFl = false ;
+ public boolean firstFl = false ;
+ public boolean lastFl = false ;
+
+ public void up(SpinEvent e) {
+ upFl = true ;
+ }
+ public void down(SpinEvent e) {
+ downFl = true ;
+ }
+ public void first(SpinEvent e) {
+ firstFl = true ;
+ }
+ public void last(SpinEvent e) {
+ lastFl = true ;
+ }
+ public void disposing(EventObject e) {}
+ }
+
+ private final TestListener listener = new TestListener() ;
+
+ /**
+ * Just adds a listener. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _addSpinListener() {
+ oObj.addSpinListener(listener) ;
+
+ tRes.tested("addSpinListener()", true) ;
+ }
+
+ /**
+ * Calls the method. <p>
+ * Has <b>OK</b> status if the appropriate listener method
+ * was called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addSpinListener </code> </li>
+ * </ul>
+ */
+ public void _up() {
+ requiredMethod("addSpinListener()") ;
+
+ oObj.up() ;
+ waitForEventIdle();
+
+ tRes.tested("up()", listener.upFl) ;
+ }
+
+ /**
+ * Calls the method. <p>
+ * Has <b>OK</b> status if the appropriate listener method
+ * was called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addSpinListener </code> </li>
+ * </ul>
+ */
+ public void _down() throws Exception {
+ requiredMethod("addSpinListener()") ;
+
+ oObj.down() ;
+ waitForEventIdle();
+
+ tRes.tested("down()", listener.downFl) ;
+ }
+
+ /**
+ * Calls the method. <p>
+ * Has <b>OK</b> status if the appropriate listener method
+ * was called.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addSpinListener </code> </li>
+ * </ul>
+ */
+ public void _first() throws Exception {
+ requiredMethod("addSpinListener()") ;
+
+ oObj.first();
+ waitForEventIdle();
+
+ tRes.tested("first()", listener.firstFl) ;
+ }
+
+ /**
+ * Calls the method. <p>
+ * Has <b>OK</b> status if the appropriate listener method
+ * was called.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addSpinListener </code> </li>
+ * </ul>
+ */
+ public void _last() throws Exception {
+ requiredMethod("addSpinListener()") ;
+
+ oObj.last();
+ waitForEventIdle();
+
+ tRes.tested("last()", listener.lastFl) ;
+ }
+
+ /**
+ * Removes the listener, then calls <code>up</code> method and
+ * checks if the listener wasn't called. <p>
+ * Has <b>OK</b> status if listener wasn't called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addSpinListener </code> </li>
+ * <li> <code> up </code> </li>
+ * <li> <code> down </code> </li>
+ * <li> <code> first </code> </li>
+ * <li> <code> last </code> </li>
+ * </ul>
+ */
+ public void _removeSpinListener() {
+ requiredMethod("addSpinListener()") ;
+ executeMethod("up()") ;
+ executeMethod("down()") ;
+ executeMethod("first()") ;
+ executeMethod("last()") ;
+
+ listener.upFl = false ;
+
+ oObj.removeSpinListener(listener) ;
+
+ oObj.up() ;
+
+ tRes.tested("removeSpinListener()", !listener.upFl) ;
+ }
+
+ /**
+ * Enables then disables repeating. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _enableRepeat() {
+ oObj.enableRepeat(true) ;
+ oObj.enableRepeat(false) ;
+
+ tRes.tested("enableRepeat()", true) ;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XSpinValue.java b/qadevOOo/tests/java/ifc/awt/_XSpinValue.java
new file mode 100644
index 000000000..a8a65e2db
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XSpinValue.java
@@ -0,0 +1,195 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.ScrollBarOrientation;
+import com.sun.star.awt.XSpinValue;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import lib.MultiMethodTest;
+
+public class _XSpinValue extends MultiMethodTest {
+
+ public XSpinValue oObj;
+ public boolean adjusted = false;
+ com.sun.star.awt.XAdjustmentListener listener = new AdjustmentListener();
+
+ public void _addAdjustmentListener() throws Exception {
+ util.FormTools.switchDesignOf(tParam.getMSF(),
+ (XTextDocument) tEnv.getObjRelation("Document"));
+ oObj.addAdjustmentListener(listener);
+ adjustScrollBar();
+
+ boolean res = adjusted;
+ oObj.removeAdjustmentListener(listener);
+ adjusted = false;
+ adjustScrollBar();
+ res &= !adjusted;
+ tRes.tested("addAdjustmentListener()", res);
+ }
+
+ public void _removeAdjustmentListener() {
+ //this method is checked in addAdjustmentListener
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("addAdjustmentListener()");
+ tRes.tested("removeAdjustmentListener()", true);
+ }
+
+ public void _setSpinIncrement() {
+ oObj.setSpinIncrement(15);
+ oObj.setSpinIncrement(5);
+ int bi = oObj.getSpinIncrement();
+ tRes.tested("setSpinIncrement()",bi==5);
+ }
+
+ public void _getSpinIncrement() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setSpinIncrement()");
+ tRes.tested("getSpinIncrement()", true);
+ }
+
+
+ public void _setMaximum() {
+ oObj.setMaximum(490);
+ oObj.setMaximum(480);
+ int max = oObj.getMaximum();
+ tRes.tested("setMaximum()",max==480);
+ }
+
+ public void _getMaximum() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setMaximum()");
+ tRes.tested("getMaximum()", true);
+ }
+
+ public void _setMinimum() {
+ oObj.setMinimum(90);
+ oObj.setMinimum(80);
+ int max = oObj.getMinimum();
+ tRes.tested("setMinimum()",max==80);
+ }
+
+ public void _getMinimum() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setMinimum()");
+ tRes.tested("getMinimum()", true);
+ }
+
+ public void _setOrientation() {
+ boolean res = true;
+ try {
+ oObj.setOrientation(ScrollBarOrientation.HORIZONTAL);
+ oObj.setOrientation(ScrollBarOrientation.VERTICAL);
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("Couldn't set Orientation");
+ }
+ int ori = oObj.getOrientation();
+ res &= (ori==ScrollBarOrientation.VERTICAL);
+ tRes.tested("setOrientation()",res );
+ }
+
+ public void _getOrientation() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setOrientation()");
+ tRes.tested("getOrientation()", true);
+ }
+
+ public void _setValue() {
+ oObj.setMaximum(600);
+ oObj.setValue(480);
+ oObj.setValue(520);
+ int val = oObj.getValue();
+ tRes.tested("setValue()",val==520);
+ }
+
+ public void _getValue() {
+ //this method is checked in the corresponding set method
+ //so that method is required here and if it works
+ //this method is given OK too
+ requiredMethod("setValue()");
+ tRes.tested("getValue()", true);
+ }
+
+ public void _setValues() {
+ oObj.setValues(80, 200, 180);
+ oObj.setValues(70, 210, 200);
+ int val = oObj.getValue();
+ int min = oObj.getMinimum();
+ int max = oObj.getMaximum();
+ tRes.tested("setValues()",((min==70) && (max==210) && (val==200)));
+ }
+
+ private void adjustScrollBar() {
+
+
+ XSpinValue sv = UnoRuntime.queryInterface(
+ XSpinValue.class, tEnv.getTestObject());
+
+ sv.setValue(500);
+
+ waitForEventIdle();
+
+ XAccessible acc = UnoRuntime.queryInterface(
+ XAccessible.class, tEnv.getTestObject());
+
+ XAccessibleComponent aCom = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ acc.getAccessibleContext());
+
+ Point location = aCom.getLocationOnScreen();
+ try {
+ Robot rob = new Robot();
+ rob.mouseMove(location.X + 20, location.Y + 10);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ System.out.println("couldn't adjust scrollbar");
+ }
+
+ waitForEventIdle();
+ }
+
+ public class AdjustmentListener
+ implements com.sun.star.awt.XAdjustmentListener {
+ public void adjustmentValueChanged(com.sun.star.awt.AdjustmentEvent adjustmentEvent) {
+ System.out.println("Adjustment Value changed");
+ System.out.println("AdjustmentEvent: " + adjustmentEvent.Value);
+ adjusted = true;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ System.out.println("Listener disposed");
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java b/qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java
new file mode 100644
index 000000000..5955e9a0b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java
@@ -0,0 +1,31 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import com.sun.star.awt.XSystemChildFactory;
+import lib.MultiMethodTest;
+
+public final class _XSystemChildFactory extends MultiMethodTest {
+ public XSystemChildFactory oObj;
+
+ public void _createSystemChild() {
+ //TODO
+ tRes.tested("createSystemChild()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XTabController.java b/qadevOOo/tests/java/ifc/awt/_XTabController.java
new file mode 100644
index 000000000..8fa384497
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTabController.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.awt.XTabController;
+import com.sun.star.awt.XTabControllerModel;
+
+/**
+* This interface is DEPRECATED !!!
+* All test results are SKIPPED.OK now.
+* Testing <code>com.sun.star.awt.XTabController</code>
+* interface methods :
+* <ul>
+* <li><code> activateFirst()</code></li>
+* <li><code> activateLast()</code></li>
+* <li><code> activateTabOrder()</code></li>
+* <li><code> autoTabOrder()</code></li>
+* <li><code> getContainer()</code></li>
+* <li><code> getControls()</code></li>
+* <li><code> getModel()</code></li>
+* <li><code> setContainer()</code></li>
+* <li><code> setModel()</code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'MODEL'</code> : <code>XTabControllerModel</code> a model for
+* the object</li>
+* <li> <code>'CONTAINER'</code> : <code>XControlContainer</code> a container
+* for the object</li>
+* <ul> <p>
+* @see com.sun.star.awt.XTabController
+*/
+public class _XTabController extends MultiMethodTest {
+ public XTabController oObj = null;
+
+ /**
+ * Test calls the method with object relation 'MODEL' as a parameter.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _setModel() {
+ oObj.setModel( (XTabControllerModel) tEnv.getObjRelation("MODEL"));
+ tRes.tested("setModel()", Status.skipped(true) );
+ }
+
+ /**
+ * Test calls the method, then checks returned value.<p>
+ * Has <b> OK </b> status if method returns a value that equals to
+ * corresponding object relation.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setModel() </code> : sets model for the object </li>
+ * </ul>
+ */
+ public void _getModel() {
+ requiredMethod("setModel()");
+ oObj.getModel();
+ tRes.tested("getModel()", Status.skipped(true));
+ }
+
+ /**
+ * Test calls the method with object relation 'CONTAINER' as a parameter.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _setContainer() {
+ oObj.setContainer( (XControlContainer)
+ tEnv.getObjRelation("CONTAINER"));
+ tRes.tested("setContainer()", Status.skipped(true));
+ }
+
+ /**
+ * Test calls the method, then checks returned value.<p>
+ * Has <b> OK </b> status if method returns a value that equals to
+ * corresponding object relation.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setContainer() </code> : sets container for the object</li>
+ * </ul>
+ */
+ public void _getContainer() {
+ requiredMethod( "setContainer()");
+ oObj.getContainer();
+ tRes.tested("getContainer()", Status.skipped(true) );
+ }
+
+ /**
+ * Test calls the method, then checks returned sequence.<p>
+ * Has <b> OK </b> status if returned sequence is not null.<p>
+ */
+ public void _getControls() {
+ oObj.getControls();
+ tRes.tested("getControls()", Status.skipped(true) );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _autoTabOrder() {
+ oObj.autoTabOrder();
+ tRes.tested("autoTabOrder()", Status.skipped(true));
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _activateTabOrder() {
+ oObj.activateTabOrder();
+ tRes.tested("activateTabOrder()", Status.skipped(true));
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _activateFirst() {
+ oObj.activateFirst();
+ tRes.tested("activateFirst()", Status.skipped(true));
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _activateLast() {
+ oObj.activateLast();
+ tRes.tested("activateLast()", Status.skipped(true));
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XTabControllerModel.java b/qadevOOo/tests/java/ifc/awt/_XTabControllerModel.java
new file mode 100644
index 000000000..4b2070168
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTabControllerModel.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.awt.XTabControllerModel;
+
+/**
+* Testing <code>com.sun.star.awt.XTabControllerModel</code>
+* interface methods :
+* <ul>
+* <li><code> getGroupControl()</code></li>
+* <li><code> setGroupControl()</code></li>
+* <li><code> setControlModels()</code></li>
+* <li><code> getControlModels()</code></li>
+* <li><code> setGroup()</code></li>
+* <li><code> getGroupCount()</code></li>
+* <li><code> getGroup()</code></li>
+* <li><code> getGroupByName()</code></li>
+* </ul> <p>
+*
+* Since the interface is <b>DEPRECATED</b> all methods have
+* status SKIPPED.OK <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Model1'</code> : <code>XControlModel</code> relation
+* , any control model belonging to the object tested.</li>
+* <li> <code>'Model2'</code> : <code>XControlModel</code> relation
+* , any control model belonging to the object tested.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XTabControllerModel
+*/
+public class _XTabControllerModel extends MultiMethodTest {
+
+ public XTabControllerModel oObj = null;
+
+
+ /**
+ * Sets group control to <code>true</code> then calls
+ * <code>getGroupControl()</code> method and checks the value. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>
+ * <p>
+ */
+ public void _getGroupControl() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("getGroupControl()", Status.skipped(true));
+ }
+
+ /**
+ * Sets group control to <code>false</code> then calls
+ * <code>getGroupControl()</code> method and checks the value. <p>
+ * Has <b> OK </b> status if the method returns <code>false</code>
+ * <p>
+ */
+ public void _setGroupControl() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("setGroupControl()", Status.skipped(true));
+ }
+
+ /**
+ * Test calls the method and sets control models to a single
+ * model from 'Model1' relation. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _setControlModels() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("setControlModels()", Status.skipped(true));
+ }
+
+ /**
+ * Calls method and checks if models were properly set in
+ * <code>setControlModels</code> method test. <p>
+ * Has <b>OK</b> status if the model sequence set is equal
+ * to the sequence get. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setControlModels </code> : to set sequence of models.</li>
+ * </ul>
+ */
+ public void _getControlModels() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("getControlModels()", Status.skipped(true));
+ }
+
+ /**
+ * Sets the group named 'XTabControlModel' to sequence with a single
+ * element from 'Model2' relation. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _setGroup() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("setGroup()", Status.skipped(true));
+ }
+
+ /**
+ * Calls method and checks if the group was properly set in
+ * <code>setGroup</code> method test. <p>
+ * Has <b>OK</b> status if the sequence set is equal
+ * to the sequence get. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setGroup </code> : to set the sequence.</li>
+ * </ul>
+ */
+ public void _getGroup() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("getGroup()", Status.skipped(true));
+ }
+
+ /**
+ * Retrieves group named 'XTabControllerModel' added in <code>
+ * setGroup</code> method test, and checks it. <p>
+ * Has <b> OK </b> status if sequence get is equal to sequence set.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setGroup </code> : to set the sequence.</li>
+ * </ul>
+ */
+ public void _getGroupByName() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("getGroupByName()", Status.skipped(true));
+ }
+
+ /**
+ * Gets number of groups.
+ * Has <b> OK </b> status if the number is greater than 0.
+ * <ul>
+ * <li> <code> setGroup </code> : to has at least one group.</li>
+ * </ul>
+ */
+ public void _getGroupCount() {
+ log.println("Always SKIPPED.OK since deprecated.");
+ tRes.tested("getGroupCount()", Status.skipped(true));
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XTextComponent.java b/qadevOOo/tests/java/ifc/awt/_XTextComponent.java
new file mode 100644
index 000000000..b22cdbdb2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTextComponent.java
@@ -0,0 +1,255 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.awt.Selection;
+import com.sun.star.awt.TextEvent;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XTextListener;
+import com.sun.star.lang.EventObject;
+
+/**
+* Testing <code>com.sun.star.awt.XTextComponent</code>
+* interface methods:
+* <ul>
+* <li><code> addTextListener() </code></li>
+* <li><code> removeTextListener() </code></li>
+* <li><code> setText() </code></li>
+* <li><code> getText() </code></li>
+* <li><code> insertText() </code></li>
+* <li><code> getSelectedText() </code></li>
+* <li><code> setSelection() </code></li>
+* <li><code> getSelection() </code></li>
+* <li><code> setEditable() </code></li>
+* <li><code> isEditable() </code></li>
+* <li><code> setMaxTextLen() </code></li>
+* <li><code> getMaxTextLen() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XTextComponent.onlyNumbers'</code> (of type <code>Object</code>):
+* needed for checking if component can contain only numeric values </li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XTextComponent
+*/
+public class _XTextComponent extends MultiMethodTest {
+ public XTextComponent oObj = null;
+ public boolean textChanged = false;
+ // indicates that component can contain only numeric values
+ private boolean num = false ;
+
+ /**
+ * Listener implementation which just set flag when listener
+ * method is called.
+ */
+ protected class MyChangeListener implements XTextListener {
+ public void disposing ( EventObject oEvent ) {}
+ public void textChanged(TextEvent ev) {
+ textChanged = true;
+ }
+ }
+
+ XTextListener listener = new MyChangeListener();
+
+ /**
+ * Retrieves object relation, then sets flag 'num' to 'true'
+ * if relation is not null.
+ */
+ @Override
+ public void before() {
+ if (tEnv.getObjRelation("XTextComponent.onlyNumbers") != null)
+ num = true;
+ }
+
+ /**
+ * After test calls the method, a new text is set to the object. Then
+ * we check if listener was called, and set a new text value
+ * to the object.<p>
+ * Has <b> OK </b> status if listener was called.
+ */
+ public void _addTextListener() throws Exception {
+ oObj.addTextListener(listener);
+ oObj.setText("Listen");
+ waitForEventIdle();
+ if (!textChanged) {
+ log.println("Listener wasn't called after changing Text");
+ }
+
+ tRes.tested("addTextListener()",textChanged);
+ }
+
+ /**
+ * After setting flag 'textChanged' to false, test calls the method.
+ * Then a new text value is set to the object. <p>
+ * Has <b> OK </b> status if listener was not called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li><code> addTextListener() </code>: adds listener to the object.</li>
+ * </ul>
+ */
+ public void _removeTextListener() {
+ requiredMethod("addTextListener()");
+ textChanged = false;
+ oObj.removeTextListener(listener);
+ oObj.setText("Do not listen");
+ tRes.tested("removeTextListener()",!textChanged);
+ }
+
+ /**
+ * At first we're setting some string variable 'newText' depending of a kind
+ * of object we are working with. Then test calls the method. <p>
+ * Has <b> OK </b> status if set value is equal to a value obtained after.
+ */
+ public void _setText() {
+ String newText = num ? "823" : "setText" ;
+ if (tEnv.getTestCase().getObjectName().equals("OTimeControl")) {
+ newText = "8:15";
+ }
+ log.println("Setting text to : '" + newText + "'") ;
+ oObj.setText(newText);
+ log.println("Getting text : '" + oObj.getText() + "'") ;
+ tRes.tested("setText()",oObj.getText().equals(newText));
+ }
+
+ /**
+ * At first we're setting some string variable 'newText' depending of a kind
+ * of object we are working with. Then we set text to the object and call
+ * the method. <p>
+ * Has <b> OK </b> status if set value is equal to a value obtained using
+ * getText() method.
+ */
+ public void _getText() {
+ String newText = num ? "823" : "setText" ;
+ if (tEnv.getTestCase().getObjectName().equals("OTimeControl")) {
+ newText = "8:15";
+ }
+ oObj.setText(newText);
+ tRes.tested("getText()",oObj.getText().equals(newText));
+ }
+
+ /**
+ * At first we're setting string variables 'text' and 'itext' depending
+ * of a kind of object we are working with. Next, value from 'text' variable
+ * is set to an object using setText(), then the method insertText() is called.
+ * <p>
+ * Has <b> OK </b> status if text is inserted to the object.
+ */
+ public void _insertText() {
+ String text = num ? "753" : "iText" ;
+ String itext = num ? "6" : "insert" ;
+ log.println("Setting text to : '" + text + "'") ;
+ oObj.setText(text);
+ log.println("Inserting text to (0,1) : '" + itext + "'") ;
+ oObj.insertText(new Selection(0,1), itext);
+ log.println("getText() returns: " + oObj.getText());
+ tRes.tested("insertText()", oObj.getText().equals
+ (num ? "653" : "insertText"));
+ }
+
+ /**
+ * After text is set to the object, test calls the method.<p>
+ * Has <b> OK </b> status if selected text is equal to first three symbols
+ * of text added before.
+ */
+ public void _getSelectedText() {
+ String text = num ? "753" : "txt" ;
+ oObj.setText(text);
+ oObj.setSelection(new Selection(0,3));
+ boolean result = oObj.getSelectedText().equals(text);
+
+ if (! result) {
+ System.out.println("Getting '"+oObj.getSelectedText()+"'");
+ System.out.println("Expected '"+text+"'");
+ }
+
+ tRes.tested("getSelectedText()",result);
+ }
+
+ /**
+ * After setting new text to an object, and defining selection variable,
+ * test calls the method. <p>
+ * Has <b> OK </b> status if selection set before is equal to a selection we
+ * got using getSelection().
+ */
+ public void _setSelection() {
+ oObj.setText("setSelection");
+ Selection sel = new Selection(0,3);
+ oObj.setSelection(sel);
+ tRes.tested("setSelection()", ValueComparer.equalValue
+ (oObj.getSelection(), sel));
+ }
+
+ /**
+ * After setting new text to an object, and defining selection variable,
+ * test calls the method. <p>
+ * Has <b> OK </b> status if selection set before is equal to a selection we
+ * got using getSelection().
+ */
+ public void _getSelection() {
+ oObj.setText("getSelection");
+ Selection sel = new Selection(2,3);
+ oObj.setSelection(sel);
+ tRes.tested("getSelection()", ValueComparer.equalValue
+ (oObj.getSelection(), sel));
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if method has changed a property 'Editable'.
+ */
+ public void _setEditable(){
+ oObj.setEditable(true);
+ tRes.tested("setEditable()", oObj.isEditable());
+ }
+
+ /**
+ * First we set 'Editable' variable to false. Then test calls the method.<p>
+ * Has <b> OK </b> status if method returns value we set before.
+ */
+ public void _isEditable(){
+ oObj.setEditable(false);
+ tRes.tested("isEditable()", ! oObj.isEditable());
+ }
+
+ /**
+ * Test calls the method. Then new text value is set to the object. <p>
+ * Has <b> OK </b> status if text, returned by getText() is a string of
+ * length we set before.
+ */
+ public void _setMaxTextLen() {
+ oObj.setMaxTextLen((short)10);
+ tRes.tested("setMaxTextLen()",oObj.getMaxTextLen()==10);
+ }
+
+ /**
+ * At first we set MaxTextLen, then test calls the method. <p>
+ * Has <b> OK </b> status if method returns a value we set before.
+ */
+ public void _getMaxTextLen() {
+ oObj.setMaxTextLen((short)15);
+ log.println("getMaxTextLen() returns: "+oObj.getMaxTextLen());
+ tRes.tested("getMaxTextLen()",oObj.getMaxTextLen()==15);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XTextLayoutConstrains.java b/qadevOOo/tests/java/ifc/awt/_XTextLayoutConstrains.java
new file mode 100644
index 000000000..c15b5d093
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTextLayoutConstrains.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XTextLayoutConstrains;
+
+/**
+* Testing <code>com.sun.star.awt.XTextLayoutConstrains</code>
+* interface methods:
+* <ul>
+* <li><code> getMinimumSize() </code></li>
+* <li><code> getColumnsAndLines() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XTextLayoutConstrains
+*/
+public class _XTextLayoutConstrains extends MultiMethodTest {
+ public XTextLayoutConstrains oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if both returned size fields are not equal to zero.
+ */
+ public void _getMinimumSize() {
+ short nCols = 0;
+ short nLines = 0;
+ Size mSize = oObj.getMinimumSize(nCols,nLines);
+ boolean res = ( (mSize.Height != 0) && (mSize.Width != 0) );
+ if (!res) {
+ log.println("mSize.height: " + mSize.Height);
+ log.println("mSize.width: " + mSize.Width);
+ }
+ tRes.tested("getMinimumSize()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if both returned values are not equal to zero.
+ */
+ public void _getColumnsAndLines() {
+ short[] nCols = new short[1];
+ short[] nLines = new short[1];
+ oObj.getColumnsAndLines(nCols,nLines);
+ boolean res = ( (nCols[0] != 0) && (nLines[0] != 0) );
+ if (!res) {
+ log.println("nCols: " + nCols[0]);
+ log.println("nLines: " + nLines[0]);
+ }
+ tRes.tested("getColumnsAndLines()",res);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XTextListener.java b/qadevOOo/tests/java/ifc/awt/_XTextListener.java
new file mode 100644
index 000000000..2d57e349c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTextListener.java
@@ -0,0 +1,119 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.awt.TextEvent;
+import com.sun.star.awt.XTextListener;
+
+/**
+* Testing <code>com.sun.star.awt.XTextListener</code>
+* interface methods:
+* <ul>
+* <li><code> textChanged() </code></li>
+* </ul><p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'TestTextListener'</code>
+* (of type <code>ifc.awt._XTextListener.TestTextListener</code>):
+* this listener implementation must be registered for object tested for
+* checking
+* <code>textChanged()</code> method call. The listener must be registered
+* in object environment creation because it's not a fact that tested
+* component supports <code>XTextComponent</code> interface and the listener
+* can be registered in another object.</li>
+* <ul> <p>
+*
+* @see com.sun.star.awt.XTextListener
+*/
+public class _XTextListener extends MultiMethodTest {
+ public XTextListener oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ * and stores event passed.
+ */
+ public static class TestTextListener implements
+ com.sun.star.awt.XTextListener {
+ public boolean textChangedCalled = false ;
+ public TextEvent event = null ;
+
+ public void textChanged(TextEvent e) {
+ textChangedCalled = true ;
+ event = e ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {}
+
+ }
+
+ TestTextListener textListener = null;
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If the relation not found.
+ */
+ @Override
+ public void before() {
+ textListener = (TestTextListener)
+ tEnv.getObjRelation("TestTextListener");
+ if (textListener == null) {
+ throw new StatusException(Status.failed("Relation not found"));
+ }
+ }
+
+ /**
+ * First a <code>TextEvent</code> object created and
+ * it is passed to <code>textChanged</code> method
+ * call. Then a short wait follows for listener already
+ * registered at the object to be called. <p>
+ * Has <b> OK </b> status if the listener was called with
+ * the same <code>TextEvent</code> object as was created
+ * before.
+ */
+ public void _textChanged() {
+
+ boolean result = true ;
+
+ TextEvent event = new TextEvent() ;
+ event.dummy1 = 2;
+ oObj.textChanged(event);
+
+ waitForEventIdle();
+
+ result = textListener.textChangedCalled &&
+ textListener.event.dummy1 == 2;
+
+ tRes.tested("textChanged()", result) ;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XTimeField.java b/qadevOOo/tests/java/ifc/awt/_XTimeField.java
new file mode 100644
index 000000000..cee4e51d6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTimeField.java
@@ -0,0 +1,287 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XTimeField;
+import com.sun.star.util.Time;
+
+/**
+* Testing <code>com.sun.star.awt.XTimeField</code>
+* interface methods :
+* <ul>
+* <li><code> setTime()</code></li>
+* <li><code> getTime()</code></li>
+* <li><code> setMin()</code></li>
+* <li><code> getMin()</code></li>
+* <li><code> setMax()</code></li>
+* <li><code> getMax()</code></li>
+* <li><code> setFirst()</code></li>
+* <li><code> getFirst()</code></li>
+* <li><code> setLast()</code></li>
+* <li><code> getLast()</code></li>
+* <li><code> setEmpty()</code></li>
+* <li><code> isEmpty()</code></li>
+* <li><code> setStrictFormat()</code></li>
+* <li><code> isStrictFormat()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XTimeField
+*/
+public class _XTimeField extends MultiMethodTest {
+
+ public XTimeField oObj = null;
+ private boolean strict = false ;
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getTime </code> </li>
+ * </ul>
+ */
+ public void _setTime() {
+ requiredMethod("getTime()") ;
+
+ boolean result = true ;
+ oObj.setTime(new Time(0, (short)0, (short)15, (short)11, false));
+ Time time = oObj.getTime();
+ result = time.NanoSeconds == 0 && time.Seconds == 0 && time.Minutes == 15 && time.Hours == 11 && !time.IsUTC;
+
+ if (! result ) {
+ System.out.println("Getting " + oObj.getTime() + " expected 11:15");
+ }
+
+ tRes.tested("setTime()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getTime() {
+
+ boolean result = true ;
+ oObj.getTime() ;
+
+ tRes.tested("getTime()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMin </code> </li>
+ * </ul>
+ */
+ public void _setMin() {
+
+ boolean result = true ;
+ oObj.setMin(new Time(0, (short)14, (short)18, (short)6, false));
+ Time time = oObj.getMin();
+ result = time.NanoSeconds == 0 && time.Seconds == 14 && time.Minutes == 18 && time.Hours == 6 && !time.IsUTC;
+
+ tRes.tested("setMin()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getMin() {
+
+ boolean result = true ;
+ oObj.getMin() ;
+
+ tRes.tested("getMin()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMax </code> </li>
+ * </ul>
+ */
+ public void _setMax() {
+
+ boolean result = true ;
+ oObj.setMax(new Time(855447, (short)31, (short)23, (short)22, false)) ;
+ Time time = oObj.getMax();
+ result = time.NanoSeconds == 855447 && time.Seconds == 31 && time.Minutes == 23 && time.Hours == 22 && !time.IsUTC;
+
+ tRes.tested("setMax()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getMax() {
+
+ boolean result = true ;
+ oObj.getMax() ;
+
+ tRes.tested("getMax()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getFirst </code> </li>
+ * </ul>
+ */
+ public void _setFirst() {
+
+ boolean result = true ;
+ oObj.setFirst(new Time(0, (short)0, (short)30, (short)7, false)) ;
+ Time time = oObj.getFirst();
+ result = time.NanoSeconds == 0 && time.Seconds == 0 && time.Minutes == 30 && time.Hours == 7 && !time.IsUTC;
+
+ if (!result) {
+ log.println("Set to 07:30 but returned " + oObj.getFirst()) ;
+ }
+
+ tRes.tested("setFirst()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getFirst() {
+
+ boolean result = true ;
+ com.sun.star.util.Time val = oObj.getFirst() ;
+
+ log.println("getFirst() = " + val) ;
+
+ tRes.tested("getFirst()", result) ;
+ }
+
+ /**
+ * Sets a new value and checks if it was correctly set. <p>
+ * Has <b> OK </b> status if set and get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLast </code> </li>
+ * </ul>
+ */
+ public void _setLast() {
+
+ boolean result = true ;
+ oObj.setLast(new Time(500000, (short)31, (short)30, (short)18, false)) ;
+ Time time = oObj.getLast();
+ result = time.NanoSeconds == 500000 && time.Seconds == 31 && time.Minutes == 30 && time.Hours == 18 && !time.IsUTC;
+
+ if (!result) {
+ log.println("Set to 18:30:31.5 but returned " + oObj.getLast()) ;
+ }
+
+ tRes.tested("setLast()", result) ;
+ }
+
+ /**
+ * Gets the current value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _getLast() {
+
+ boolean result = true ;
+ com.sun.star.util.Time val = oObj.getLast() ;
+
+ log.println("getLast() = " + val) ;
+
+ tRes.tested("getLast()", result) ;
+ }
+
+ /**
+ * Sets the value to empty. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setTime </code> : value must be not empty </li>
+ * </ul>
+ */
+ public void _setEmpty() {
+ requiredMethod("setTime()") ;
+
+ boolean result = true ;
+ oObj.setEmpty() ;
+
+ tRes.tested("setEmpty()", result) ;
+ }
+
+ /**
+ * Checks if the field is empty. <p>
+ * Has <b> OK </b> status if the value is empty.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setEmpty() </code> </li>
+ * </ul>
+ */
+ public void _isEmpty() {
+ requiredMethod("setEmpty()") ;
+
+ boolean result = true ;
+ result = oObj.isEmpty() ;
+
+ tRes.tested("isEmpty()", result) ;
+ }
+
+ /**
+ * Checks strict state. <p>
+ * Has <b> OK </b> status if strict format is set.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isStrictFormat </code> </li>
+ * </ul>
+ */
+ public void _setStrictFormat() {
+ requiredMethod("isStrictFormat()") ;
+
+ boolean result = true ;
+ oObj.setStrictFormat(!strict) ;
+
+ result = oObj.isStrictFormat() == !strict ;
+
+ tRes.tested("setStrictFormat()", result) ;
+ }
+
+ /**
+ * Gets strict state and stores it. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _isStrictFormat() {
+
+ boolean result = true ;
+ strict = oObj.isStrictFormat() ;
+
+ tRes.tested("isStrictFormat()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XToolkit.java b/qadevOOo/tests/java/ifc/awt/_XToolkit.java
new file mode 100644
index 000000000..5cac8c74a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XToolkit.java
@@ -0,0 +1,147 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.WindowDescriptor;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XRegion;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.awt.XToolkit</code>
+* interface methods:
+* <ul>
+* <li><code> getDesktopWindow() </code></li>
+* <li><code> getWorkArea() </code></li>
+* <li><code> createWindow() </code></li>
+* <li><code> createWindows() </code></li>
+* <li><code> createScreenCompatibleDevice() </code></li>
+* <li><code> createRegion() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XToolkit
+*/
+public class _XToolkit extends MultiMethodTest {
+ public XToolkit oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status always, because Desktop component
+ * currently is not supported as visible.
+ */
+ public void _getDesktopWindow() {
+ XWindowPeer win = oObj.getDesktopWindow();
+ if (win == null) {
+ log.println("getDesktopWindow() returns NULL");
+ }
+ tRes.tested("getDesktopWindow()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getWorkArea() {
+ Rectangle area = oObj.getWorkArea();
+ tRes.tested("getWorkArea()", area != null);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _createWindow() {
+ boolean res = false;
+ try {
+ XWindowPeer cWin = oObj.createWindow(
+ createDesc(new Rectangle(0,0,100,100)));
+ if (cWin == null) {
+ log.println("createWindow() create a NULL Object");
+ } else {
+ UnoRuntime.queryInterface(XComponent.class, cWin).dispose();
+ res = true;
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while checking 'createWindow':");
+ ex.printStackTrace(log);
+ }
+ tRes.tested("createWindow()", res);
+ }
+
+ /**
+ * After defining of WindowDescriptor array, test calls the method. <p>
+ * Has <b> OK </b> status if all elements of the returned array are
+ * not null.
+ */
+ public void _createWindows() {
+ boolean res = false;
+ try {
+ WindowDescriptor[] descs = new WindowDescriptor[2];
+ descs[0] = createDesc(new Rectangle(0,0,100,100));
+ descs[1] = createDesc(new Rectangle(100,100,200,200));
+ XWindowPeer[] cWins = oObj.createWindows(descs);
+ if ( (cWins[0] == null) || (cWins[1] == null) ) {
+ log.println("createWindows() creates NULL Windows");
+ } else {
+ UnoRuntime.queryInterface(XComponent.class, cWins[0]).dispose();
+ UnoRuntime.queryInterface(XComponent.class, cWins[1]).dispose();
+ res = true;
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while checking 'createWindows':");
+ ex.printStackTrace(log);
+ }
+ tRes.tested("createWindows()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _createScreenCompatibleDevice() {
+ XDevice dev = oObj.createScreenCompatibleDevice(100, 100);
+ tRes.tested("createScreenCompatibleDevice()", dev != null);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _createRegion() {
+ XRegion reg = oObj.createRegion();
+ tRes.tested("createRegion()", reg != null);
+ }
+
+ /**
+ * Just creates the WindowDescriptor as an argument for createWindow().
+ */
+ public WindowDescriptor createDesc(Rectangle rect) {
+ XWindowPeer win = (XWindowPeer) tEnv.getObjRelation("WINPEER");
+ return new WindowDescriptor(com.sun.star.awt.WindowClass.TOP,
+ "", win, (short) -1, rect, com.sun.star.awt.WindowAttribute.SHOW);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XTopWindow.java b/qadevOOo/tests/java/ifc/awt/_XTopWindow.java
new file mode 100644
index 000000000..91d4d3c36
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XTopWindow.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import java.io.PrintWriter;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XMenuBar;
+import com.sun.star.awt.XTopWindow;
+import com.sun.star.awt.XTopWindowListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.awt.XTopWindow</code>
+* interface methods :
+* <ul>
+* <li><code> addTopWindowListener()</code></li>
+* <li><code> removeTopWindowListener()</code></li>
+* <li><code> toFront()</code></li>
+* <li><code> toBack()</code></li>
+* <li><code> setMenuBar()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XTopWindow
+*/
+public class _XTopWindow extends MultiMethodTest {
+
+ public XTopWindow oObj = null;
+
+ /**
+ * Listener implementation which sets flags on different
+ * method calls.
+ */
+ protected static class TestListener implements XTopWindowListener {
+ private final PrintWriter log;
+ public boolean activated = false ;
+ public boolean deactivated = false ;
+
+ public TestListener(PrintWriter log) {
+ this.log = log ;
+ }
+
+ public void initListener() {
+ activated = false;
+ deactivated = false;
+ }
+
+ public void windowOpened(EventObject e) {
+ log.println("windowOpened() called") ;
+ }
+ public void windowClosing(EventObject e) {
+ log.println("windowClosing() called") ;
+ }
+ public void windowClosed(EventObject e) {
+ log.println("windowClosed() called") ;
+ }
+ public void windowMinimized(EventObject e) {
+ log.println("windowMinimized() called") ;
+ }
+ public void windowNormalized(EventObject e) {
+ log.println("windowNormalized() called") ;
+ }
+ public void windowActivated(EventObject e) {
+ activated = true;
+ log.println("windowActivated() called") ;
+ }
+ public void windowDeactivated(EventObject e) {
+ deactivated = true;
+ log.println("windowDeactivated() called") ;
+ }
+ public void disposing(EventObject e) {}
+ }
+
+ protected TestListener listener = null ;
+
+ XTextDocument aTextDoc = null;
+
+
+ @Override
+ protected void before() {
+ aTextDoc = util.WriterTools.createTextDoc(tParam.getMSF());
+ }
+
+ /**
+ * Adds a listener . <p>
+ *
+ * Has <b>OK</b> status always (listener calls are checked in
+ * other methods. <p>
+ */
+ public void _addTopWindowListener() {
+ listener = new TestListener(log) ;
+
+ oObj.addTopWindowListener(listener) ;
+
+ tRes.tested("addTopWindowListener()", true);
+ }
+
+ /**
+ * Removes a listener added before. <p>
+ * Has <b>OK</b> status always. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> toBack </code> : to have a definite method execution
+ * order.</li>
+ * </ul>
+ */
+ public void _removeTopWindowListener() {
+ executeMethod("toBack()");
+
+ oObj.removeTopWindowListener(listener);
+
+ tRes.tested("removeTopWindowListener()", true);
+ }
+
+ /**
+ * Moves the window to front and check the listener calls. <p>
+ * Has <b>OK</b> status if listener <code>activated</code> method
+ * was called.
+ */
+ public void _toFront() {
+ requiredMethod("addTopWindowListener()");
+ listener.initListener();
+ oObj.toFront();
+ waitForEventIdle();
+
+ tRes.tested("toFront()", listener.activated && !listener.deactivated);
+ }
+
+ /**
+ * This method doesn't do anything the Office implementation. <p>
+ * So it has always <b>OK</b> status
+ */
+ public void _toBack() {
+ oObj.toBack();
+ tRes.tested("toBack()", true);
+ }
+
+ /**
+ * Creates a simple menu bar and adds to the window. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setMenuBar() {
+ XMenuBar menu = null ;
+ boolean result = true ;
+
+ try {
+ menu = UnoRuntime.queryInterface(XMenuBar.class,
+ tParam.getMSF().
+ createInstance("com.sun.star.awt.MenuBar")) ;
+
+ menu.insertItem((short)1, "MenuItem",
+ com.sun.star.awt.MenuItemStyle.CHECKABLE, (short)1) ;
+
+ oObj.setMenuBar(menu) ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't instantiate MenuBar service") ;
+ result = false ;
+ }
+
+ tRes.tested("setMenuBar()", result) ;
+ }
+
+ /**
+ * Disposes the document created in <code>before</code> method.
+ */
+ @Override
+ protected void after() {
+ aTextDoc.dispose();
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XUnoControlContainer.java b/qadevOOo/tests/java/ifc/awt/_XUnoControlContainer.java
new file mode 100644
index 000000000..de59741d4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XUnoControlContainer.java
@@ -0,0 +1,173 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import com.sun.star.awt.XTabController;
+import com.sun.star.awt.XUnoControlContainer;
+import lib.MultiMethodTest;
+
+/**
+ * Testing <code>com.sun.star.awt.XUnoControlContainer</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addTabController()</code></li>
+ * <li><code> removeTabController()</code></li>
+ * <li><code> getTabControllers()</code></li>
+ * <li><code> setTabControllers()</code></li>
+ * </ul> <p>
+ *
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'TABCONTROL1'</code> (of type <code>XTabController</code>)</li>
+* <li> <code>'TABCONTROL2'</code> (of type <code>XTabController</code>)</li>
+ *</ul>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ */
+
+public class _XUnoControlContainer extends MultiMethodTest {
+ public XUnoControlContainer oObj = null;
+ private XTabController[] TabControllers = new XTabController[2];
+ private XTabController tabControl1 = null;
+ private XTabController tabControl2 = null;
+
+ /**
+ * This method gets the object relations.
+ *
+ */
+ @Override
+ protected void before() {
+
+ tabControl1 = (XTabController) tEnv.getObjRelation("TABCONTROL1");
+ tabControl2 = (XTabController) tEnv.getObjRelation("TABCONTROL2");
+ if ((tabControl1 == null) || (tabControl2 == null)){
+ log.println("ERROR: Needed object relations 'TABCONTROL1' and "
+ + "'TABCONTROL2' are not found.");
+ }
+ TabControllers[0] = tabControl1;
+ TabControllers[1] = tabControl2;
+
+ }
+
+
+
+ /**
+ * This tests removes the object relations <code>TABCONTROL1</code> and
+ * <code>TABCONTROL1</code>.
+ * Has <b> OK </b> status if the sequence of <code>XTabController[]</code>
+ * get before calling method is smaller then sequence of
+ * <code>XTabController[]</code> get after calling method.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getTabControllers() </code> </li>
+ * <li> <code> removeTabController() </code> </li>
+ * </ul>
+ */
+ public void _setTabControllers() {
+ requiredMethod( "getTabControllers()");
+ requiredMethod( "removeTabController()");
+
+ log.println("removing TABCONTROL1 and TABCONTROL2");
+ oObj.removeTabController(tabControl1);
+ oObj.removeTabController(tabControl2);
+
+ log.println("get current controllers");
+ XTabController[] myTabControllers = oObj.getTabControllers();
+
+ log.println("set new controllers");
+ oObj.setTabControllers( TabControllers );
+
+ log.println("get new current controllers");
+ XTabController[] myNewTabControllers = oObj.getTabControllers();
+
+ tRes.tested("setTabControllers()",
+ (myTabControllers.length < myNewTabControllers.length ));
+
+ }
+
+ /**
+ * Test calls the method, then checks returned value.<p>
+ * Has <b> OK </b> status if method returns a value that greater than zero.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addTabController() </code></li>
+ * </ul>
+ */
+ public void _getTabControllers() {
+ requiredMethod( "addTabController()");
+ XTabController[] myTabControllers = oObj.getTabControllers();
+ tRes.tested("getTabControllers()", ( myTabControllers.length > 0));
+ }
+
+ /**
+ * Test calls the method with object relation 'TABCONTROL1' as a parameter.<p>
+ * Has <b> OK </b> status if the sequence of <code>XTabController[]</code>
+ * get before calling method is smaller then sequence of
+ * <code>XTabController[]</code> get after calling method.<p>
+ */
+ public void _addTabController() {
+ log.println("get current controllers");
+ XTabController[] myTabControllers = oObj.getTabControllers();
+
+ log.println("add TABCONTROL1");
+ oObj.addTabController( tabControl1 );
+
+ log.println("get new current controllers");
+ XTabController[] myNewTabControllers = oObj.getTabControllers();
+
+ tRes.tested("addTabController()",
+ (myTabControllers.length < myNewTabControllers.length ));
+ }
+
+ /**
+ * Test calls the method with object relation 'TABCONTROL2' as a parameter.<p>
+ * Has <b> OK </b> status if the sequence of <code>XTabController[]</code>
+ * get before calling method is smaller then sequence of
+ * <code>XTabController[]</code> get after calling method.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getTabControllers() </code></li>
+ * <li> <code> addTabController() </code></li>
+ * </ul>
+ */
+ public void _removeTabController() {
+ requiredMethod( "getTabControllers()");
+ requiredMethod( "addTabController()");
+
+ log.println("add TABCONTROL2");
+ oObj.addTabController( tabControl2 );
+
+ log.println("get current controllers");
+ XTabController[] myTabControllers = oObj.getTabControllers();
+
+ log.println("remove TABCONTROL2");
+ oObj.removeTabController(tabControl2);
+
+ log.println("get new current controllers");
+ XTabController[] myNewTabControllers = oObj.getTabControllers();
+
+ tRes.tested("removeTabController()",
+ (myTabControllers.length > myNewTabControllers.length ));
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XView.java b/qadevOOo/tests/java/ifc/awt/_XView.java
new file mode 100644
index 000000000..a7858d037
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XView.java
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XView;
+
+/**
+* Testing <code>com.sun.star.awt.XView</code>
+* interface methods:
+* <ul>
+* <li><code> setGraphics() </code></li>
+* <li><code> getGraphics() </code></li>
+* <li><code> getSize() </code></li>
+* <li><code> draw() </code></li>
+* <li><code> setZoom() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'GRAPHICS'</code> (of type <code>XGraphics</code>):
+* used as a parameter to setGraphics() </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XView
+*/
+public class _XView extends MultiMethodTest {
+ public XView oObj = null;
+
+ /**
+ * After obtaining object relation 'GRAPHICS', test calls the method. <p>
+ * Has <b> OK </b> status if the method returns true.
+ */
+ public void _setGraphics() {
+ XGraphics graph = (XGraphics) tEnv.getObjRelation("GRAPHICS");
+ boolean isSet = oObj.setGraphics(graph);
+ if ( !isSet ) {
+ log.println("setGraphics() returns false");
+ }
+ tRes.tested("setGraphics()", isSet);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setGraphics() </code> : sets the output device </li>
+ * </ul>
+ */
+ public void _getGraphics() {
+ requiredMethod("setGraphics()");
+ XGraphics graph = oObj.getGraphics();
+ if (graph == null) {
+ log.println("getGraphics() returns NULL");
+ }
+ tRes.tested("getGraphics()", graph != null);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns structure with fields that
+ * are not equal to zero. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setGraphics() </code> : sets the output device </li>
+ * </ul>
+ */
+ public void _getSize() {
+ requiredMethod("setGraphics()");
+ Size aSize = oObj.getSize();
+ boolean res = (aSize.Height != 0) && (aSize.Width != 0);
+ if ( !res ) {
+ log.println("Height: " + aSize.Height);
+ log.println("Width: " + aSize.Width);
+ }
+ tRes.tested("getSize()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setGraphics() </code> : sets the output device </li>
+ * </ul>
+ */
+ public void _draw() {
+ requiredMethod("setGraphics()");
+ oObj.draw(20, 20);
+ tRes.tested("draw()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setGraphics() </code> : sets the output device </li>
+ * </ul>
+ */
+ public void _setZoom() {
+ requiredMethod("setGraphics()");
+ oObj.setZoom(2,2);
+ tRes.tested("setZoom()", true);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/_XWindow.java b/qadevOOo/tests/java/ifc/awt/_XWindow.java
new file mode 100644
index 000000000..089118ae7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XWindow.java
@@ -0,0 +1,581 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt;
+
+import com.sun.star.awt.FocusEvent;
+import com.sun.star.awt.KeyEvent;
+import com.sun.star.awt.MouseEvent;
+import com.sun.star.awt.PaintEvent;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.WindowEvent;
+import com.sun.star.awt.XFocusListener;
+import com.sun.star.awt.XKeyListener;
+import com.sun.star.awt.XMouseListener;
+import com.sun.star.awt.XMouseMotionListener;
+import com.sun.star.awt.XPaintListener;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowListener;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.lang.EventObject;
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+/**
+* Testing <code>com.sun.star.awt.XWindow</code>
+* interface methods :
+* <ul>
+* <li><code> setPosSize()</code></li>
+* <li><code> getPosSize()</code></li>
+* <li><code> setVisible()</code></li>
+* <li><code> setEnable()</code></li>
+* <li><code> setFocus()</code></li>
+* <li><code> addWindowListener()</code></li>
+* <li><code> removeWindowListener()</code></li>
+* <li><code> addFocusListener()</code></li>
+* <li><code> removeFocusListener()</code></li>
+* <li><code> addKeyListener()</code></li>
+* <li><code> removeKeyListener()</code></li>
+* <li><code> addMouseListener()</code></li>
+* <li><code> removeMouseListener()</code></li>
+* <li><code> addMouseMotionListener()</code></li>
+* <li><code> removeMouseMotionListener()</code></li>
+* <li><code> addPaintListener()</code></li>
+* <li><code> removePaintListener()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XWindow.AnotherWindow'</code> (of type <code>XWindow</code>):
+* Some another window which can gain focus so the tested one
+* must lost it. </li>
+* <li> <code>'XWindow.ControlShape'</code> <b>optional</b>
+* (of type <code>XControlShape</code>):
+* Some shapes can't change their size within fixed ControlShape
+* and their size could be changed only if size of container
+* ControlShape is changed. For such shapes this relation should
+* be passed for proper <code>addWindowListener</code> test. </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.awt.XWindow
+*/
+public class _XWindow extends MultiMethodTest {
+ public XWindow oObj = null;
+ private Rectangle posSize = null ;
+ private XWindow win = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getPosSize() {
+ posSize = oObj.getPosSize() ;
+ tRes.tested("getPosSize()", posSize != null) ;
+ }
+
+ /**
+ * After defining Rectangle structure to be set, test calls the method. <p>
+ * Has <b> OK </b> status if structure obtained using getPosSize() is
+ * equal to structure previously set using setPosSize(). <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPosSize() </code> : returns the outer bounds of
+ * the window </li>
+ * </ul>
+ */
+ public void _setPosSize() {
+ Rectangle newRec = new Rectangle();
+
+ requiredMethod("getPosSize()");
+ newRec.X = posSize.X + 1;
+ newRec.Y = posSize.Y + 1;
+ newRec.Width = posSize.Width - 3;
+ newRec.Height = posSize.Height - 3;
+ oObj.setPosSize(newRec.X, newRec.Y, newRec.Width, newRec.Height,
+ PosSize.POSSIZE);
+ Rectangle gPS = oObj.getPosSize();
+ log.println("Was : (" + posSize.X + ", " + posSize.Y + ", " +
+ posSize.Width + ", " + posSize.Height + "), ");
+ log.println("Set : (" + newRec.X + ", " + newRec.Y + ", " +
+ newRec.Width + ", " + newRec.Height + "), ");
+ log.println("Get : (" + gPS.X + ", " + gPS.Y + ", " +
+ gPS.Width + ", " + gPS.Height + "). ");
+ tRes.tested("setPosSize()", ValueComparer.equalValue(newRec, gPS) );
+ }
+
+ /**
+ * At first object relation 'XWindow.AnotherWindow' is obtained.
+ * Then test calls the methods of two 'XWindow' objects several times to be
+ * sure that the focus has changed. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setFocus() {
+ win = (XWindow) tEnv.getObjRelation("XWindow.AnotherWindow");
+ oObj.setFocus();
+ win.setFocus();
+ oObj.setFocus();
+ tRes.tested("setFocus()", true);
+ }
+
+ /**
+ * Test calls the method twice with two parameters: 'true' and 'false'. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setVisible() {
+ oObj.setVisible(false);
+ oObj.setVisible(true);
+ tRes.tested("setVisible()", true);
+ }
+
+ /**
+ * Test calls the method twice with two parameters: 'true' and 'false'. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setEnable() {
+ oObj.setEnable(false);
+ oObj.setEnable(true);
+ tRes.tested("setEnable()", true);
+ }
+
+
+ /**
+ * A class we use to test addWindowListener() and
+ * removeWindowListener()
+ */
+ public static class TestWindowListener implements XWindowListener {
+ public boolean resized = false ;
+ public boolean moved = false ;
+ public boolean hidden = false ;
+ public boolean shown = false ;
+
+ public void init() {
+ resized = false ;
+ moved = false ;
+ hidden = false ;
+ shown = false ;
+ }
+
+ public void windowResized(WindowEvent e) {
+ resized = true ;
+ }
+ public void windowMoved(WindowEvent e) {
+ moved = true ;
+ }
+ public void windowHidden(EventObject e) {
+ hidden = true ;
+ }
+ public void windowShown(EventObject e) {
+ shown = true ;
+ }
+ public void disposing(EventObject e) {}
+
+ }
+
+ private final TestWindowListener wListener = new TestWindowListener() ;
+
+
+ /**
+ * Test calls the method. Then we check if listener's methods were called
+ * when we move, resize, hide and show the window. The resizing is
+ * performed depending on 'XWindow.ControlShape' existence. If this
+ * relation exists then the size and position of container control
+ * shape is changed, else the position and size of window itself is
+ * changed<p>
+ *
+ * Has <b> OK </b> status if methods of wListener were called when
+ * corresponding events occurred. <p>
+ *
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> setPosSize() </code>: sets the outer bounds of the
+ * window</li>
+ * <li> <code> setVisible() </code>: shows or hides the window
+ * depending on the parameter</li>
+ * </ul>
+ */
+ public void _addWindowListener() {
+ executeMethod("setPosSize()");
+ executeMethod("setVisible()");
+ boolean result = true ;
+
+ oObj.addWindowListener(wListener);
+
+ // testing wListener.windowMoved()
+ XControlShape ctrlShape = (XControlShape)
+ tEnv.getObjRelation("XWindow.ControlShape");
+ log.println("change object position and size...");
+
+ if (ctrlShape != null) {
+ try {
+ Size sz = ctrlShape.getSize();
+ sz.Height += 100;
+ ctrlShape.setSize(sz);
+ Point pos = ctrlShape.getPosition();
+ pos.X += 100 ;
+ ctrlShape.setPosition(pos);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't change size or position: ");
+ e.printStackTrace(log);
+ }
+ } else {
+ oObj.setPosSize(posSize.X + 2, 0, 0, 0, PosSize.X);
+ oObj.setPosSize(0, 0, 100, 100, PosSize.WIDTH);
+ }
+
+ waitForEventIdle();
+ boolean res = wListener.resized && wListener.moved &&
+ !wListener.hidden && !wListener.shown;
+ result &= res;
+ if (!res) {
+ log.println("\twindowHidden() wasn't called: " + !wListener.hidden);
+ log.println("\twindowShown() wasn't called: " + !wListener.shown);
+ log.println("\twindowResized() was called: " + wListener.resized);
+ log.println("\twindowMoved() was called: " + wListener.moved);
+ } else {
+ log.println("windowMoved() and windowResized() was called");
+ }
+
+ // testing wListener.windowHidden()
+ wListener.init();
+ waitForEventIdle();
+ log.println("set object invisible...");
+ oObj.setVisible(false);
+ waitForEventIdle();
+ res = wListener.hidden && !wListener.resized
+ && !wListener.moved && !wListener.shown;
+ result &= res;
+ if (!res) {
+ log.println("\twindowHidden() was called: " + wListener.hidden);
+ log.println("\twindowShown() wasn't called: " + !wListener.shown);
+ log.println("\twindowResized() wasn't called: " + !wListener.resized);
+ log.println("\twindowMoved() wasn't called: " + !wListener.moved);
+ } else {
+ log.println("windowHidden() was called");
+ }
+
+ // testing wListener.windowShown()
+ wListener.init() ;
+ waitForEventIdle();
+ log.println("set object visible...");
+ oObj.setVisible(true) ;
+ waitForEventIdle();
+ res = wListener.shown && !wListener.resized &&
+ !wListener.hidden && !wListener.moved;
+ result &= res;
+ if (!res) {
+ log.println("\twindowHidden() wasn't called: " + !wListener.hidden);
+ log.println("\twindowShown() was called: " + wListener.shown);
+ log.println("\twindowResized() wasn't called: " + !wListener.resized);
+ log.println("\twindowMoved() wasn't called: " + !wListener.moved);
+ } else {
+ log.println("windowShown() was called");
+ }
+
+ tRes.tested("addWindowListener()", result) ;
+ }
+
+
+ /**
+ * Test calls the method. Then we change window and check that listener's
+ * methods were not called. <p>
+ * Has <b> OK </b> status if listener does not react on window events.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addWindowListener() </code>: adds window listener to the
+ * object </li>
+ * </ul>
+ */
+ public void _removeWindowListener() {
+ requiredMethod("addWindowListener()");
+ oObj.removeWindowListener(wListener);
+ wListener.init();
+ oObj.setPosSize(posSize.X, posSize.Y,
+ posSize.Width , posSize.Height, PosSize.POSSIZE);
+ oObj.setVisible(false);
+ oObj.setVisible(true);
+ boolean res = !(wListener.resized || wListener.moved
+ || wListener.hidden || wListener.shown);
+
+ tRes.tested("removeWindowListener()", res);
+ }
+
+ /**
+ * A class we use to test addFocusListener() and
+ * removeFocusListener()
+ */
+ public static class TestFocusListener implements XFocusListener {
+ public boolean gained = false ;
+ public boolean lost = false ;
+
+ public void focusGained(FocusEvent e) {
+ gained = true ;
+ }
+ public void focusLost(FocusEvent e) {
+ lost = true ;
+ }
+ public void init() {
+ gained = false;
+ lost = false;
+ }
+ public void disposing(EventObject e) {}
+
+ }
+
+ private final TestFocusListener fListener = new TestFocusListener();
+
+ /**
+ * Test calls the method. Then we change focus and check that listener's
+ * methods were called. <p>
+ * Has <b> OK </b> status if methods of fListener were called when
+ * corresponding events occurred. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setFocus() </code>: sets the focus to the window </li>
+ * </ul>
+ */
+ public void _addFocusListener() {
+ boolean result = true ;
+
+ requiredMethod("setFocus()");
+ oObj.addFocusListener(fListener) ;
+
+ // testing fListener.lost()
+ oObj.setFocus();
+ waitForEventIdle();
+ win.setFocus();
+ waitForEventIdle();
+ result &= fListener.lost;
+ if (!fListener.lost) {
+ log.println("Lost focus was not notified about") ;
+ }
+
+ // testing fListener.gained()
+ oObj.setFocus() ;
+ waitForEventIdle();
+ result &= fListener.gained;
+ if (!fListener.gained) {
+ log.println("Gained focus was not notified about") ;
+ }
+
+ tRes.tested("addFocusListener()", result) ;
+ }
+
+ /**
+ * Test calls the method. Then we change focus and check that listener's
+ * methods were not called. <p>
+ * Has <b> OK </b> status if listener does not react on focus changing. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addFocusListener() </code> : adds focus listener to
+ * the object </li>
+ * </ul>
+ */
+ public void _removeFocusListener() {
+ requiredMethod("addFocusListener()");
+ oObj.removeFocusListener(fListener);
+ fListener.init();
+ oObj.setFocus();
+ win.setFocus();
+ oObj.setFocus();
+ boolean res = !(fListener.gained || fListener.lost);
+ tRes.tested("removeFocusListener()", res);
+ }
+
+ /**
+ * A class we use to test addKeyListener() and
+ * removeKeyListener()
+ */
+ public static class TestKeyListener implements XKeyListener {
+ public void keyPressed(KeyEvent e) {}
+ public void keyReleased(KeyEvent e) {}
+ public void disposing(EventObject e) {}
+ public void init() {}
+ }
+
+ private final TestKeyListener kListener = new TestKeyListener();
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _addKeyListener() {
+ oObj.addKeyListener(kListener);
+ tRes.tested("addKeyListener()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addKeyListener() </code> : adds key listener to
+ * the object </li>
+ * </ul>
+ */
+ public void _removeKeyListener() {
+ requiredMethod("addKeyListener()");
+ oObj.removeKeyListener(kListener);
+ tRes.tested("removeKeyListener()", true);
+ }
+
+ /**
+ * A class we use to test addMouseListener() and
+ * removeMouseListener()
+ */
+ public static class TestMouseListener implements XMouseListener {
+
+ public void mousePressed(MouseEvent e) {
+ }
+
+ public void mouseReleased(MouseEvent e) {
+ }
+
+ public void mouseEntered(MouseEvent e) {
+ }
+
+ public void mouseExited(MouseEvent e) {
+ }
+
+ public void disposing(EventObject e) {}
+
+ public void init() {
+ }
+
+ }
+
+ private final TestMouseListener mListener = new TestMouseListener();
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _addMouseListener() {
+ oObj.addMouseListener(mListener);
+ tRes.tested("addMouseListener()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addMouseListener() </code> : adds mouse listener to
+ * the object</li>
+ * </ul>
+ */
+ public void _removeMouseListener() {
+ requiredMethod("addMouseListener()");
+ oObj.removeMouseListener(mListener);
+ tRes.tested("removeMouseListener()", true);
+ }
+
+ /**
+ * A class we use to test addMouseMotionListener() and
+ * removeMouseMotionListener()
+ */
+ public static class TestMouseMotionListener implements XMouseMotionListener {
+
+ public void mouseDragged(MouseEvent e) {
+ }
+
+ public void mouseMoved(MouseEvent e) {
+ }
+
+ public void disposing(EventObject e) {
+ }
+
+ public void init() {
+ }
+
+ }
+
+ private final TestMouseMotionListener mmListener = new TestMouseMotionListener();
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _addMouseMotionListener() {
+ oObj.addMouseMotionListener(mmListener);
+ tRes.tested("addMouseMotionListener()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addMouseMotionListener() </code> : adds mouse motion
+ * listener to the object</li>
+ * </ul>
+ */
+ public void _removeMouseMotionListener() {
+ requiredMethod("addMouseMotionListener()");
+ oObj.removeMouseMotionListener(mmListener);
+ tRes.tested("removeMouseMotionListener()", true);
+ }
+
+ /**
+ * A class we use to test addPaintListener() and
+ * removePaintListener()
+ */
+ public static class TestPaintListener implements XPaintListener {
+
+ public void windowPaint(PaintEvent e) {
+ }
+
+ public void disposing(EventObject e) {}
+
+ public void init() {
+ }
+
+ }
+
+ private final TestPaintListener pListener = new TestPaintListener();
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _addPaintListener() {
+ oObj.addPaintListener(pListener);
+ tRes.tested("addPaintListener()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addPaintListener() </code> : adds paint listener to
+ * the object </li>
+ * </ul>
+ */
+ public void _removePaintListener() {
+ requiredMethod("addPaintListener()");
+ oObj.removePaintListener(pListener);
+ tRes.tested("removePaintListener()", true);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/awt/tree/_TreeControlModel.java b/qadevOOo/tests/java/ifc/awt/tree/_TreeControlModel.java
new file mode 100644
index 000000000..2cf028c07
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/tree/_TreeControlModel.java
@@ -0,0 +1,28 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt.tree;
+
+import lib.MultiPropertyTest;
+
+/*
+* Testing <code>com.sun.star.awt.tree.TreeControlModel</code>
+* service properties </br>
+* @see com.sun.star.awt.tree.TreeControlModel
+*/
+public class _TreeControlModel extends MultiPropertyTest { }
diff --git a/qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeDataModel.java b/qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeDataModel.java
new file mode 100644
index 000000000..5b5976055
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeDataModel.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt.tree;
+
+import com.sun.star.awt.tree.XMutableTreeDataModel;
+import com.sun.star.awt.tree.XMutableTreeNode;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.awt.tree.XMutableTreeDataModel</code>
+* interface methods :
+* <ul>
+* <li><code> createNode()</code></li>
+* <li><code> setRoot()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+
+* @see com.sun.star.awt.tree.XMutableTreeDataModel
+*/
+public class _XMutableTreeDataModel extends MultiMethodTest {
+
+ public XMutableTreeDataModel oObj = null;
+
+ private XMutableTreeNode mNewNode = null;
+
+ /**
+ * Sets the title to some string. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurs.
+ */
+ public void _createNode() {
+
+ mNewNode = oObj.createNode("Hallo Welt", true);
+
+ tRes.tested("createNode()", true) ;
+ }
+
+ /**
+ * Gets the title and compares it to the value set in
+ * <code>setTitle</code> method test. <p>
+ * Has <b>OK</b> status is set/get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setTitle </code> </li>
+ * </ul>
+ */
+ public void _setRoot() {
+ requiredMethod("createNode()") ;
+
+ boolean bOK = true;
+ try {
+
+ oObj.setRoot(mNewNode);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: while trying to set a new root an IllegalArgumentException was thrown:\n" + ex.toString());
+ }
+
+ try {
+
+ oObj.setRoot(null);
+ bOK = false;
+ log.println("ERROR: while trying to set a null object as root expected IllegalArgumentException was not thrown.");
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected IllegalArgumentException was thrown => ok");
+
+ }
+
+ tRes.tested("setRoot()", bOK);
+
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeNode.java b/qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeNode.java
new file mode 100644
index 000000000..76c7e6cac
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeNode.java
@@ -0,0 +1,285 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt.tree;
+
+import com.sun.star.awt.tree.XMutableTreeNode;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.awt.tree.XTreeDataModel</code>
+ * interface methods :
+ * <ul>
+ * <li><code> appendChild()</code></li>
+ * <li><code> insertChildByIndex()</code></li>
+ * <li><code> removeChildByIndex()</code></li>
+ * <li><code> setHasChildrenOnDemand()</code></li>
+ * <li><code> setDisplayValue()</code></li>
+ * <li><code> setNodeGraphicURL()</code></li>
+ * <li><code> setExpandedGraphicURL()</code></li>
+ * <li><code> setCollapsedGraphicURL()</code></li>
+ * <li><code> DataValue()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ * @see com.sun.star.awt.tree.XTreeDataModel
+ */
+public class _XMutableTreeNode extends MultiMethodTest {
+
+ public XMutableTreeNode oObj = null;
+
+ private XMutableTreeNodeCreator nodeCreator = null;
+
+ public interface XMutableTreeNodeCreator{
+ XMutableTreeNode createNode(String name);
+ }
+
+ @Override
+ public void before(){
+ nodeCreator = (XMutableTreeNodeCreator) tEnv.getObjRelation("XMutableTreeNodeCreator");
+ if (nodeCreator == null){
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XMutableTreeNodeCreator'"));
+ }
+
+ }
+
+ public void _appendChild(){
+ boolean bOK = true;
+
+ log.println("try to append a valid node...");
+
+ XMutableTreeNode myNode = nodeCreator.createNode("myNodeToAppend");
+
+ try {
+ oObj.appendChild(myNode);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not append a valid node: " + ex.toString());
+ bOK = false;
+ }
+
+ log.println("try to append the node a second time...");
+ try {
+
+ oObj.appendChild(myNode);
+ log.println("ERROR: expected IllegalArgumentException was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected IllegalArgumentException was thrown => OK");
+ }
+
+ log.println("try to append the object itself...");
+ try {
+
+ oObj.appendChild(oObj);
+ log.println("ERROR: expected IllegalArgumentException was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected IllegalArgumentException was thrown => OK");
+ }
+
+ tRes.tested("appendChild()", bOK);
+ }
+
+ public void _insertChildByIndex(){
+ boolean bOK = true;
+
+ XMutableTreeNode myNode = nodeCreator.createNode("myNodeToInsert");
+
+ try {
+ log.println("try to insert a valid node...");
+ oObj.insertChildByIndex(0, myNode);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not insert a valid node: " + ex.toString());
+ bOK = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: could not insert a valid node on index '0': " + ex.toString());
+ bOK = false;
+ }
+
+ try {
+ log.println("try to insert a valid node a second time...");
+ oObj.insertChildByIndex(0, myNode);
+ log.println("ERROR: expected IllegalArgumentException was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected IllegalArgumentException wa thrown => OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: wrong IndexOutOfBoundsException was thrown. Expected is IllegalArgumentException => FAILED");
+ bOK = false;
+ }
+
+ XMutableTreeNode myNode2 = nodeCreator.createNode("myNodeToInsert2");
+
+ try {
+ log.println("try to insert a valid node on invalid index '-3'...");
+ oObj.insertChildByIndex(-3, myNode2);
+ log.println("ERROR: expected IndexOutOfBoundsException was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: wrong IllegalArgumentException was thrown. Expected is IndexOutOfBoundsException => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("Expected IndexOutOfBoundsException was thrown => OK");
+ }
+
+ try {
+ log.println("try to insert the object itself...");
+ oObj.insertChildByIndex(0, oObj);
+ log.println("ERROR: expected IllegalArgumentException was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected IllegalArgumentException was thrown => OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("unexpected IndexOutOfBoundsException was thrown, expected was IllegalArgumentException => FAILED");
+ bOK = false;
+ }
+
+ tRes.tested("insertChildByIndex()", bOK);
+ }
+
+ public void _removeChildByIndex(){
+
+ requiredMethod("insertChildByIndex()");
+ boolean bOK = true;
+
+ try {
+ log.println("try to remove node at index '0'...");
+ oObj.removeChildByIndex(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: IndexOutOfBoundsException was thrown => FAILED");
+ bOK = false;
+ }
+
+ try {
+ log.println("try to remove node at invalid index '-3'");
+ oObj.removeChildByIndex(-3);
+ log.println("ERROR: expected IndexOutOfBoundsException was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("expected IndexOutOfBoundsException was thrown => OK");
+ }
+ tRes.tested("removeChildByIndex()", bOK);
+ }
+
+ public void _setHasChildrenOnDemand(){
+ boolean bOK = true;
+
+ log.println("setHasChildrenOnDemand(true)");
+ oObj.setHasChildrenOnDemand(true);
+
+ log.println("setHasChildrenOnDemand(false)");
+ oObj.setHasChildrenOnDemand(false);
+
+ tRes.tested("setHasChildrenOnDemand()", bOK);
+ }
+
+ public void _setDisplayValue(){
+ boolean bOK = true;
+
+ log.println("setDisplayValue(\"MyTestValue\")");
+ oObj.setDisplayValue("MyTestValue");
+
+ log.println("setDisplayValue(null)");
+ oObj.setDisplayValue(null);
+
+ log.println("oObj.setDisplayValue(oObj)");
+ oObj.setDisplayValue(oObj);
+
+ tRes.tested("setDisplayValue()", bOK);
+ }
+
+ public void _setNodeGraphicURL(){
+ boolean bOK = true;
+
+ log.println("setNodeGraphicURL(\"MyTestURL\")");
+ oObj.setNodeGraphicURL("MyTestURL");
+
+ log.println("setNodeGraphicURL(null)");
+ oObj.setNodeGraphicURL(null);
+
+ tRes.tested("setNodeGraphicURL()", bOK);
+ }
+
+ public void _setExpandedGraphicURL(){
+ boolean bOK = true;
+
+ log.println("setExpandedGraphicURL(\"myExpandedURL\")");
+ oObj.setExpandedGraphicURL("myExpandedURL");
+
+ log.println("setExpandedGraphicURL(null)");
+ oObj.setExpandedGraphicURL(null);
+
+ tRes.tested("setExpandedGraphicURL()", bOK);
+ }
+
+ public void _setCollapsedGraphicURL(){
+ boolean bOK = true;
+
+ log.println("setCollapsedGraphicURL(\"myCollapsedURL\")");
+ oObj.setCollapsedGraphicURL("myCollapsedURL");
+
+ log.println("setCollapsedGraphicURL(null)");
+ oObj.setCollapsedGraphicURL(null);
+
+ tRes.tested("setCollapsedGraphicURL()", bOK);
+ }
+
+ public void _DataValue(){
+ boolean bOK = true;
+
+ log.println("setDataValue(\"myDataValue\")");
+ oObj.setDataValue("myDataValue");
+
+ String sDataValue = (String) oObj.getDataValue();
+
+ if ( ! sDataValue.equals("myDataValue")) {
+ log.println("ERROR: getDataValue does not return the value which is inserted before:\n" +
+ "\texpected: myDataValue\n" +
+ "\tgot: " + sDataValue);
+ bOK = false;
+ }
+
+ log.println("setDataValue(null)");
+ oObj.setDataValue(null);
+
+ Object oDataValue = oObj.getDataValue();
+ if ( oDataValue != null) {
+ log.println("ERROR: getDataValue does not return the value which is inserted before:\n" +
+ "\texpected: null\n" +
+ "\tgot: " + oDataValue.toString());
+ bOK = false;
+ }
+
+ log.println("oObj.setDisplayValue(oObj)");
+ oObj.setDisplayValue(oObj);
+
+ oDataValue = oObj.getDataValue();
+ if ( oDataValue != null) {
+ log.println("ERROR: getDataValue does not return the value which is inserted before:\n" +
+ "\texpected: " + oObj.toString() +"\n" +
+ "\tgot: " + oDataValue.toString());
+ bOK = false;
+ }
+
+ tRes.tested("DataValue()", bOK);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/awt/tree/_XTreeControl.java b/qadevOOo/tests/java/ifc/awt/tree/_XTreeControl.java
new file mode 100644
index 000000000..e3c124d0a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/tree/_XTreeControl.java
@@ -0,0 +1,640 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt.tree;
+
+import com.sun.star.awt.tree.ExpandVetoException;
+import com.sun.star.awt.tree.TreeExpansionEvent;
+import com.sun.star.awt.tree.XMutableTreeNode;
+import com.sun.star.awt.tree.XTreeControl;
+import com.sun.star.awt.tree.XTreeEditListener;
+import com.sun.star.awt.tree.XTreeExpansionListener;
+import com.sun.star.awt.tree.XTreeNode;
+import com.sun.star.lang.EventObject;
+import com.sun.star.util.VetoException;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.awt.tree.XTreeControl</code>
+ * interface methods :
+ * <ul>
+ * <li><code> isNodeExpanded()</code></li>
+ * <li><code> isNodeCollapsed()</code></li>
+ * <li><code> makeNodeVisible()</code></li>
+ * <li><code> isNodeVisible()</code></li>
+ * <li><code> expandNode()</code></li>
+ * <li><code> collapseNode()</code></li>
+ * <li><code> addTreeExpansionListener()</code></li>
+ * <li><code> removeTreeExpansionListener()</code></li>
+ * <li><code> getNodeForLocation()</code></li>
+ * <li><code> getClosestNodeForLocation()</code></li>
+ * <li><code> isEditing()</code></li>
+ * <li><code> stopEditing()</code></li>
+ * <li><code> cancelEditing()</code></li>
+ * <li><code> startEditingAtNode()</code></li>
+ * <li><code> addTreeEditListener()</code></li>
+ * <li><code> removeTreeEditListener()</code></li>
+ * <li><code> DefaultExpandedGraphicURL()</code></li>
+ * <li><code> DefaultCollapsedGraphicURL()</code></li>* </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ * @see com.sun.star.awt.tree.XTreeControl
+ */
+public class _XTreeControl extends MultiMethodTest {
+
+ public XTreeControl oObj = null;
+
+ private XMutableTreeNode mXNode = null;
+
+ XTreeExpansionListener mTreeExpansionListener1 = new TreeExpansionListenerImpl1();
+
+ XTreeExpansionListener mTreeExpansionListener2 = new TreeExpansionListenerImpl2();
+
+ XTreeEditListener mTreeEditListener1 = new TreeEditListenerImpl1();
+
+ XTreeEditListener mTreeEditListener2 = new TreeEditListenerImpl2();
+
+ boolean mTreeExpanded1 = false;
+ boolean mTreeExpanding1 = false;
+ boolean mTreeCollapsed1 = false;
+ boolean mTreeCollapsing1 = false;
+
+ boolean mTreeExpanded2 = false;
+ boolean mTreeExpanding2 = false;
+ boolean mTreeCollapsed2 = false;
+ boolean mTreeCollapsing2 = false;
+
+ public interface XTreeDataModelListenerEvent{
+ void fireEvent();
+ }
+
+ public class TreeExpansionListenerImpl1 implements XTreeExpansionListener{
+ public void requestChildNodes(TreeExpansionEvent treeExpansionEvent) {
+ log.println("event at ExpansionListener 1: requestChildNodes");
+ }
+
+ public void treeExpanding(TreeExpansionEvent treeExpansionEvent) throws ExpandVetoException {
+ log.println("event at ExpansionListener 1: treeExpanding");
+ mTreeExpanding1 = true;
+ }
+
+ public void treeCollapsing(TreeExpansionEvent treeExpansionEvent) throws ExpandVetoException {
+ log.println("event at ExpansionListener 1: treeCollapsing");
+ mTreeCollapsing1 = true;
+ }
+
+ public void treeExpanded(TreeExpansionEvent treeExpansionEvent) {
+ log.println("event at ExpansionListener 1: treeExpanded");
+ mTreeExpanded1 = true;
+ }
+
+ public void treeCollapsed(TreeExpansionEvent treeExpansionEvent) {
+ log.println("event at ExpansionListener 1: treeCollapsed");
+ mTreeCollapsed1 = true;
+ }
+
+ public void disposing(EventObject eventObject) {
+ log.println("event at ExpansionListener 1: disposing");
+ }
+ }
+
+ public class TreeExpansionListenerImpl2 implements XTreeExpansionListener{
+ public void requestChildNodes(TreeExpansionEvent treeExpansionEvent) {
+ log.println("event at ExpansionListener 2: requestChildNodes");
+ }
+
+ public void treeExpanding(TreeExpansionEvent treeExpansionEvent) throws ExpandVetoException {
+ log.println("event at ExpansionListener 2: treeExpanding");
+ mTreeExpanding2 = true;
+ }
+
+ public void treeCollapsing(TreeExpansionEvent treeExpansionEvent) throws ExpandVetoException {
+ log.println("event at ExpansionListener 2: treeCollapsing");
+ mTreeCollapsing2 = true;
+ }
+
+ public void treeExpanded(TreeExpansionEvent treeExpansionEvent) {
+ log.println("event at ExpansionListener 2: treeExpanded");
+ mTreeExpanded2 = true;
+ }
+
+ public void treeCollapsed(TreeExpansionEvent treeExpansionEvent) {
+ log.println("event at ExpansionListener 2: treeCollapsed");
+ mTreeCollapsed2 = true;
+ }
+
+ public void disposing(EventObject eventObject) {
+ log.println("event at ExpansionListener 2: disposing");
+ }
+
+ }
+
+ public class TreeEditListenerImpl1 implements XTreeEditListener{
+ public void nodeEditing(XTreeNode xTreeNode) throws VetoException {
+ log.println("event at EditListener 1: nodeEditing");
+ }
+
+ public void nodeEdited(XTreeNode xTreeNode, String string) {
+ log.println("event at EditListener 1: nodeEdited");
+ }
+
+ public void disposing(EventObject eventObject) {
+ log.println("event at EditListener 1: disposing");
+ }
+ }
+
+ public class TreeEditListenerImpl2 implements XTreeEditListener{
+ public void nodeEditing(XTreeNode xTreeNode) throws VetoException {
+ log.println("event at EditListener 2: nodeEditing");
+ }
+
+ public void nodeEdited(XTreeNode xTreeNode, String string) {
+ log.println("event at EditListener 2: nodeEdited");
+ }
+
+ public void disposing(EventObject eventObject) {
+ log.println("event at EditListener 2: disposing");
+ }
+ }
+
+ private void resetTreeExpandingListener(){
+ mTreeExpanded1 = false;
+ mTreeExpanded2 = false;
+ mTreeCollapsed1 = false;
+ mTreeCollapsed2 = false;
+ mTreeExpanding1 = false;
+ mTreeExpanding2 = false;
+ mTreeCollapsing1 = false;
+ mTreeCollapsing2 = false;
+ }
+
+ @Override
+ public void before(){
+ mXNode = (XMutableTreeNode) tEnv.getObjRelation("XTreeControl_Node");
+ if (mXNode == null) {
+ throw new StatusException(Status.failed("ERROR: could not get object relation 'XTreeControl_Node'"));
+ }
+ }
+
+ public void _isNodeExpanded() {
+
+ boolean bOK = true;
+
+ boolean isExpanded = false;
+
+ try {
+ isExpanded = oObj.isNodeExpanded(mXNode);
+ log.println("node is expanded: " + isExpanded);
+
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not query for 'isNodeExpanded()': " + ex.toString());
+ }
+
+ if (isExpanded)
+ try {
+
+ log.println("try to collapse node...");
+ oObj.collapseNode(mXNode);
+
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ }
+ else
+ try {
+
+ log.println("try to expand node...");
+ oObj.expandNode(mXNode);
+
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ }
+
+ try {
+
+ boolean isAlsoExpanded = oObj.isNodeExpanded(mXNode);
+
+ bOK &= (isExpanded != isAlsoExpanded);
+
+ log.println("node is expanded: " + isAlsoExpanded + " => " + bOK);
+
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not query for 'isNodeExpanded()': " + ex.toString());
+ }
+
+ tRes.tested("isNodeExpanded()", bOK);
+
+ }
+ public void _isNodeCollapsed(){
+
+ boolean bOK = true;
+
+ boolean isCollapsed = false;
+
+ try {
+ isCollapsed = oObj.isNodeCollapsed(mXNode);
+ log.println("node is Collapsed: " + isCollapsed);
+
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not query for 'isNodeCollapsed()': " + ex.toString());
+ }
+
+ if ( ! isCollapsed)
+ try {
+
+ log.println("try to collapse node...");
+ oObj.collapseNode(mXNode);
+
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ }
+ else
+ try {
+
+ log.println("try to expand node...");
+ oObj.expandNode(mXNode);
+
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ }
+
+ try {
+
+ boolean isAlsoCollapsed = oObj.isNodeCollapsed(mXNode);
+
+ bOK &= (isCollapsed != isAlsoCollapsed);
+
+ log.println("node is Collapsed: " + isAlsoCollapsed + " => " + bOK);
+
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not query for 'isNodeCollapsed()': " + ex.toString());
+ }
+
+ tRes.tested("isNodeCollapsed()", bOK);
+
+ }
+ public void _makeNodeVisible(){
+
+ boolean bOK = true;
+ try {
+
+ oObj.makeNodeVisible(mXNode);
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not call method 'makeNodeVisible()' successfully: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not call method 'makeNodeVisible()' successfully: " + ex.toString());
+ }
+ try {
+
+ bOK &= oObj.isNodeVisible(mXNode);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not call method 'isNodeVisible()' successfully: " + ex.toString());
+ }
+
+ tRes.tested("makeNodeVisible()", bOK);
+
+ }
+ public void _isNodeVisible(){
+
+ this.requiredMethod("makeNodeVisible()");
+
+ boolean bOK = true;
+ log.println("since required method 'makeNodeVisible()' uses method 'isNodeVisible()' this test is ok.");
+ tRes.tested("isNodeVisible()", bOK);
+
+ }
+
+ public void _expandNode(){
+
+ this.requiredMethod("isNodeExpanded()");
+
+ boolean bOK = true;
+ log.println("since required method 'isnodeExpanded()' uses method 'expandNode()' this test is ok.");
+ tRes.tested("expandNode()", bOK);
+
+ }
+
+ public void _collapseNode(){
+
+ this.requiredMethod("isNodeCollapsed()");
+
+ boolean bOK = true;
+ log.println("since required method 'isnodeCollapsed()' uses method 'expandNode()' this test is ok.");
+ tRes.tested("collapseNode()", bOK);
+
+ }
+
+ public void _addTreeExpansionListener(){
+
+ boolean bOK = true;
+
+ log.println("collapse Node to get an initial status...");
+ try {
+
+ oObj.collapseNode(mXNode);
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ }
+
+ log.println("add mTreeExpansionListener1...");
+ oObj.addTreeExpansionListener(mTreeExpansionListener1);
+
+ log.println("add mTreeExpansionListener2");
+ oObj.addTreeExpansionListener(mTreeExpansionListener2);
+
+ resetTreeExpandingListener();
+
+ log.println("expand Node...");
+ try {
+
+ oObj.expandNode(mXNode);
+
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ }
+
+ bOK &= mTreeExpanded1 & mTreeExpanded2 & ! mTreeCollapsed1 & ! mTreeCollapsed2
+ & mTreeExpanding1 & mTreeExpanding2 & ! mTreeCollapsing1 & ! mTreeCollapsing2;
+
+ resetTreeExpandingListener();
+
+ log.println("collapse Node...");
+ try {
+
+ oObj.collapseNode(mXNode);
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ }
+
+ bOK &= ! mTreeExpanded1 & ! mTreeExpanded2 & mTreeCollapsed1 & mTreeCollapsed2
+ & ! mTreeExpanding1 & ! mTreeExpanding2 & mTreeCollapsing1 & mTreeCollapsing2;
+
+ tRes.tested("addTreeExpansionListener()", bOK);
+
+ }
+
+ public void _removeTreeExpansionListener(){
+
+ this.requiredMethod("addTreeExpansionListener()");
+
+ boolean bOK = true;
+
+ log.println("collapse Node to get an initial status...");
+ try {
+
+ oObj.collapseNode(mXNode);
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ }
+
+ resetTreeExpandingListener();
+
+ log.println("remove mTreeExpansionListener2 ...");
+ oObj.removeTreeExpansionListener(mTreeExpansionListener2);
+
+ log.println("expand Node...");
+ try {
+
+ oObj.expandNode(mXNode);
+
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not expand node: " + ex.toString());
+ }
+
+ bOK &= mTreeExpanded1 & ! mTreeExpanded2 & ! mTreeCollapsed1 & ! mTreeCollapsed2
+ & mTreeExpanding1 & ! mTreeExpanding2 & ! mTreeCollapsing1 & ! mTreeCollapsing2;
+
+ resetTreeExpandingListener();
+
+ log.println("collapse Node...");
+ try {
+
+ oObj.collapseNode(mXNode);
+ } catch (ExpandVetoException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ bOK = false;
+ log.println("ERROR: could not collapse node: " + ex.toString());
+ }
+
+ bOK &= ! mTreeExpanded1 & ! mTreeExpanded2 & mTreeCollapsed1 & ! mTreeCollapsed2
+ & ! mTreeExpanding1 & ! mTreeExpanding2 & mTreeCollapsing1 & ! mTreeCollapsing2;
+
+ log.println("remove mTreeExpansionListener2 ...");
+ oObj.removeTreeExpansionListener(mTreeExpansionListener2);
+
+ tRes.tested("removeTreeExpansionListener()", bOK);
+
+ }
+
+ public void _getNodeForLocation(){
+
+ boolean bOK = false;
+
+
+ tRes.tested("getNodeForLocation()", bOK);
+
+ }
+
+ public void _getClosestNodeForLocation(){
+
+ boolean bOK = false;
+
+ log.println("try to get Node for location 100,100");
+ XTreeNode myNode = oObj.getClosestNodeForLocation(100,100);
+
+ bOK &= (myNode != null);
+
+ tRes.tested("getClosestNodeForLocation()", bOK);
+
+ }
+
+ public void _isEditing(){
+
+ boolean bOK = false;
+
+ log.println("not ready because of i78701");
+
+ tRes.tested("isEditing()", bOK);
+
+ }
+
+ public void _stopEditing(){
+
+ boolean bOK = false;
+ log.println("not ready because of i78701");
+
+
+ tRes.tested("stopEditing()", bOK);
+
+ }
+
+ public void _cancelEditing(){
+
+ boolean bOK = false;
+
+ log.println("not ready because of i78701");
+
+ tRes.tested("cancelEditing()", bOK);
+
+ }
+
+ public void _startEditingAtNode(){
+
+ boolean bOK = false;
+
+ log.println("not ready because of i78701");
+
+ tRes.tested("startEditingAtNode()", bOK);
+
+ }
+
+ public void _addTreeEditListener(){
+
+ boolean bOK = true;
+
+ log.println("add EditListener 1...");
+ oObj.addTreeEditListener(mTreeEditListener1);
+
+ log.println("add EditListener 2...");
+ oObj.addTreeEditListener(mTreeEditListener2);
+
+ try {
+ oObj.startEditingAtNode(mXNode);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not start editing at node: " + ex.toString());
+ bOK = false;
+ }
+
+ log.println("not ready because of i78701");
+ bOK = false;
+
+
+ tRes.tested("addTreeEditListener()", bOK);
+
+ }
+
+ public void _removeTreeEditListener(){
+
+ boolean bOK = false;
+
+ log.println("not ready because of i78701");
+
+ tRes.tested("removeTreeEditListener()", bOK);
+
+ }
+
+ public void _DefaultExpandedGraphicURL(){
+
+ boolean bOK = true;
+
+ String current = oObj.getDefaultExpandedGraphicURL();
+ log.println("current DefaultExpandedGraphicURL: " + current);
+
+ String changeUrl = null;
+
+ if (current.equals("private:graphicrepository/sd/res/triangle_right.png"))
+ changeUrl = "private:graphicrepository/sd/res/triangle_down.png";
+ else changeUrl = "private:graphicrepository/sd/res/triangle_right.png";
+
+ log.println("try to set '" + changeUrl + "' as new DefaultExpandedGraphicURL");
+
+ oObj.setDefaultExpandedGraphicURL(changeUrl);
+
+ String newUrl = oObj.getDefaultExpandedGraphicURL();
+
+ log.println("new DefaultExpandedGraphicURL: " + newUrl);
+
+ bOK &= ! newUrl.equals(current);
+
+ tRes.tested("DefaultExpandedGraphicURL()", bOK);
+
+ }
+
+ public void _DefaultCollapsedGraphicURL(){
+
+ boolean bOK = true;
+
+ String current = oObj.getDefaultCollapsedGraphicURL();
+ log.println("current DefaultCollapsedGraphicURL: " + current);
+
+ String changeUrl = null;
+
+ if (current.equals("private:graphicrepository/sd/res/triangle_right.png"))
+ changeUrl = "private:graphicrepository/sd/res/triangle_down.png";
+ else changeUrl = "private:graphicrepository/sd/res/triangle_right.png";
+
+ log.println("try to set '" + changeUrl + "' as new DefaultCollapsedGraphicURL");
+ oObj.setDefaultCollapsedGraphicURL(changeUrl);
+
+ String newUrl = oObj.getDefaultCollapsedGraphicURL();
+
+ log.println("new DefaultCollapsedGraphicURL: " + newUrl);
+
+ bOK &= ! newUrl.equals(current);
+
+ tRes.tested("DefaultCollapsedGraphicURL()", bOK);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/tree/_XTreeDataModel.java b/qadevOOo/tests/java/ifc/awt/tree/_XTreeDataModel.java
new file mode 100644
index 000000000..3c544efd5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/tree/_XTreeDataModel.java
@@ -0,0 +1,171 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt.tree;
+
+import com.sun.star.awt.tree.TreeDataModelEvent;
+import com.sun.star.awt.tree.XTreeDataModel;
+import com.sun.star.awt.tree.XTreeDataModelListener;
+import com.sun.star.lang.EventObject;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.awt.tree.XTreeDataModel</code>
+ * interface methods :
+ * <ul>
+ * <li><code> createNode()</code></li>
+ * <li><code> setRoot()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ * @see com.sun.star.awt.tree.XTreeDataModel
+ */
+public class _XTreeDataModel extends MultiMethodTest {
+
+ public XTreeDataModel oObj = null;
+
+ XTreeDataModelListener mListener1 = new myEventListener1();
+
+ XTreeDataModelListener mListener2 = new myEventListener2();
+
+ XTreeDataModelListenerEvent mListenerEvent = null;
+
+ boolean mTreeStructureChanged1 = false;
+
+ boolean mTreeStructureChanged2 = false;
+
+ public interface XTreeDataModelListenerEvent{
+ void fireEvent();
+ }
+
+ public class myEventListener1 implements XTreeDataModelListener{
+ public void treeNodesChanged(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 1: treeNodesChanged");
+ }
+
+ public void treeNodesInserted(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 1: treeNodesInserted");
+ }
+
+ public void treeNodesRemoved(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 1: treeNodesRemoved");
+ }
+
+ public void treeStructureChanged(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 1: treeStructureChanged");
+ mTreeStructureChanged1 = true;
+ }
+
+ public void disposing(EventObject eventObject) {
+ log.println("Listener 1: disposing");
+ }
+ }
+
+ public class myEventListener2 implements XTreeDataModelListener{
+ public void treeNodesChanged(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 2: treeNodesChanged");
+ }
+
+ public void treeNodesInserted(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 2: treeNodesInserted");
+ }
+
+ public void treeNodesRemoved(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 2: treeNodesRemoved");
+ }
+
+ public void treeStructureChanged(TreeDataModelEvent treeDataModelEvent) {
+ log.println("Listener 2: treeStructureChanged");
+ mTreeStructureChanged2 = true;
+ }
+
+ public void disposing(EventObject eventObject) {
+ log.println("Listener 2: disposing");
+ }
+
+ }
+
+ @Override
+ public void before(){
+ mListenerEvent = (XTreeDataModelListenerEvent) tEnv.getObjRelation("XTreeDataModelListenerEvent");
+ if (mListenerEvent == null) {
+ throw new StatusException(Status.failed("ERROR: could not get object relation 'XTreeDataModelListenerEvent'\n" +
+ "This object relation must be kind of 'ifc.awt.tree._XTreeDataModel.XTreeDataModelListenerEvent'"));
+ }
+ }
+
+ /**
+ * Gets the title and compares it to the value set in
+ * <code>setTitle</code> method test. <p>
+ * Has <b>OK</b> status is set/get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setTitle </code> </li>
+ * </ul>
+ */
+ public void _getRoot() {
+
+ boolean bOK = true;
+ oObj.getRoot();
+
+ tRes.tested("getRoot()", bOK);
+
+ }
+
+ public void _addTreeDataModelListener(){
+
+ boolean bOK = true;
+
+ log.println("add listener 1 to object...");
+ oObj.addTreeDataModelListener(mListener1);
+
+ log.println("add listener 2 to object...");
+ oObj.addTreeDataModelListener(mListener2);
+
+ mTreeStructureChanged1 = false;
+ mTreeStructureChanged2 = false;
+
+ mListenerEvent.fireEvent();
+
+ bOK = mTreeStructureChanged1 & mTreeStructureChanged2;
+
+ tRes.tested("addTreeDataModelListener()", bOK);
+ }
+
+ public void _removeTreeDataModelListener(){
+
+ boolean bOK = true;
+
+ log.println("remove listener 2 from object...");
+ oObj.removeTreeDataModelListener(mListener2);
+
+ mTreeStructureChanged1 = false;
+ mTreeStructureChanged2 = false;
+
+ mListenerEvent.fireEvent();
+
+ bOK = mTreeStructureChanged1 & ! mTreeStructureChanged2;
+
+ tRes.tested("removeTreeDataModelListener()", bOK);
+
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/awt/tree/_XTreeNode.java b/qadevOOo/tests/java/ifc/awt/tree/_XTreeNode.java
new file mode 100644
index 000000000..f0ca8ae9f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/tree/_XTreeNode.java
@@ -0,0 +1,259 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.awt.tree;
+
+import com.sun.star.awt.tree.XTreeNode;
+import com.sun.star.uno.AnyConverter;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.awt.tree.XTreeDataModel</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getChildAt()</code></li>
+ * <li><code> getChildCount()</code></li>
+ * <li><code> getParent()</code></li>
+ * <li><code> getIndex()</code></li>
+ * <li><code> hasChildrenOnDemand()</code></li>
+ * <li><code> getDisplayValue()</code></li>
+ * <li><code> getNodeGraphicURL()</code></li>
+ * <li><code> getExpandedGraphicURL()</code></li>
+ * <li><code> getCollapsedGraphicURL()</code></li> * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ * @see com.sun.star.awt.tree.XTreeDataModel
+ */
+public class _XTreeNode extends MultiMethodTest {
+
+ public XTreeNode oObj = null;
+
+ private int mCount = 0;
+
+ String msDisplayValue = null;
+ String msExpandedGraphicURL = null;
+ String msCollapsedGraphicURL = null;
+ String msNodeGraphicURL = null;
+
+
+ @Override
+ public void before(){
+ msDisplayValue = (String) tEnv.getObjRelation("XTreeNode_DisplayValue");
+ if (msDisplayValue == null){
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XTreeNode_DisplayValue'"));
+ }
+
+ msExpandedGraphicURL = (String) tEnv.getObjRelation("XTreeNode_ExpandedGraphicURL");
+ if (msExpandedGraphicURL == null){
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XTreeNode_ExpandedGraphicURL'"));
+ }
+
+ msCollapsedGraphicURL = (String) tEnv.getObjRelation("XTreeNode_CollapsedGraphicURL");
+ if (msCollapsedGraphicURL == null){
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XTreeNode_CollapsedGraphicURL'"));
+ }
+
+ msNodeGraphicURL = (String) tEnv.getObjRelation("XTreeNode_NodeGraphicURL");
+ if(msNodeGraphicURL == null){
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XTreeNode_NodeGraphicURL'"));
+ }
+
+ }
+
+ /**
+ * Gets the title and compares it to the value set in
+ * <code>setTitle</code> method test. <p>
+ * Has <b>OK</b> status is set/get values are equal.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setTitle </code> </li>
+ * </ul>
+ */
+ public void _getChildAt(){
+ this.requiredMethod("getChildCount()");
+ boolean bOK = true;
+
+ for (int i=0; i < mCount ; i++){
+ XTreeNode xNode = null;
+ try {
+ xNode = oObj.getChildAt(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: getChildAt(" + i + "): " + ex.toString());
+ }
+ if (xNode == null){
+ log.println("ERROR: getChildAt(" + i + ") returns null => FAILED");
+ bOK = false;
+ }
+ }
+
+ tRes.tested("getChildAt()", bOK);
+ }
+
+
+ public void _getChildCount(){
+
+ boolean bOK = true;
+ mCount = oObj.getChildCount();
+ log.println("got count '" + mCount + "' of children");
+ if (mCount < 1 ) {
+ log.println("ERROR: got a count < 1. The test object must support more than zero children => FAILED");
+ bOK = false;
+ }
+ tRes.tested("getChildCount()", bOK);
+ }
+
+
+ public void _getParent(){
+ this.requiredMethod("getChildAt()");
+
+ boolean bOK = true;
+ XTreeNode xNode = null;
+ try {
+ log.println("try to getChildAt(0)");
+ xNode = oObj.getChildAt(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: getChildAt(0): " + ex.toString());
+ }
+
+ log.println("try to get parent of children");
+ if (xNode == null) {
+ log.println("missing xNode");
+ tRes.tested("getParent()", false);
+ }
+ else {
+ XTreeNode xParrent = xNode.getParent();
+
+
+ bOK = oObj.equals(xParrent);
+ log.println("original object and parent should be the same: " + bOK);
+ tRes.tested("getParent()", bOK);
+ }
+ }
+
+
+ public void _getIndex(){
+ this.requiredMethod("getChildAt()");
+
+ boolean bOK = true;
+ XTreeNode xNode = null;
+ try {
+ log.println("try to getChildAt(0)");
+ xNode = oObj.getChildAt(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: getChildAt(0): " + ex.toString());
+ }
+
+ log.println("try to get index from child...");
+ int index = oObj.getIndex(xNode);
+
+ if (index != 0){
+ log.println("ERROR: getIndex() does not return '0' => FAILED");
+ bOK = false;
+ }
+
+ tRes.tested("getIndex()", bOK);
+ }
+
+
+ public void _hasChildrenOnDemand(){
+
+ boolean bOK = true;
+
+ bOK = oObj.hasChildrenOnDemand();
+ tRes.tested("hasChildrenOnDemand()", bOK);
+ }
+
+
+ public void _getDisplayValue(){
+
+ boolean bOK = true;
+ String DisplayValue = null;
+ Object dispVal = oObj.getDisplayValue();
+
+ try {
+ DisplayValue = AnyConverter.toString(dispVal);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not convert the returned object of 'getDisplayValue()' " +
+ "to String with AnyConverter: " + ex.toString());
+ }
+
+ if ( ! this.msDisplayValue.equals(DisplayValue)){
+ log.println("ERROR: getNodeGraphicURL() does not return expected value:\n" +
+ "\tExpected: " + this.msDisplayValue +"\n" +
+ "\tGot: " + DisplayValue);
+ bOK = false;
+ }
+
+ tRes.tested("getDisplayValue()", bOK);
+ }
+
+
+ public void _getNodeGraphicURL(){
+
+ boolean bOK = true;
+ String graphicURL = oObj.getNodeGraphicURL();
+
+ if ( ! this.msNodeGraphicURL.equals(graphicURL)){
+ log.println("ERROR: getNodeGraphicURL() does not return expected value:\n" +
+ "\tExpected: " + this.msNodeGraphicURL +"\n" +
+ "\tGot: " + graphicURL);
+ bOK = false;
+ }
+ tRes.tested("getNodeGraphicURL()", bOK);
+ }
+
+
+ public void _getExpandedGraphicURL(){
+
+ boolean bOK = true;
+ String ExpandedGraphicURL = oObj.getExpandedGraphicURL();
+
+ if ( ! this.msExpandedGraphicURL.equals(ExpandedGraphicURL)){
+ log.println("ERROR: getExpandedGraphicURL() does not return expected value:\n" +
+ "\tExpected: " + this.msExpandedGraphicURL +"\n" +
+ "\tGot: " + ExpandedGraphicURL);
+ bOK = false;
+ }
+
+ tRes.tested("getExpandedGraphicURL()", bOK);
+ }
+
+
+ public void _getCollapsedGraphicURL(){
+
+ boolean bOK = true;
+
+ String CollapsedGraphicURL = oObj.getCollapsedGraphicURL();
+
+ if ( ! this.msCollapsedGraphicURL.equals(CollapsedGraphicURL)){
+ log.println("ERROR: getExpandedGraphicURL() does not return expected value:\n" +
+ "\tExpected: " + this.msCollapsedGraphicURL +"\n" +
+ "\tGot: " + CollapsedGraphicURL);
+ bOK = false;
+ }
+
+ tRes.tested("getCollapsedGraphicURL()", bOK);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/beans/_XExactName.java b/qadevOOo/tests/java/ifc/beans/_XExactName.java
new file mode 100644
index 000000000..033426e22
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XExactName.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XExactName;
+
+
+public class _XExactName extends MultiMethodTest {
+ protected String expectedName = "";
+ public XExactName oObj = null;
+
+ public void _getExactName() {
+ String nameFor = expectedName.toLowerCase();
+
+ log.println("Getting exact name for " + nameFor);
+
+ String getting = oObj.getExactName(nameFor);
+
+ boolean res = true;
+
+ if (getting == null) {
+ res = false;
+ } else {
+ if (!getting.equals(expectedName)) {
+ log.println("didn't get the expected Name:");
+ log.println("getting: " + getting);
+ log.println("Expected: " + expectedName);
+ res = false;
+ }
+ }
+
+ nameFor = expectedName.toUpperCase();
+
+ log.println("Getting exact name for " + nameFor);
+ getting = oObj.getExactName(nameFor);
+
+ if (getting == null) {
+ res = false;
+ } else {
+ if (!getting.equals(expectedName)) {
+ log.println("didn't get the expected Name:");
+ log.println("getting: " + getting);
+ log.println("Expected: " + expectedName);
+ res = false;
+ }
+ }
+
+ tRes.tested("getExactName()", res);
+ }
+
+ /**
+ * Checking if the Object relation expectedName is given
+ * throw a StatusException if not.
+ */
+ @Override
+ protected void before() {
+ expectedName = (String) tEnv.getObjRelation("expectedName");
+
+ if (expectedName == null) {
+ throw new StatusException(Status.failed(
+ "Object relation expectedName is missing"));
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/beans/_XFastPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XFastPropertySet.java
new file mode 100644
index 000000000..8ab74dcda
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XFastPropertySet.java
@@ -0,0 +1,236 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.Set;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+import util.ValueChanger;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XFastPropertySet;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.beans.XFastPropertySet</code>
+* interface methods :
+* <ul>
+* <li><code> setFastPropertyValue()</code></li>
+* <li><code> getFastPropertyValue()</code></li>
+* </ul> <p>
+* Required relations :
+* <ul>
+* <li> <code>'XFastPropertySet.ExcludeProps'</code>
+* <b>(optional) </b> : java.util.Set.
+* Has property names which must be skipped from testing in
+* some reasons (for example property accepts restricted set
+* of values).
+* </li>
+* <ul> <p>
+* @see com.sun.star.beans.XFastPropertySet
+*/
+public class _XFastPropertySet extends MultiMethodTest {
+ private static final class Prop {
+ public final int handle;
+ public final String name;
+
+ public Prop(int handle, String name) {
+ this.handle = handle;
+ this.name = name;
+ }
+ }
+
+ public XFastPropertySet oObj = null;
+ private final List<Prop> props = new ArrayList<Prop>();
+ private Prop prop;
+ private Set<String> exclude = null ;
+
+ /**
+ * Retrieves relation.
+ */
+ @Override
+ protected void before() {
+ exclude = (Set<String>) tEnv.getObjRelation("XFastPropertySet.ExcludeProps") ;
+ if (exclude == null) {
+ exclude = new java.util.HashSet<String>() ;
+ }
+ }
+
+ /**
+ * Test selects random property which can not be VOID and
+ * is writable, then change property value using <code>
+ * get/set</code> methods, and checks if value properly changed.
+ * Has <b> OK </b> status if value after change is not equal to value
+ * before and no exceptions were thrown. <p>
+ */
+ public void _setFastPropertyValue() {
+ XPropertySet PS = UnoRuntime.queryInterface
+ (XPropertySet.class, oObj);
+ XPropertySetInfo propertySetInfo = PS.getPropertySetInfo();
+
+ if (propertySetInfo == null) {
+ log.println("getPropertySetInfo() method returned null");
+ tRes.tested("setFastPropertyValue()", false) ;
+ }
+ getPropsToTest(propertySetInfo);
+
+ Object gValue = null;
+ Object sValue = null;
+
+ if ( prop.handle == -1) {
+ log.println("*** No changeable properties found ***");
+ tRes.tested("setFastPropertyValue()", false) ;
+ } else {
+ try {
+ gValue = oObj.getFastPropertyValue(prop.handle);
+ sValue = ValueChanger.changePValue(gValue, prop.name);
+ oObj.setFastPropertyValue(prop.handle, sValue);
+ sValue = oObj.getFastPropertyValue(prop.handle);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to change property with handle = " + prop.handle);
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while trying to change property with handle = " + prop.handle);
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occurred while trying to change property with handle = " + prop.handle);
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change property with handle = " + prop.handle);
+ e.printStackTrace(log);
+ }
+
+ tRes.tested("setFastPropertyValue()",(!gValue.equals(sValue)));
+ }
+ }
+
+ /**
+ * Test selects random property which can not be VOID and
+ * is writable, then calls the method and checks that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if exceptions were thrown. <p>
+ */
+ public void _getFastPropertyValue() {
+ XPropertySet PS = UnoRuntime.queryInterface
+ (XPropertySet.class, oObj);
+ XPropertySetInfo propertySetInfo = PS.getPropertySetInfo();
+
+ if (propertySetInfo == null) {
+ log.println("getPropertySetInfo() method returned null");
+ tRes.tested("getFastPropertyValue()", false) ;
+ }
+
+ getPropsToTest(propertySetInfo);
+
+ try {
+ oObj.getFastPropertyValue(prop.handle);
+ tRes.tested("getFastPropertyValue()",true);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to get property '"
+ + prop.handle +"'");
+ e.printStackTrace(log);
+ tRes.tested("getFastPropertyValue()",false);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while trying to get property '"
+ + prop.handle +"'");
+ e.printStackTrace(log);
+ tRes.tested("getFastPropertyValue()",false);
+ }
+ }
+
+
+ //Get the properties being tested
+ private void getPropsToTest(XPropertySetInfo xPSI) {
+
+ Property[] properties = xPSI.getProperties();
+
+ for (int i = 0; i < properties.length; i++) {
+ if (exclude.contains(properties[i].Name)) continue ;
+ Property property = properties[i];
+ String name = property.Name;
+ int handle = property.Handle;
+ log.println("Checking '" + name + "' with handle = " + handle);
+ boolean isWritable =
+ ((property.Attributes & PropertyAttribute.READONLY) == 0);
+ boolean isNotNull =
+ ((property.Attributes & PropertyAttribute.MAYBEVOID) == 0);
+ boolean canChange = false;
+ if ( isWritable && isNotNull )
+ canChange = isChangeable(handle, name);
+ if ( isWritable && isNotNull && canChange)
+ props.add(new Prop(handle, name));
+ } // endfor
+
+ Random rnd = new Random();
+ int nr = rnd.nextInt(props.size());
+ prop = props.get(nr);
+ }
+
+ private boolean isChangeable(int handle, String name) {
+ boolean hasChanged = false;
+ try {
+ Object getProp = oObj.getFastPropertyValue(handle);
+ Object setValue = null;
+
+ if (getProp != null)
+ setValue = ValueChanger.changePValue(getProp, name);
+ else
+ log.println("Property with handle = " + handle
+ + " is null but 'MAYBEVOID' isn't set");
+ if (setValue != null) {
+ oObj.setFastPropertyValue(handle, setValue);
+ hasChanged =
+ (!getProp.equals(oObj.getFastPropertyValue(handle)));
+ }
+ else
+ log.println("Couldn't change Property with handle " + handle);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Property with handle " + handle + " throws exception");
+ e.printStackTrace(log);
+ throw new StatusException("Property with handle " + handle
+ + " throws exception", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Property with handle " + handle + " throws exception");
+ e.printStackTrace(log);
+ throw new StatusException("Property with handle " + handle
+ + " throws exception", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Property with handle " + handle + " throws exception");
+ e.printStackTrace(log);
+ throw new StatusException("Property with handle " + handle
+ + " throws exception", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Property with handle " + handle + " throws exception");
+ e.printStackTrace(log);
+ throw new StatusException("Property with handle " + handle
+ + " throws exception", e);
+ }
+
+ return hasChanged;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XHierarchicalPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XHierarchicalPropertySet.java
new file mode 100644
index 000000000..c7cc8faf7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XHierarchicalPropertySet.java
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.beans;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import util.ValueChanger;
+import util.ValueComparer;
+
+import com.sun.star.beans.XHierarchicalPropertySet;
+import com.sun.star.beans.XHierarchicalPropertySetInfo;
+
+
+public class _XHierarchicalPropertySet extends MultiMethodTest {
+ public XHierarchicalPropertySet oObj;
+
+ public void _getHierarchicalPropertySetInfo() {
+ XHierarchicalPropertySetInfo hpsi = oObj.getHierarchicalPropertySetInfo();
+ boolean res = true;
+
+ if (hpsi == null) {
+ log.println(
+ "The component doesn't provide HierarchicalPropertySetInfo");
+ tRes.tested("getHierarchicalPropertySetInfo()",
+ Status.skipped(true));
+
+ return;
+ }
+
+ tRes.tested("getHierarchicalPropertySetInfo()", res);
+ }
+
+ public void _getHierarchicalPropertyValue() {
+ String[] pNames = (String[]) tEnv.getObjRelation("PropertyNames");
+ String[] pTypes = (String[]) tEnv.getObjRelation("PropertyTypes");
+ boolean res = true;
+
+ for (int i = 0; i < pNames.length; i++) {
+ try {
+ log.print("Property " + pNames[i]);
+
+ Object getting = oObj.getHierarchicalPropertyValue(pNames[i]);
+ log.println(" has Value " + getting.toString());
+ res &= checkType(pNames[i], pTypes[i], getting);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(" is unknown");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(" is illegal");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(" throws exception " + e.getMessage());
+ }
+ }
+
+ tRes.tested("getHierarchicalPropertyValue()", res);
+ }
+
+ public void _setHierarchicalPropertyValue() {
+ String ro = (String) tEnv.getObjRelation("allReadOnly");
+
+ if (ro != null) {
+ log.println(ro);
+ tRes.tested("setHierarchicalPropertyValue()", Status.skipped(true));
+
+ return;
+ }
+
+ boolean res = true;
+
+ String[] pNames = (String[]) tEnv.getObjRelation("PropertyNames");
+
+ for (int k = 0; k < pNames.length; k++) {
+ try {
+ Object oldValue = oObj.getHierarchicalPropertyValue(pNames[k]);
+ Object newValue = ValueChanger.changePValue(oldValue);
+ oObj.setHierarchicalPropertyValue(pNames[k], newValue);
+
+ Object getValue = oObj.getHierarchicalPropertyValue(pNames[k]);
+ boolean localRes = ValueComparer.equalValue(getValue, newValue);
+
+ if (!localRes) {
+ log.println("Expected " + newValue.toString());
+ log.println("Gained " + getValue.toString());
+ }
+
+
+ //reset Value
+ oObj.setHierarchicalPropertyValue(pNames[k], oldValue);
+
+ res &= localRes;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Property is unknown");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("IllegalArgument "+e.getMessage());
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("VetoException "+e.getMessage());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("WrappedTarget "+e.getMessage());
+ }
+
+ }
+
+ tRes.tested("setHierarchicalPropertyValue()", res);
+ }
+
+ protected boolean checkType(String name, String type, Object value) {
+ boolean result = true;
+
+ if (type.equals("Boolean")) {
+ result = (value instanceof Boolean);
+
+ if (!result) {
+ log.println("Wrong Type for property " + name);
+ log.println("Expected " + type);
+ log.println("getting " + value.getClass());
+ }
+ } else if (type.equals("Short")) {
+ result = (value instanceof Short);
+
+ if (!result) {
+ log.println("Wrong Type for property " + name);
+ log.println("Expected " + type);
+ log.println("getting " + value.getClass());
+ }
+ }
+
+ return result;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/beans/_XIntrospection.java b/qadevOOo/tests/java/ifc/beans/_XIntrospection.java
new file mode 100644
index 000000000..79d7d1767
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XIntrospection.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XIntrospection;
+import com.sun.star.beans.XIntrospectionAccess;
+
+/**
+* Testing <code>com.sun.star.beans.XIntrospection</code>
+* interface methods :
+* <ul>
+* <li><code> inspect() </code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.beans.XIntrospection
+*/
+public class _XIntrospection extends MultiMethodTest {
+
+ public XIntrospection oObj = null;
+
+ /**
+ * Test inspects the object tested, and checks if it
+ * has a base <code>XInterface</code> method
+ * <code>acquire</code>.
+ */
+ public void _inspect() {
+ boolean result = true;
+ XIntrospectionAccess xIA = oObj.inspect(oObj);
+ result = xIA.hasMethod("acquire",1);
+ tRes.tested("inspect()",result);
+ }
+
+} // finish class _XIntrospection
+
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XMultiHierarchicalPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XMultiHierarchicalPropertySet.java
new file mode 100644
index 000000000..10b1c8ce9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XMultiHierarchicalPropertySet.java
@@ -0,0 +1,139 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.beans;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import util.ValueChanger;
+import util.ValueComparer;
+
+import com.sun.star.beans.XHierarchicalPropertySetInfo;
+import com.sun.star.beans.XMultiHierarchicalPropertySet;
+
+
+public class _XMultiHierarchicalPropertySet extends MultiMethodTest {
+ public XMultiHierarchicalPropertySet oObj;
+
+ public void _getHierarchicalPropertySetInfo() {
+ XHierarchicalPropertySetInfo hpsi = oObj.getHierarchicalPropertySetInfo();
+ boolean res = true;
+
+ if (hpsi == null) {
+ log.println(
+ "The component doesn't provide HierarchicalPropertySetInfo");
+ tRes.tested("getHierarchicalPropertySetInfo()",
+ Status.skipped(true));
+
+ return;
+ }
+
+ tRes.tested("getMultiHierarchicalPropertySetInfo()", res);
+ }
+
+ public void _getHierarchicalPropertyValues() {
+ String[] pNames = (String[]) tEnv.getObjRelation("PropertyNames");
+ String[] pTypes = (String[]) tEnv.getObjRelation("PropertyTypes");
+ boolean res = true;
+
+ try {
+ Object[] getting = oObj.getHierarchicalPropertyValues(pNames);
+ res &= checkType(pNames, pTypes, getting);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception " + e.getMessage());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception " + e.getMessage());
+ }
+
+ tRes.tested("getHierarchicalPropertyValues()", res);
+ }
+
+ public void _setHierarchicalPropertyValues() {
+ String ro = (String) tEnv.getObjRelation("allReadOnly");
+
+ if (ro != null) {
+ log.println(ro);
+ tRes.tested("setHierarchicalPropertyValues()",
+ Status.skipped(true));
+
+ return;
+ }
+
+ String[] pNames = (String[]) tEnv.getObjRelation("PropertyNames");
+ boolean res = true;
+
+ try {
+ Object[] oldValues = oObj.getHierarchicalPropertyValues(pNames);
+ Object[] newValues = new Object[oldValues.length];
+
+ for (int k = 0; k < oldValues.length; k++) {
+ newValues[k] = ValueChanger.changePValue(oldValues[k]);
+ }
+
+ oObj.setHierarchicalPropertyValues(pNames, newValues);
+
+ Object[] getValues = oObj.getHierarchicalPropertyValues(pNames);
+
+ for (int k = 0; k < pNames.length; k++) {
+ boolean localRes = ValueComparer.equalValue(getValues[k],
+ newValues[k]);
+
+ if (!localRes) {
+ log.println("didn't work for " + pNames[k]);
+ log.println("Expected " + newValues[k].toString());
+ log.println("Getting " + getValues[k].toString());
+ }
+ //reset properties
+ oObj.setHierarchicalPropertyValues(pNames, oldValues);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("IllegalArgument " + e.getMessage());
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("VetoException " + e.getMessage());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("WrappedTarget " + e.getMessage());
+ }
+
+ tRes.tested("setHierarchicalPropertyValues()", res);
+ }
+
+ protected boolean checkType(String[] name, String[] type, Object[] value) {
+ boolean result = true;
+
+ for (int k = 0; k < name.length; k++) {
+ if (type[k].equals("Boolean")) {
+ result &= (value[k] instanceof Boolean);
+
+ if (!(value[k] instanceof Boolean)) {
+ log.println("Wrong Type for property " + name[k]);
+ log.println("Expected " + type[k]);
+ log.println("getting " + value[k].getClass());
+ }
+ } else if (type[k].equals("Short")) {
+ result &= (value[k] instanceof Short);
+
+ if (!(value[k] instanceof Short)) {
+ log.println("Wrong Type for property " + name[k]);
+ log.println("Expected " + type[k]);
+ log.println("getting " + value[k].getClass());
+ }
+ }
+ }
+
+ return result;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/beans/_XMultiPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XMultiPropertySet.java
new file mode 100644
index 000000000..e23e3845d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XMultiPropertySet.java
@@ -0,0 +1,363 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import java.util.HashSet;
+import java.util.ArrayList;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.Arrays;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import util.ValueChanger;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.PropertyChangeEvent;
+import com.sun.star.beans.XMultiPropertySet;
+import com.sun.star.beans.XPropertiesChangeListener;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.lang.EventObject;
+
+
+/**
+* Testing <code>com.sun.star.beans.XMultiPropertySet</code>
+* interface methods :
+* <ul>
+* <li><code> getPropertySetInfo()</code></li>
+* <li><code> setPropertyValues()</code></li>
+* <li><code> getPropertyValues()</code></li>
+* <li><code> addPropertiesChangeListener()</code></li>
+* <li><code> removePropertiesChangeListener()</code></li>
+* <li><code> firePropertiesChangeEvent()</code></li>
+* </ul> <p>
+*
+* Required relations :
+* <ul>
+* <li> <code>'XMultiPropertySet.ExcludeProps'</code>
+* <b>(optional) </b> : java.util.Set.
+* Has property names which must be skipped from testing in
+* some reasons (for example property accepts restricted set
+* of values).
+* </li>
+* <ul> <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.beans.XMultiPropertySet
+*/
+public class _XMultiPropertySet extends MultiMethodTest {
+
+ public XMultiPropertySet oObj = null;
+
+ private boolean propertiesChanged = false;
+ private XPropertySetInfo propertySetInfo = null;
+ private String [] testPropsNames = null;
+ private int testPropsAmount = 0;
+ private Object[] values = null;
+
+ private Set<String> exclProps = null;
+
+ /**
+ * Initializes some fields.
+ */
+ @Override
+ public void before() {
+ exclProps = (Set<String>) tEnv.getObjRelation("XMultiPropertySet.ExcludeProps");
+ if (exclProps == null) exclProps = new HashSet<String>(0);
+ }
+
+ /**
+ * Listener implementation which sets a flag when
+ * listener was called.
+ */
+ public class MyChangeListener implements XPropertiesChangeListener {
+ public void propertiesChange(PropertyChangeEvent[] e) {
+ propertiesChanged = true;
+ }
+ public void disposing (EventObject obj) {}
+ }
+
+ private final XPropertiesChangeListener PClistener =
+ new MyChangeListener();
+
+ /**
+ * Test calls the method and checks return value.
+ * <code>PropertySetInfo</code> object is stored<p>
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getPropertySetInfo() {
+ boolean bResult = true;
+ propertySetInfo = oObj.getPropertySetInfo();
+
+ if (propertySetInfo == null) {
+ log.println("getPropertySetInfo() method returned null");
+ bResult = false;
+ }
+
+ tRes.tested("getPropertySetInfo()", bResult) ;
+ }
+
+
+ /**
+ * Test collects all property names and retrieves their values,
+ * then checks the value returned. Finally it also collects
+ * bound properties for other methods tests.<p>
+ * Has <b> OK </b> status if the method returns non null value
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPropertySetInfo() </code> : to have a list
+ * of properties.</li>
+ * </ul>
+ */
+ public void _getPropertyValues() {
+ requiredMethod("getPropertySetInfo()");
+ boolean bResult = true;
+
+ Property[] properties = propertySetInfo.getProperties();
+
+ ArrayList<String> allFilteredNames = new ArrayList<String>();
+ ArrayList<Property> allFilteredProperties = new ArrayList<Property>();
+
+ String[] skipNames = (String[]) tEnv.getObjRelation("SkipProperties");
+
+ for (int i = 0; i < properties.length; i++) {
+ if (skipNames == null || !Arrays.asList(skipNames).contains(properties[i].Name))
+ {
+ allFilteredNames.add(properties[i].Name);
+ allFilteredProperties.add(properties[i]);
+ }
+ }
+
+ String[] arrayAllFilteredNames = allFilteredNames.toArray(new String[allFilteredNames.size()]);
+
+ values = oObj.getPropertyValues(arrayAllFilteredNames);
+
+ bResult &= values!=null;
+ tRes.tested("getPropertyValues()", bResult) ;
+
+ Property[] arrayFilteredProperties = allFilteredProperties.toArray(new Property[allFilteredProperties.size()]);
+
+ getPropsToTest(arrayFilteredProperties);
+ }
+
+ /**
+ * Test adds listener for all bound properties then each property
+ * is changed and listener call . <p>
+ * Has <b> OK </b> status if on each property change the listener was
+ * called and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPropertyValues() </code> : to collect bound
+ * properties.</li>
+ * </ul>
+ */
+ public void _addPropertiesChangeListener() {
+
+ requiredMethod("getPropertyValues()");
+
+ // Creating listener
+ oObj.addPropertiesChangeListener(testPropsNames, PClistener);
+
+ if ((testPropsAmount==1) && (testPropsNames[0].equals("none"))) {
+ testPropsAmount = 0;
+ }
+
+ if (testPropsAmount == 0) {
+ log.println("all properties are read only");
+ tRes.tested("addPropertiesChangeListener()", Status.skipped(true));
+ return;
+ }
+
+ // Change one of the property to be sure that this event was caught.
+ for (int i=0; i<testPropsAmount;i++) {
+ log.print("Trying to change property " + testPropsNames[i]);
+ try {
+ Object[] gValues = oObj.getPropertyValues(testPropsNames);
+ Object newValue = ValueChanger.changePValue(gValues[i]);
+ gValues[i] = newValue;
+ propertiesChanged = false;
+ oObj.setPropertyValues(testPropsNames, gValues);
+ log.println(" ... done");
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+testPropsNames[i] + "' :" + e);
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+testPropsNames[i] + "' :" + e);
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+testPropsNames[i] + "' :" + e);
+ e.printStackTrace(log);
+ } // end of try-catch
+ }
+ waitForEventIdle();
+ tRes.tested("addPropertiesChangeListener()", propertiesChanged);
+ }
+
+ /**
+ * Calls method and check if listener was called. <p>
+ * Has <b> OK </b> status if the listener was
+ * called and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addPropertiesChangeListener() </code> : listener to
+ * be added.</li>
+ * </ul>
+ */
+ public void _firePropertiesChangeEvent() {
+ requiredMethod("addPropertiesChangeListener()");
+ propertiesChanged = false ;
+
+ oObj.firePropertiesChangeEvent(testPropsNames, PClistener);
+ waitForEventIdle();
+
+ tRes.tested("firePropertiesChangeEvent()", propertiesChanged);
+ }
+
+
+ /**
+ * Removes listener added before. <p>
+ * Has <b> OK </b> status no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addPropertiesChangeListener() </code> : listener to
+ * be added.</li>
+ * </ul>
+ */
+ public void _removePropertiesChangeListener() {
+ requiredMethod("firePropertiesChangeEvent()");
+ boolean bResult = true;
+
+ oObj.removePropertiesChangeListener(PClistener);
+
+ tRes.tested("removePropertiesChangeListener()", bResult);
+ }
+
+
+ /**
+ * Changes all properties, then set them to new values, get them
+ * and checks if their values were changed properly. <p>
+ * Has <b> OK </b> status if all properties properly changed
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPropertyValues() </code> : to collect bound
+ * properties.</li>
+ * </ul>
+ */
+ public void _setPropertyValues() {
+ requiredMethod("getPropertyValues()");
+ boolean bResult = true;
+
+ if ((testPropsNames.length==1)&&(testPropsNames[0].equals("none"))) {
+ log.println("all properties are readOnly");
+ tRes.tested("setPropertyValues()",Status.skipped(true));
+ return;
+ }
+
+ log.println("Changing all properties");
+ Object[] gValues = oObj.getPropertyValues(testPropsNames);
+ for (int i=0; i<testPropsAmount;i++) {
+ Object oldValue = gValues[i];
+ Object newValue = ValueChanger.changePValue(oldValue);
+ gValues[i] = newValue;
+ }
+
+ try {
+ oObj.setPropertyValues(testPropsNames, gValues);
+ Object[] newValues = oObj.getPropertyValues(testPropsNames);
+ for (int i=0; i<testPropsAmount;i++) {
+ if (newValues[i].equals(gValues[i])) {
+ bResult = true;
+ }
+ }
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occurred while setting properties");
+ e.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while setting properties");
+ e.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while setting properties");
+ e.printStackTrace(log);
+ bResult = false;
+ } // end of try-catch
+
+ tRes.tested("setPropertyValues()", bResult);
+ }
+
+ //Get the properties being tested
+ private void getPropsToTest(Property[] properties) {
+
+ StringBuilder sb = new StringBuilder();
+
+ for (int i = 0; i < properties.length; i++) {
+
+ Property property = properties[i];
+ String name = property.Name;
+ boolean isWritable = ((property.Attributes &
+ PropertyAttribute.READONLY) == 0);
+ boolean isNotNull = ((property.Attributes &
+ PropertyAttribute.MAYBEVOID) == 0);
+ boolean isBound = ((property.Attributes &
+ PropertyAttribute.BOUND) != 0);
+ boolean isExcluded = exclProps.contains(name);
+
+ //exclude UserDefined, because we can't change XNameContainer
+ if (name.indexOf("UserDefined")>0 || name.indexOf("Device")>0) {
+ isWritable=false;
+ }
+
+ values = oObj.getPropertyValues(new String[]{property.Name});
+
+ boolean isVoid = util.utils.isVoid(values[0]);
+
+ if ( isWritable && isNotNull && isBound && !isExcluded && !isVoid) {
+ sb.append(name + ";");
+ }
+
+ } // endfor
+
+ String bound = sb.toString();
+
+ //get an array of bound properties
+ if (bound.equals("")) bound = "none";
+ StringTokenizer ST=new StringTokenizer(bound,";");
+ int nr = ST.countTokens();
+ testPropsNames = new String[nr];
+ for (int i=0; i<nr; i++) testPropsNames[i] = ST.nextToken();
+ testPropsAmount = nr;
+ }
+
+ /*
+ * Does nothing.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java b/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
new file mode 100644
index 000000000..884fb27af
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
@@ -0,0 +1,227 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.PropertyState;
+import com.sun.star.beans.XMultiPropertyStates;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.beans.XMultiPropertyStates</code>
+* interface methods :
+* <ul>
+* <li><code> getPropertyStates()</code></li>
+* <li><code> setAllPropertiesToDefault()</code></li>
+* <li><code> getPropertyValues()</code></li>
+* <li><code> setPropertiesToDefault()</code></li>
+* <li><code> getPropertyDefaults()</code></li>
+* </ul>
+* @see com.sun.star.beans.XMultiPropertyStates
+*/
+public class _XMultiPropertyStates extends MultiMethodTest {
+
+ public XMultiPropertyStates oObj = null;
+
+ private PropertyState[] states = null;
+ private String[] names = null;
+
+ @Override
+ public void before() {
+ names = (String[]) tEnv.getObjRelation("PropertyNames");
+ if (names == null) {
+ throw new StatusException(Status.failed("No PropertyNames given"));
+ }
+
+ log.println("Totally " + names.length + " properties encountered:");
+ log.print("{");
+ for (int i = 0; i < names.length; i++)
+ log.print(names[i] + " ");
+ log.print("}");
+ log.println("");
+ }
+
+
+ /**
+ * Test calls the method and checks return value.
+ * <code>PropertyDefaults</code> are stored<p>
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getPropertyDefaults() {
+ boolean result = false;
+ try {
+ Object[] defaults = oObj.getPropertyDefaults(names);
+ log.println("Number of default values: " + defaults.length);
+ result = defaults.length == names.length;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Wrapped target Exception was thrown: " + e.toString());
+ }
+ tRes.tested("getPropertyDefaults()", result) ;
+ }
+
+ /**
+ * Test calls the method and checks return value.
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getPropertyStates() {
+ boolean result = false;
+ try {
+ states = oObj.getPropertyStates(names);
+ result = (states != null) && (states.length == names.length);
+ if (states != null) {
+ log.println("Number of states: " + states.length);
+ }
+ else {
+ log.println("Number of states: <null>");
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ }
+ tRes.tested("getPropertyStates()", result) ;
+ }
+
+ /**
+ * Test calls the method and checks return value.
+ * Has <b> OK </b> status if the Property
+ * has default state afterwards. <p>
+ */
+ public void _setPropertiesToDefault() {
+ requiredMethod("getPropertyStates()");
+ // searching for property which currently don't have default value
+ // and preferable has MAYBEDEFAULT attr
+ // if no such properties are found then the first one is selected
+
+ String ro = (String) tEnv.getObjRelation("allReadOnly");
+ if (ro != null) {
+ log.println(ro);
+ tRes.tested("setPropertiesToDefault()",Status.skipped(true));
+ return;
+ }
+
+ boolean mayBeDef = false;
+ String propName = names[0];
+
+ for(int i = 0; i < names.length; i++) {
+ if (!mayBeDef && states[i] != PropertyState.DEFAULT_VALUE ) {
+ propName = names[i];
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ XPropertySetInfo xPropSetInfo = xPropSet.getPropertySetInfo();
+ Property prop = null;
+ try {
+ prop = xPropSetInfo.getPropertyByName(names[i]);
+ }
+ catch(com.sun.star.beans.UnknownPropertyException e) {
+ throw new StatusException(e, Status.failed("couldn't get property info"));
+ }
+ if ( (prop.Attributes & PropertyAttribute.MAYBEDEFAULT) != 0){
+ log.println("Property " + names[i] +
+ " 'may be default' and doesn't have default value");
+ mayBeDef = true;
+ }
+ }
+ }
+ log.println("The property " + propName + " selected");
+
+ boolean result = false;
+ try {
+ String[] the_first = new String[1];
+ the_first[0] = propName;
+ log.println("Setting " + propName + " to default");
+ oObj.setPropertiesToDefault(the_first);
+ result = oObj.getPropertyStates(the_first)[0].equals(PropertyState.DEFAULT_VALUE);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ }
+
+ if (!result) {
+ log.println("The property didn't change its state to default ...");
+ if (mayBeDef) {
+ log.println(" ... and it may be default - FAILED");
+ } else {
+ log.println(" ... but it may not be default - OK");
+ result = true;
+ }
+ }
+
+ tRes.tested("setPropertiesToDefault()", result) ;
+ }
+
+ /**
+ * Test calls the method and checks return value.
+ * Has <b> OK </b> status if the all Properties
+ * have default state afterwards. <p>
+ */
+ public void _setAllPropertiesToDefault() {
+ requiredMethod("setPropertiesToDefault()");
+ boolean result = true;
+
+ try {
+ oObj.setAllPropertiesToDefault();
+ } catch(RuntimeException e) {
+ log.println("Ignore Runtime Exception: " + e.getMessage());
+ }
+ log.println("Checking that all properties are now in DEFAULT state" +
+ " excepting may be those which 'can't be default'");
+
+ try {
+ states = oObj.getPropertyStates(names);
+ for (int i = 0; i < states.length; i++) {
+ boolean part_result = states[i].equals
+ (PropertyState.DEFAULT_VALUE);
+ if (!part_result) {
+ log.println("Property '" + names[i] +
+ "' wasn't set to default");
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ XPropertySetInfo xPropSetInfo =
+ xPropSet.getPropertySetInfo();
+ Property prop = xPropSetInfo.getPropertyByName(names[i]);
+ if ( (prop.Attributes &
+ PropertyAttribute.MAYBEDEFAULT) != 0 ) {
+ log.println(" ... and it has MAYBEDEFAULT "+
+ "attribute - FAILED");
+ } else {
+ log.println(" ... but it has no MAYBEDEFAULT "+
+ "attribute - OK");
+ part_result = true;
+ }
+ }
+
+ result &= part_result;
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ result=false;
+ }
+
+ tRes.tested("setAllPropertiesToDefault()", result) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XProperty.java b/qadevOOo/tests/java/ifc/beans/_XProperty.java
new file mode 100644
index 000000000..cb3886701
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XProperty.java
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.beans;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.XProperty;
+
+
+public class _XProperty extends MultiMethodTest {
+ public XProperty oObj;
+
+ public void _getAsProperty() {
+ Property prop = oObj.getAsProperty();
+ boolean res = (prop.Type != null);
+ tRes.tested("getAsProperty()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertyAccess.java b/qadevOOo/tests/java/ifc/beans/_XPropertyAccess.java
new file mode 100644
index 000000000..697290dc7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertyAccess.java
@@ -0,0 +1,225 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.PropertyVetoException;
+import com.sun.star.lang.WrappedTargetException;
+import lib.MultiMethodTest;
+import com.sun.star.beans.UnknownPropertyException;
+import com.sun.star.beans.XPropertyAccess;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.beans.XPropertyAccess</code>
+ * interface methods :
+ * <ul>
+ * <li><code>getPropertyValues()</code></li>
+ * <li><code>setPropertyValues()</code></li>
+ * </ul>
+ * @see com.sun.star.beans.XPropertyAccess
+ */
+public class _XPropertyAccess extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XPropertyAccess oObj = null;// oObj filled by MultiMethodTest
+
+ /**
+ * object relation X<CODE>PropertyAccess.propertyToChange</CODE><br>
+ * This relation must be filled from the module. It contains a property which must
+ * be kind of String property, available at <CODE>getPropertyValues()</CODE> and changeable by
+ * <CODE>setPropertyValues()</CODE>
+ */
+ public PropertyValue propertyToChange = null;
+
+ /**
+ * checks if the object relation <CODE>XPropertyAccess.propertyToChange</CODE>
+ * is available
+ */
+ @Override
+ public void before() {
+ propertyToChange = (PropertyValue) tEnv.getObjRelation("XPropertyAccess.propertyToChange");
+ if (propertyToChange == null) {
+ throw new StatusException(Status.failed("Object raltion 'XPropertyAccess.propertyToChange' is null"));
+ }
+ }
+
+ /**
+ * Test calls the method and checks if the returned sequence contains a property which is named
+ * in the object relation <code>XPropertyAccess.propertyToChange</code>.
+ */
+ public void _getPropertyValues() {
+ PropertyValue[] properties = oObj.getPropertyValues();
+
+ boolean ok = true;
+
+ if (properties != null){
+
+ boolean found = false;
+ for (int i=0; i < properties.length; i++){
+ if (properties[i].Name.equals(propertyToChange.Name)) found = true;
+ }
+ if (! found){
+ log.println("ERROR: could not find desired property '"+ propertyToChange.Name+"'");
+ ok=false;
+ }
+
+ } else {
+ log.println("ERROR: the method returned NULL");
+ ok =false;
+ }
+
+ tRes.tested("getPropertyValues()", ok );
+ }
+
+ /**
+ * Test calls the method and checks if:
+ * <ul>
+ * <li>the property given by the object relation
+ * <CODE>XPropertyAccess.propertyToChange</CODE> has changed</LI>
+ * <li><CODE>com.sun.star.lang.IllegalArgumentException</CODE> was thrown if a <CODE>Integer</CODE>
+ * value was set to a <CODE>String</CODE> property</LI>
+ * <li><CODE>com.sun.star.beans.UnknownPropertyException</CODE> was thrown if an invalid property
+ * was set</LI>
+ * </ul>
+ */
+ public void _setPropertyValues(){
+
+ boolean ok = true;
+ boolean test = true;
+ boolean exp = false;
+
+ try {
+ PropertyValue[] newProps = new PropertyValue[1];
+ newProps[0] = propertyToChange;
+
+ log.println("try to set property values given by object relation 'XPropertyAccess.propertyToChange'...");
+ oObj.setPropertyValues(newProps);
+
+ } catch (UnknownPropertyException ex) {
+ log.println("ERROR: Exception was thrown while trying to set property value: " +
+ ex.toString());
+ test = false;
+ } catch (PropertyVetoException ex) {
+ log.println("ERROR: Exception was thrown while trying to set property value: " +
+ ex.toString());
+ test = false;
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: Exception was thrown while trying to set property value: " +
+ ex.toString());
+ test = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: Exception was thrown while trying to set property value: " +
+ ex.toString());
+ test = false;
+ }
+
+ if ( test){
+ log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp = false;
+ try {
+ log.println("try to set integer value to string property, " +
+ "expect 'com.sun.star.lang.IllegalArgumentException'...");
+ PropertyValue[] newProps = new PropertyValue[1];
+ PropertyValue failedProp = new PropertyValue();
+ failedProp.Name = propertyToChange.Name;
+ failedProp.Value = Integer.valueOf(10);
+ newProps[0] = failedProp;
+ oObj.setPropertyValues(newProps);
+ } catch (PropertyVetoException ex) {
+ log.println("ERROR: unexpected exception was thrown while trying to set null value: " +
+ ex.toString());
+ exp = true;
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: unexpected exception was thrown while trying to set null value: " +
+ ex.toString());
+ exp = true;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("OK: expected exception was thrown while trying to set null value: " +
+ ex.toString());
+ test = true;
+ exp = true;
+ } catch (UnknownPropertyException ex) {
+ log.println("ERROR: unexpected exception was thrown while trying to set null value: " +
+ ex.toString());
+ exp = true;
+ }
+
+ if (! exp){
+ log.println("FAILED: expected exception 'UnknownPropertyException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp = false;
+ try {
+
+ log.println("try to set values with invalid property name. " +
+ "Expect 'com.sun.star.beans.UnknownPropertyException'...");
+
+ PropertyValue[] newProps = new PropertyValue[1];
+ PropertyValue newProp = new PropertyValue();
+ newProp.Name = "XPropertyAccess.InvalidPropertyName";
+ newProp.Value = "invalid property";
+ newProps[0] = newProp;
+
+ oObj.setPropertyValues(newProps);
+
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: unexpected exception was thrown while trying to set invalid value: " +
+ ex.toString());
+ exp = true;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: unexpected exception was thrown while trying to set invalid value: " +
+ ex.toString());
+ exp = true;
+ } catch (PropertyVetoException ex) {
+ log.println("ERROR: unexpected exception was thrown while trying to set invalid value: " +
+ ex.toString());
+ exp = true;
+ } catch (UnknownPropertyException ex) {
+ log.println("OK: Expected exception was thrown while trying to set invalid value: " +
+ ex.toString());
+ exp = true;
+ test = true;
+ }
+
+ ok &= test;
+
+ if (! exp){
+ log.println("FAILED: expected exception 'UnknownPropertyException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ tRes.tested("setPropertyValues()", ok);
+ }
+
+} /// finish class XPropertyAccess
+
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertyContainer.java b/qadevOOo/tests/java/ifc/beans/_XPropertyContainer.java
new file mode 100644
index 000000000..00fcff66f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertyContainer.java
@@ -0,0 +1,299 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import com.sun.star.beans.IllegalTypeException;
+import com.sun.star.beans.NotRemoveableException;
+import com.sun.star.beans.PropertyExistException;
+import com.sun.star.uno.Any;
+import lib.MultiMethodTest;
+import com.sun.star.beans.UnknownPropertyException;
+import com.sun.star.beans.XPropertyContainer;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.beans.XPropertyAccess</code>
+ * interface methods :
+ * <ul>
+ * <li><code>addProperty()</code></li>
+ * <li><code>removeProperty()</code></li>
+ * </ul>
+ * @see com.sun.star.beans.XPropertyAccess
+ */
+public class _XPropertyContainer extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XPropertyContainer oObj = null;// oObj filled by MultiMethodTest
+
+ /**
+ * object relation X<CODE>PropertyAccess.propertyNotRemovable</CODE><br>
+ * This relation must be filled from the module. It contains a property which must
+ * be a property of the implementation object.
+ */
+ private String propertyNotRemovable = null;
+
+ /**
+ * checks if the object relation <CODE>XPropertyAccess.propertyNotRemovable</CODE>
+ * is available
+ */
+ @Override
+ public void before() {
+ propertyNotRemovable = (String) tEnv.getObjRelation("XPropertyContainer.propertyNotRemovable");
+ if (propertyNotRemovable == null) {
+ throw new StatusException(Status.failed("Object raltion 'XPropertyAccess.propertyNotRemovable' is null"));
+ }
+ }
+
+
+
+ /**
+ * Test calls the method and checks if the returned sequence contains a property which is named
+ * in the object relation <code>XPropertyAccess.propertyNotRemovable</code>.
+ */
+ public void _addProperty() {
+
+ boolean ok = true;
+ boolean test = true;
+ boolean exp = false;
+
+ try {
+ log.println("try to add following property:\n" +
+ "\t('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) ...");
+ oObj.addProperty("myXPropertContainerProperty" , com.sun.star.beans.PropertyAttribute.MAYBEVOID, null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: Exception was thrown while adding following property: " +
+ "('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) : " +
+ ex.toString());
+ log.println("... FAILED");
+ test = false;
+ } catch (PropertyExistException ex) {
+ log.println("ERROR: Exception was thrown while adding following property: " +
+ "('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) : " +
+ ex.toString());
+ log.println("... FAILED");
+ test = false;
+ } catch (IllegalTypeException ex) {
+ log.println("ERROR: Exception was thrown while adding following property: " +
+ "('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) : " +
+ ex.toString());
+ log.println("... FAILED");
+ test = false;
+ }
+
+ if ( test){
+ log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp = false;
+ try {
+ log.println("add following property second time:\n" +
+ "\t('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) ...");
+ oObj.addProperty("myXPropertContainerProperty" , com.sun.star.beans.PropertyAttribute.MAYBEVOID, null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: wrong Exception was thrown while adding following property: " +
+ "('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) : " +
+ "Expected: 'PropertyExistException'\n" +
+ "Got: 'IllegalArgumentException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ } catch (PropertyExistException ex) {
+ log.println("OK: expected Exception was thrown." + ex.toString());
+ test = true;
+ exp = true;
+ } catch (IllegalTypeException ex) {
+ log.println("ERROR: wrong Exception was thrown while adding following property: " +
+ "('myXPropertContainerProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null) : " +
+ "Expected: 'PropertyExistException'\n" +
+ "Got: 'IllegalTypeException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ }
+ if (! exp){
+ log.println("FAILED: expected exception 'UnknownPropertyException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp = false;
+ try {
+ log.println("try to add following property:\n" +
+ "\t('IllegalTypeProperty', com.sun.star.beans.PropertyAttribute.MAYBEVOID, Any.VOID) ...");
+ oObj.addProperty("IllegalTypeProperty", com.sun.star.beans.PropertyAttribute.MAYBEVOID, Any.VOID);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: wrong Exception was thrown while adding following property: " +
+ "'', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null\n" +
+ "Expected: 'IllegalTypeException'\n" +
+ "Got: 'IllegalArgumentException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ } catch (PropertyExistException ex) {
+ log.println("ERROR: wrong Exception was thrown while adding following property: " +
+ "'', com.sun.star.beans.PropertyAttribute.MAYBEVOID, null\n" +
+ "Expected: 'IllegalArgumentException'\n" +
+ "Got: 'PropertyExistException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ } catch (IllegalTypeException ex) {
+ log.println("OK: expected Exception was thrown." + ex.toString());
+ test = true;
+ exp = true;
+ }
+
+ if (! exp){
+ log.println("FAILED: expected exception 'IllegalTypeException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp = false;
+ try {
+ short attrib = -1;
+ log.println("add following property:\n" +
+ "'', -1, new Object");
+ oObj.addProperty("", attrib, null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("OK: expected Exception was thrown." + ex.toString());
+ test = true;
+ exp = true;
+ } catch (PropertyExistException ex) {
+ log.println("ERROR: wrong Exception was thrown while adding following property: " +
+ "'invalidPropertyAttribute', -1, null\n" +
+ "Expected: 'IllegalTypeException'\n" +
+ "Got: 'PropertyExistException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ } catch (IllegalTypeException ex) {
+ log.println("ERROR: unexpected Exception was thrown while adding following property: " +
+ "'', -1, null\n" +
+ "Expected: 'IllegalArgumentException'\n" +
+ "Got: 'IllegalTypeException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ }
+
+ if (! exp){
+ log.println("FAILED: expected exception 'IllegalArgumentException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ ok &= test;
+
+ tRes.tested("addProperty()", ok );
+ }
+
+ /**
+ * Test calls the method and checks if the returned sequence contains a property which is named
+ * in the object relation <code>XPropertyAccess.propertyNotRemovable</code>.
+ */
+ public void _removeProperty() {
+
+ requiredMethod("addProperty()");
+
+ boolean ok = true;
+ boolean test = true;
+ boolean exp = false;
+
+ try {
+ log.println("remove 'myXPropertContainerProperty'");
+ oObj.removeProperty("myXPropertContainerProperty");
+ } catch (NotRemoveableException ex) {
+ log.println("ERROR: could not remote property 'myXPropertContainerProperty'" + ex.toString());
+ log.println("... FAILED");
+ test = false;
+ } catch (UnknownPropertyException ex) {
+ log.println("ERROR: could not remote property 'myXPropertContainerProperty'" + ex.toString());
+ log.println("... FAILED");
+ test = false;
+ }
+ if ( test){
+ log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp=false;
+
+ try {
+ log.println("remove not removable property '" + propertyNotRemovable + "'") ;
+ oObj.removeProperty(propertyNotRemovable);
+ } catch (NotRemoveableException ex) {
+ log.println("OK: expected Exception was thrown: " + ex.toString());
+ test = true;
+ exp = true;
+ } catch (UnknownPropertyException ex) {
+ log.println("ERROR: wrong exception was thrown.\n" +
+ "Expected: 'NotRemoveableException'\n" +
+ "Got: 'UnknownPropertyException'\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ }
+
+ if (! exp){
+ log.println("FAILED: expected exception 'NotRemoveableException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ ok &= test;
+ test = false;
+ exp = false;
+
+ try {
+ log.println("remove property 'thisPropertyDoesNotExist'");
+ oObj.removeProperty("thisPropertyDoesNotExist");
+ } catch (UnknownPropertyException ex) {
+ log.println("OK: expected Exception was thrown: " + ex.toString());
+ test = true;
+ exp = true;
+ } catch (NotRemoveableException ex) {
+ log.println("ERROR: wrong exception was thrown.\n" +
+ "Expected: 'UnknownPropertyException'\n" +
+ "Got: 'NotRemoveableException\n" +
+ ex.toString());
+ log.println("... FAILED");
+ exp = true;
+ }
+ if (! exp){
+ log.println("FAILED: expected exception 'UnknownPropertyException' was not thrown");
+ } else {
+ if (test) log.println("... OK");
+ }
+
+ tRes.tested("removeProperty()", ok );
+ }
+
+
+} /// finish class XPropertyContainer
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
new file mode 100644
index 000000000..0fe6b2593
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
@@ -0,0 +1,645 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import java.util.ArrayList;
+
+import lib.MultiMethodTest;
+import util.ValueChanger;
+import util.utils;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.PropertyChangeEvent;
+import com.sun.star.beans.XPropertyChangeListener;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.beans.XVetoableChangeListener;
+import com.sun.star.lang.EventObject;
+
+/**
+* Testing <code>com.sun.star.beans.XPropertySet</code>
+* interface methods :
+* <ul>
+* <li><code>getPropertySetInfo()</code></li>
+* <li><code>setPropertyValue()</code></li>
+* <li><code>getPropertyValue()</code></li>
+* <li><code>addPropertyChangeListener()</code></li>
+* <li><code>removePropertyChangeListener()</code></li>
+* <li><code>addVetoableChangeListener()</code></li>
+* <li><code>removeVetoableChangeListener()</code></li>
+* </ul>
+* @see com.sun.star.beans.XPropertySet
+*/
+public class _XPropertySet extends MultiMethodTest {
+
+ public XPropertySet oObj = null;
+
+ /**
+ * Flag that indicates change listener was called.
+ */
+ private boolean propertyChanged = false;
+
+ /**
+ * Listener that must be called on bound property changing.
+ */
+ public class MyChangeListener implements XPropertyChangeListener {
+ /**
+ * Just set <code>propertyChanged</code> flag to true.
+ */
+ public void propertyChange(PropertyChangeEvent e) {
+ propertyChanged = true;
+ }
+ public void disposing (EventObject obj) {}
+ }
+
+ private final XPropertyChangeListener PClistener = new MyChangeListener();
+
+ /**
+ * Flag that indicates veto listener was called.
+ */
+ private boolean vetoableChanged = false;
+
+ /**
+ * Listener that must be called on constrained property changing.
+ */
+ public class MyVetoListener implements XVetoableChangeListener {
+ /**
+ * Just set <code>vetoableChanged</code> flag to true.
+ */
+ public void vetoableChange(PropertyChangeEvent e) {
+ vetoableChanged = true;
+ }
+ public void disposing (EventObject obj) {}
+ }
+
+ private final XVetoableChangeListener VClistener = new MyVetoListener();
+
+ /**
+ * Structure that collects the properties of different types to test :
+ * Constrained, Bound and Normal.
+ */
+ private static final class PropsToTest {
+ ArrayList< String > constrained = new ArrayList< String >();
+ ArrayList< String > bound = new ArrayList< String >();
+ ArrayList< String > normal = new ArrayList< String >();
+ }
+
+ private final PropsToTest PTT = new PropsToTest();
+
+ /**
+ * Tests method <code>getPropertySetInfo</code>. After test completed
+ * call {@link #getPropsToTest} method to retrieve different kinds
+ * of properties to test then. <p>
+ * Has OK status if not null <code>XPropertySetInfo</code>
+ * object returned.<p>
+ * Since <code>getPropertySetInfo</code> is optional, it may return null,
+ * if it is not implemented. This method uses then an object relation
+ * <code>PTT</code> (Properties To Test) to determine available properties.
+ * All tests for services without <code>getPropertySetInfo</code> must
+ * provide this object relation.
+ */
+ public void _getPropertySetInfo() {
+
+ XPropertySetInfo propertySetInfo = oObj.getPropertySetInfo();
+
+ if (propertySetInfo == null) {
+ log.println("getPropertySetInfo() method returned null");
+ tRes.tested("getPropertySetInfo()", true) ;
+ String[] ptt = (String[]) tEnv.getObjRelation("PTT");
+ 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);
+ }
+ } // end of getPropertySetInfo()
+
+ /**
+ * Tests change listener which added for bound properties.
+ * Adds listener to bound property (if it exists), then changes
+ * its value and check if listener was called. <p>
+ * Method tests to be successfully completed before :
+ * <ul>
+ * <li> <code>getPropertySetInfo</code> : in this method test
+ * one of bound properties is retrieved. </li>
+ * </ul> <p>
+ * Has OK status if NO bound properties exist or if listener
+ * was successfully called.
+ */
+ public void _addPropertyChangeListener() {
+
+ requiredMethod("getPropertySetInfo()");
+
+ 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 {
+ 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 occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred 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+"'");
+ }
+ }
+ tRes.tested("addPropertyChangeListener()", !error);
+ }
+ } // end of addPropertyChangeListener()
+
+ /**
+ * Tests vetoable listener which added for constrained properties.
+ * Adds listener to constrained property (if it exists), then changes
+ * its value and check if listener was called. <p>
+ * Method tests to be successfully completed before :
+ * <ul>
+ * <li> <code>getPropertySetInfo</code> : in this method test
+ * one of constrained properties is retrieved. </li>
+ * </ul> <p>
+ * Has OK status if NO constrained properties exist or if listener
+ * was successfully called.
+ */
+ public void _addVetoableChangeListener() {
+
+ requiredMethod("getPropertySetInfo()");
+
+ 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 {
+ 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 occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred 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+"'");
+ }
+ }
+ tRes.tested("addVetoableChangeListener()",!error);
+ }
+ } // end of addVetoableChangeListener()
+
+
+ /**
+ * Tests <code>setPropertyValue</code> method.
+ * Stores value before call, and compares it with value after
+ * call. <p>
+ * Method tests to be successfully completed before :
+ * <ul>
+ * <li> <code>getPropertySetInfo</code> : in this method test
+ * one of normal properties is retrieved. </li>
+ * </ul> <p>
+ * Has OK status if NO normal properties exist or if value before
+ * method call is not equal to value after.
+ */
+ public void _setPropertyValue() {
+
+ requiredMethod("getPropertySetInfo()");
+
+ Object gValue = null;
+ Object sValue = null;
+
+ 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 {
+ 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, propertyName);
+ oObj.setPropertyValue(propertyName, sValue);
+ sValue = oObj.getPropertyValue(propertyName);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } // end of try-catch
+ /* this is stupid: we can't set properties whose semantics we
+ * don't know to random values in an arbitrary order and
+ * expect that to actually work.
+ if( gValue.equals(sValue) )
+ {
+ log.println("setting property '"+ propertyName+"' failed");
+ error = true;
+ }
+ */
+ }
+ tRes.tested("setPropertyValue()",!error);
+ } //endif
+ } // end of setPropertyValue()
+
+ /**
+ * Tests <code>getPropertyValue</code> method for the given property.
+ * Returns true if no exceptions occurred
+ */
+ private boolean getSinglePropertyValue( String propertyName )
+ {
+ boolean runOk = false;
+ try {
+ oObj.getPropertyValue(propertyName);
+ runOk = true;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to get property '"+
+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred 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 :
+ * <ul>
+ * <li> <code>getPropertySetInfo</code> : in this method test
+ * one of normal properties is retrieved. </li>
+ * </ul> <p>
+ * Has OK status if NO normal properties exist or if no
+ * exceptions were thrown.
+ */
+ public void _getPropertyValue() {
+
+ requiredMethod("getPropertySetInfo()");
+
+ 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) ;
+ }
+ }
+
+ /**
+ * Tests <code>removePropertyChangeListener</code> method.
+ * Removes change listener, then changes bound property value
+ * and checks if the listener was NOT called.
+ * Method tests to be successfully completed before :
+ * <ul>
+ * <li> <code>addPropertyChangeListener</code> : here listener
+ * was added. </li>
+ * </ul> <p>
+ * Has OK status if NO bound properties exist or if listener
+ * was not called and no exceptions arose.
+ */
+ public void _removePropertyChangeListener() {
+
+ requiredMethod("addPropertyChangeListener()");
+
+ 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 {
+
+ //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 occurred while removing change listener from"+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ }
+ }
+
+ 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 occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred 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);
+ }
+ } // end of removePropertyChangeListener()
+
+
+ /**
+ * Tests <code>removeVetoableChangeListener</code> method.
+ * Removes vetoable listener, then changes constrained property value
+ * and checks if the listener was NOT called.
+ * Method tests to be successfully completed before :
+ * <ul>
+ * <li> <code>addPropertyChangeListener</code> : here vetoable listener
+ * was added. </li>
+ * </ul> <p>
+ * Has OK status if NO constrained properties exist or if listener
+ * was NOT called and no exceptions arose.
+ */
+ public void _removeVetoableChangeListener() {
+
+ requiredMethod("addVetoableChangeListener()");
+
+ 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 {
+
+ //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 occurred while removing veto listener from"+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ }
+ }
+
+ 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 occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred 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);
+ }
+ } // end of removeVetoableChangeListener()
+
+ /**
+ * Gets the properties being tested. Searches and stores by one
+ * property of each kind (Bound, Vetoable, Normal).
+ */
+ public void getPropsToTest(XPropertySetInfo xPSI) {
+
+ Property[] properties = xPSI.getProperties();
+ // some properties should not be changed in a unspecific way
+ String[] skip = {"PrinterName", "CharRelief", "IsLayerMode"};
+
+ for (int i = 0; i < properties.length; i++) {
+
+ Property property = properties[i];
+ String name = property.Name;
+
+ boolean cont = false;
+ for (int j = 0; j < skip.length; j++) {
+ if (name.equals(skip[j])){
+ log.println("skipping '" + name + "'");
+ cont = true;
+ }
+ }
+
+ if (cont) continue;
+
+ boolean isWritable = ((property.Attributes &
+ PropertyAttribute.READONLY) == 0);
+ boolean isNotNull = ((property.Attributes &
+ PropertyAttribute.MAYBEVOID) == 0);
+ boolean isBound = ((property.Attributes &
+ PropertyAttribute.BOUND) != 0);
+ boolean isConstr = ((property.Attributes &
+ PropertyAttribute.CONSTRAINED) != 0);
+ boolean canChange = false;
+
+ if ( !isWritable ) log.println("Property '"+name+"' is READONLY");
+
+ if (name.endsWith("URL")) isWritable = false;
+ if (name.startsWith("Fill")) isWritable = false;
+ if (name.startsWith("Font")) isWritable = false;
+ if (name.startsWith("IsNumbering")) isWritable = false;
+ if (name.startsWith("LayerName")) isWritable = false;
+ if (name.startsWith("Line")) isWritable = false;
+ if (name.startsWith("TextWriting")) isWritable = false;
+
+ if ( isWritable && isNotNull ) canChange = isChangeable(name);
+
+ if ( isWritable && isNotNull && isBound && canChange) {
+ PTT.bound.add(name);
+ }
+
+ if ( isWritable && isNotNull && isConstr && canChange) {
+ PTT.constrained.add(name);
+ }
+
+ if ( isWritable && isNotNull && canChange) {
+ PTT.normal.add(name);
+ }
+
+
+ } // endfor
+ }
+
+ public boolean isChangeable(String name) {
+ boolean hasChanged = false;
+ try {
+ Object getProp = oObj.getPropertyValue(name);
+ log.println("Getting: "+getProp);
+ if (name.equals("xinterfaceA")) {
+ System.out.println("drin");
+ }
+
+ Object setValue = null;
+ if (getProp != null) {
+ if (!utils.isVoid(getProp))
+ setValue = ValueChanger.changePValue(getProp);
+ else log.println("Property '"+name+
+ "' is void but MAYBEVOID isn't set");
+ } else log.println("Property '"+name+"'is null and can't be changed");
+ if (name.equals("LineStyle")) setValue = null;
+ if (setValue != null) {
+ log.println("Setting to :"+setValue);
+ oObj.setPropertyValue(name, setValue);
+ hasChanged = (! getProp.equals(oObj.getPropertyValue(name)));
+ } else log.println("Couldn't change Property '"+name+"'");
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ log.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace(log);
+ } catch (java.lang.ArrayIndexOutOfBoundsException e) {
+ log.println("'" + name + "' throws exception '" + e + "'");
+ e.printStackTrace(log);
+ }
+
+ return hasChanged;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+
+} // finish class _XPropertySet
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertySetInfo.java b/qadevOOo/tests/java/ifc/beans/_XPropertySetInfo.java
new file mode 100644
index 000000000..dc6ad368f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertySetInfo.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.UnknownPropertyException;
+import com.sun.star.beans.XPropertySetInfo;
+
+/**
+* Testing <code>com.sun.star.beans.XPropertySetInfo</code>
+* interface methods :
+* <ul>
+* <li><code>getProperties()</code></li>
+* <li><code>getPropertyByName()</code></li>
+* <li><code>hasPropertyByName()</code></li>
+* </ul>
+* @see com.sun.star.beans.XPropertySetInfo
+*/
+public class _XPropertySetInfo extends MultiMethodTest {
+
+ public XPropertySetInfo oObj = null;// oObj filled by MultiMethodTest
+
+ public Property IsThere = null;
+
+ /**
+ * Test calls the method and stores one of the properties.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * value that isn't null.<p>
+ */
+ public void _getProperties() {
+ Property[] properties = oObj.getProperties();
+ IsThere = properties[0];
+ tRes.tested("getProperties()", ( properties != null ));
+ }
+
+ /**
+ * Test calls the method with property name that certainly present
+ * in the property set and again calls the method with property name
+ * that certainly doesn't present in the property set.<p>
+ * Has <b> OK </b> status if the method in one case successfully
+ * returns value that isn't null and no exceptions were thrown and
+ * in other case exception was thrown.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>getProperties()</code> : to have a property that certainly
+ * present in the property set</li>
+ * </ul>
+ */
+ public void _getPropertyByName() {
+ requiredMethod("getProperties()");
+ boolean result;
+ try {
+ Property prop = oObj.getPropertyByName(IsThere.Name);
+ result = (prop != null);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred while testing" +
+ " getPropertyByName with existing property");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ try {
+ oObj.getPropertyByName("Jupp");
+ log.println("No Exception thrown while testing"+
+ " getPropertyByName with non existing property");
+ result = false;
+ }
+ catch (UnknownPropertyException e) {
+ result = true;
+ }
+ tRes.tested("getPropertyByName()", result);
+ }
+
+ /**
+ * Test calls the method with property name that certainly present
+ * in the property set and again calls the method with property name
+ * that certainly doesn't present in the property set.<p>
+ * Has <b> OK </b> status if the method successfully returns true in
+ * one case and false in other case.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>getProperties()</code> : to have a property that certainly
+ * present in the property set</li>
+ * </ul>
+ */
+ public void _hasPropertyByName() {
+ requiredMethod("getProperties()");
+ tRes.tested("hasPropertyByName()",
+ (
+ (oObj.hasPropertyByName(IsThere.Name)) &&
+ (!oObj.hasPropertyByName("Jupp")) )
+ );
+ }
+
+} /// finish class XPropertySetInfo
+
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertyState.java b/qadevOOo/tests/java/ifc/beans/_XPropertyState.java
new file mode 100644
index 000000000..ca7337a74
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertyState.java
@@ -0,0 +1,266 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.PropertyState;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.beans.XPropertyState;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Testing <code>com.sun.star.beans.XPropertyState</code>
+* interface methods :
+* <ul>
+* <li><code> getPropertyState()</code></li>
+* <li><code> getPropertyStates()</code></li>
+* <li><code> setPropertyToDefault()</code></li>
+* <li><code> getPropertyDefault()</code></li>
+* </ul>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated. <p>
+* <b>Note:</b> object tested must also implement
+* <code>com.sun.star.beans.XPropertySet</code> interface.
+* @see com.sun.star.beans.XPropertyState
+*/
+public class _XPropertyState extends MultiMethodTest {
+
+ public XPropertyState oObj = null;
+
+ private XPropertySet oPS = null ;
+ private XPropertySetInfo propertySetInfo = null;
+ private Property[] properties = null ;
+ private String pName = null ;
+ private Object propDef = null ;
+
+ /**
+ * Queries object for <code>XPropertySet</code> interface and
+ * initializes some fields used by all methods. <p>
+ *
+ * Searches property which is not READONLY and MAYBEDEFAULT, if
+ * such property is not found, then uses property with only
+ * READONLY attribute. This property name is stored and is used
+ * by all tests.
+ *
+ * @throws StatusException If <code>XPropertySet</code> is not
+ * implemented by object.
+ */
+ @Override
+ public void before() throws StatusException {
+ oPS = UnoRuntime.queryInterface( XPropertySet.class, oObj );
+ if (oPS == null)
+ throw new StatusException
+ ("XPropertySet interface isn't implemented.",
+ new NullPointerException
+ ("XPropertySet interface isn't implemented.")) ;
+
+ propertySetInfo = oPS.getPropertySetInfo();
+ properties = propertySetInfo.getProperties();
+ Property prop = null;
+ for (int i=0;i<properties.length;i++) {
+ try {
+ prop = propertySetInfo.getPropertyByName
+ (properties[i].Name);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Unknown Property "+prop.Name);
+ }
+ boolean readOnly = (prop.Attributes &
+ PropertyAttribute.READONLY) != 0;
+ boolean maybeDefault = (prop.Attributes &
+ PropertyAttribute.MAYBEDEFAULT) != 0;
+ if (!readOnly && maybeDefault) {
+ pName = properties[i].Name;
+ log.println("Property '" + pName + "' has attributes "+
+ prop.Attributes);
+ break ;
+ } else
+ if (!readOnly) {
+ pName = properties[i].Name;
+ log.println("Property '" + pName +
+ "' is not readonly, may be used ...");
+ } else {
+ log.println("Skipping property '" + properties[i].Name +
+ "' Readonly: " + readOnly + ", MaybeDefault: " +
+ maybeDefault);
+ }
+ }
+
+ }
+
+ /**
+ * Test calls the method and checks that no exceptions were thrown. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _getPropertyDefault(){
+ boolean result = true ;
+ String localName = pName;
+ if (localName == null) {
+ localName = propertySetInfo.getProperties()[0].Name;
+ }
+ try {
+ propDef = oObj.getPropertyDefault(localName);
+ log.println("Default property value is : '" + propDef + "'");
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception " + e +
+ "occurred while getting Property default");
+ result=false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception " + e +
+ "occurred while getting Property default");
+ result=false;
+ }
+ tRes.tested("getPropertyDefault()", result);
+ }
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getPropertyState(){
+ boolean result = true ;
+
+ String localName = pName;
+ if (localName == null) {
+ localName = propertySetInfo.getProperties()[0].Name;
+ }
+
+ try {
+ PropertyState ps = oObj.getPropertyState(localName);
+ if (ps == null) {
+ log.println("!!! Returned value == null") ;
+ result = false ;
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception " + e +
+ "occurred while getting Property state");
+ result = false;
+ }
+ tRes.tested("getPropertyState()", result);
+ }
+
+ /**
+ * Test calls the method with array of one property name
+ * and checks return value and that no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method returns array with one
+ * PropertyState and no exceptions were thrown. <p>
+ */
+ public void _getPropertyStates(){
+ boolean result = true ;
+
+ String localName = pName;
+ if (localName == null) {
+ localName = propertySetInfo.getProperties()[0].Name;
+ }
+
+ try {
+ PropertyState[] ps = oObj.getPropertyStates
+ (new String[] {localName});
+ if (ps == null) {
+ log.println("!!! Returned value == null") ;
+ result = false ;
+ } else {
+ if (ps.length != 1) {
+ log.println("!!! Array length returned is invalid - " +
+ ps.length) ;
+ result = false ;
+ }
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception " + e +
+ "occurred while getting Property state");
+ result = false;
+ }
+
+ tRes.tested("getPropertyStates()", result);
+ }
+
+
+ /**
+ * Sets the property to default, then compares the current property
+ * value to value received by method <code>getPropertyDefault</code>.
+ * Has <b> OK </b> status if the current property value equals to
+ * default property. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>getPropertyDefault</code>: we have to know what is
+ * default value</li></ul>
+ */
+ public void _setPropertyToDefault(){
+ requiredMethod("getPropertyDefault()") ;
+
+ if (pName == null) {
+ log.println("all found properties are read only");
+ tRes.tested("setPropertyToDefault()",Status.skipped(true));
+ return;
+ }
+
+ boolean result = true ;
+ try {
+ try {
+ oObj.setPropertyToDefault(pName);
+ }
+ catch(RuntimeException e) {
+ System.out.println("Ignoring RuntimeException: " + e.getMessage());
+ }
+ if ((properties[0].Attributes &
+ PropertyAttribute.MAYBEDEFAULT) != 0) {
+ Object actualDef = propDef ;
+ if (propDef instanceof Any) {
+ actualDef = ((Any)propDef).getObject() ;
+ }
+ Object actualVal = oPS.getPropertyValue(pName) ;
+ if (actualVal instanceof Any) {
+ actualVal = ((Any)actualVal).getObject() ;
+ }
+ result = util.ValueComparer.equalValue
+ (actualDef,actualVal) ;
+ log.println("Default value = '" + actualDef +
+ "', returned value = '"
+ + actualVal + "' for property " + pName) ;
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception " + e +
+ "occurred while setting Property to default");
+ result=false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception " + e +
+ "occurred while testing property value");
+ result=false;
+ }
+
+ tRes.tested("setPropertyToDefault()", result);
+ }
+
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+ }// EOF _XPropertyState
+
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertyWithState.java b/qadevOOo/tests/java/ifc/beans/_XPropertyWithState.java
new file mode 100644
index 000000000..9f93e0020
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertyWithState.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.beans;
+
+import com.sun.star.beans.PropertyState;
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertyWithState;
+import lib.Status;
+import lib.StatusException;
+
+/**
+* Testing <code>com.sun.star.beans.XPropertyWithState</code>
+* interface methods :
+* <ul>
+* <li><code> getDefaultAsProperty()</code></li>
+* <li><code> getStateAsProperty()</code></li>
+* <li><code> setToDefaultAsProperty()</code></li>
+* </ul> <p>
+* @see com.sun.star.beans.XPropertyWithState
+*/
+
+public class _XPropertyWithState extends MultiMethodTest {
+
+ /**
+ * the test object
+ */
+ public XPropertyWithState oObj;
+
+
+ /**
+ * Test calls the method.
+ * Test has ok status if no
+ * <CODE>com.sun.star.lang.WrappedTargetException</CODE>
+ * was thrown
+ */
+ public void _getDefaultAsProperty() {
+ try{
+
+ oObj.getDefaultAsProperty();
+
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ throw new StatusException(e, Status.failed("'com.sun.star.lang.WrappedTargetException' was thrown"));
+ }
+
+ tRes.tested("getDefaultAsProperty()", true);
+ }
+
+ /**
+ * Test is ok if <CODE>getStateAsProperty()</CODE> returns
+ * as <CODE>PropertyState</CODE> which is not <CODE>null</CODE>
+ */
+ public void _getStateAsProperty() {
+
+ boolean res = true;
+
+ PropertyState propState = oObj.getStateAsProperty();
+
+ if (propState == null) {
+ log.println("the returned PropertyState is null -> FALSE");
+ res = false;
+ }
+
+ tRes.tested("getStateAsProperty()", res);
+ }
+
+ /**
+ * Test calls the method.
+ * Test has ok status if no
+ * <CODE>com.sun.star.lang.WrappedTargetException</CODE>
+ * was thrown
+ */
+ public void _setToDefaultAsProperty() {
+ try{
+
+ oObj.setToDefaultAsProperty();
+
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ throw new StatusException(e, Status.failed("'com.sun.star.lang.WrappedTargetException' was thrown"));
+ }
+
+ tRes.tested("setToDefaultAsProperty()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/beans/_XTolerantMultiPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XTolerantMultiPropertySet.java
new file mode 100644
index 000000000..6860c8690
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XTolerantMultiPropertySet.java
@@ -0,0 +1,330 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.beans;
+
+import com.sun.star.beans.GetDirectPropertyTolerantResult;
+import com.sun.star.beans.GetPropertyTolerantResult;
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.PropertyState;
+import com.sun.star.beans.SetPropertyTolerantFailed;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertyState;
+import com.sun.star.beans.XTolerantMultiPropertySet;
+import com.sun.star.uno.UnoRuntime;
+
+import java.util.ArrayList;
+import java.util.Collections;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import util.ValueChanger;
+import util.ValueComparer;
+
+
+public class _XTolerantMultiPropertySet extends MultiMethodTest {
+ public XTolerantMultiPropertySet oObj;
+ protected String[] namesOfDirectProperties = null;
+ protected String[] namesOfProperties = null;
+ protected Object[] valuesOfProperties = null;
+ protected Property[] properties = null;
+ protected XPropertyState pState = null;
+ protected XPropertySet PS = null;
+
+
+ /*
+ * Queries XPropertySet from the given Component and gets XPropertySetInfo
+ * from it to get the PropertyNames available and their Values<br>
+ * Then queries XPropertyState from the given Component
+ * to get the direct properties<br>
+ * Throws a lib StatusException if the Component doesn't support XPropertySet or XPropertyState
+ */
+ @Override
+ public void before() {
+ PS = UnoRuntime.queryInterface(XPropertySet.class,
+ tEnv.getTestObject());
+
+ if (PS == null) {
+ throw new StatusException(Status.failed(
+ "Component doesn't provide the needed XPropertySet"));
+ }
+
+ pState = UnoRuntime.queryInterface(
+ XPropertyState.class, tEnv.getTestObject());
+
+ if (pState == null) {
+ throw new StatusException(Status.failed(
+ "Component doesn't provide the needed XPropertyState"));
+ }
+
+ properties = PS.getPropertySetInfo().getProperties();
+ namesOfProperties = getProperties();
+ valuesOfProperties = getPropertyValues(namesOfProperties);
+ }
+
+ /*
+ * Calls the method getDirectPropertyValuesTolerant() and compares the resulting
+ * sequence with the one gained as direct values in the before() method.<br>
+ * Has OK state if both sequences equal.
+ */
+ public void _getDirectPropertyValuesTolerant() {
+ namesOfDirectProperties = getDirectProperties(properties);
+
+ GetDirectPropertyTolerantResult[] GDPR = oObj.getDirectPropertyValuesTolerant(
+ namesOfProperties);
+
+ boolean res = (GDPR.length == namesOfDirectProperties.length);
+
+ if (!res) {
+ log.println("Found: ");
+
+ for (int i = 0; i < GDPR.length; i++) {
+ log.println("\t" + GDPR[i].Name);
+ }
+
+ log.println("Expected: ");
+
+ for (int i = 0; i < namesOfDirectProperties.length; i++) {
+ log.println("\t" + namesOfDirectProperties[i]);
+ }
+ } else {
+ for (int i = 0; i < GDPR.length; i++) {
+ boolean localres = GDPR[i].Name.equals(
+ namesOfDirectProperties[i]);
+
+ if (!localres) {
+ log.println("Found: ");
+ log.println("\t" + GDPR[i].Name);
+ log.println("Expected: ");
+ log.println("\t" + namesOfDirectProperties[i]);
+ }
+
+ res &= localres;
+ }
+ }
+
+ tRes.tested("getDirectPropertyValuesTolerant()", res);
+ }
+
+ public void _getPropertyValuesTolerant() {
+ requiredMethod("getDirectPropertyValuesTolerant()");
+ GetPropertyTolerantResult[] GPR = oObj.getPropertyValuesTolerant(
+ namesOfProperties);
+
+ boolean res = (GPR.length == namesOfProperties.length);
+
+ if (!res) {
+ log.println("Length of sequences differs");
+ log.println("Found: " + GPR.length);
+ log.println("Expected: " + namesOfProperties.length);
+ } else {
+ for (int i = 0; i < GPR.length; i++) {
+ boolean localres = true;
+
+ if (!(GPR[i].Value instanceof com.sun.star.uno.Any)) {
+ localres = ValueComparer.equalValue(GPR[i].Value,
+ valuesOfProperties[i]);
+
+ }
+
+ if (!localres) {
+ log.println("Values differ for : " +
+ namesOfProperties[i]);
+ log.println("\t" + GPR[i].Value);
+ log.println("Expected: ");
+ log.println("\t" + valuesOfProperties[i]);
+ }
+
+ res &= localres;
+ }
+ }
+
+ tRes.tested("getPropertyValuesTolerant()", res);
+ }
+
+ public void _setPropertyValuesTolerant() {
+ requiredMethod("getPropertyValuesTolerant()");
+
+ SetPropertyTolerantFailed[] SPTF = oObj.setPropertyValuesTolerant(namesOfProperties,
+ getNewValues(valuesOfProperties));
+
+ //read only properties will throw a PropertyVetoException if they are set
+ int failures = 0;
+
+ for (int k = 0; k < SPTF.length; k++) {
+ if (SPTF[k].Result == com.sun.star.beans.TolerantPropertySetResultType.PROPERTY_VETO) {
+ failures++;
+ }
+ }
+
+ int roProps = getCountOfReadOnlyProperties();
+
+ boolean res = (failures == roProps);
+
+ if (!res) {
+ log.println("Failures: " + failures);
+ log.println("Count of R/O properties: " + roProps);
+
+ for (int i = 0; i < SPTF.length; i++) {
+ if (SPTF[i].Result == com.sun.star.beans.TolerantPropertySetResultType.PROPERTY_VETO) {
+ failures++;
+ log.println("Failed for " + SPTF[i].Name);
+ log.println("\t Result: " + SPTF[i].Result);
+ }
+ }
+ } else {
+ for (int i = 0; i < SPTF.length; i++) {
+ boolean localres = true;
+ GetPropertyTolerantResult[] GPR = oObj.getPropertyValuesTolerant(
+ namesOfProperties);
+
+ if ((!(GPR[i].Value instanceof com.sun.star.uno.Any)) &&
+ (SPTF[i].Result == com.sun.star.beans.TolerantPropertySetResultType.SUCCESS)) {
+ localres = ValueComparer.equalValue(GPR[i].Value,
+ valuesOfProperties[i]);
+ }
+
+ if (!localres) {
+ log.println("Values differ for : " +
+ namesOfProperties[i]);
+ log.println("\t" + GPR[i].Value);
+ log.println("Expected: ");
+ log.println("\t" + valuesOfProperties[i]);
+ }
+
+ res &= localres;
+ }
+ }
+
+ tRes.tested("setPropertyValuesTolerant()", res);
+ }
+
+ /*
+ * This method returns a sorted list of property names
+ * contained in a given sequence of properties that additionally
+ * have the state DIRECT_VALUE
+ */
+ protected String[] getDirectProperties(Property[] props) {
+ ArrayList<String> direct = new ArrayList<String>();
+
+ for (int i = 0; i < props.length; i++) {
+ String pName = props[i].Name;
+
+ try {
+ PropertyState state = pState.getPropertyState(pName);
+
+ if (state.equals(PropertyState.DIRECT_VALUE) && isUsable(pName))
+ direct.add(pName);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Property '" + pName + "'");
+ }
+ }
+
+ Collections.sort(direct);
+
+ Object[] obj = direct.toArray();
+ String[] ret = new String[obj.length];
+
+ for (int i = 0; i < obj.length; i++) {
+ ret[i] = (String) obj[i];
+ }
+
+ return ret;
+ }
+
+ private boolean isUsable(String name) {
+ boolean isUsable=true;
+ if (name.startsWith("TextWriting")) isUsable = false;
+ if (name.startsWith("MetaFile")) isUsable = false;
+ return isUsable;
+ }
+
+ /*
+ * This method returns a sorted list of property names
+ * contained in a given sequence of properties
+ */
+ protected String[] getProperties() {
+ ArrayList<String> names = new ArrayList<String>();
+
+ for (int i = 0; i < properties.length; i++) {
+ String pName = properties[i].Name;
+ if (isUsable(pName)) names.add(pName);
+ }
+
+ Collections.sort(names);
+
+ Object[] obj = names.toArray();
+ String[] ret = new String[obj.length];
+
+ for (int i = 0; i < obj.length; i++) {
+ ret[i] = (String) obj[i];
+ }
+
+ return ret;
+ }
+
+ /*
+ * Returns the values of a given array of properties in an Object array
+ */
+ protected Object[] getPropertyValues(String[] propertyNames) {
+ Object[] values = new Object[propertyNames.length];
+
+ for (int i = 0; i < propertyNames.length; i++) {
+ try {
+ values[i] = PS.getPropertyValue(propertyNames[i]);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ }
+ }
+
+ return values;
+ }
+
+ protected int getCountOfReadOnlyProperties() {
+ int ro = 0;
+
+ for (int i = 0; i < properties.length; i++) {
+ Property property = properties[i];
+ boolean isWritable = ((property.Attributes & PropertyAttribute.READONLY) == 0);
+
+ if (!isWritable) {
+ ro++;
+ }
+ }
+
+ return ro;
+ }
+
+ protected Object[] getNewValues(Object[] oldValues) {
+ Object[] newValues = new Object[oldValues.length];
+
+ for (int i = 0; i < oldValues.length; i++) {
+ if (oldValues[i] instanceof com.sun.star.uno.Any) {
+ newValues[i] = oldValues[i];
+ } else {
+ newValues[i] = ValueChanger.changePValue(oldValues[i]);
+ }
+ }
+
+ return newValues;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/bridge/_XBridge.java b/qadevOOo/tests/java/ifc/bridge/_XBridge.java
new file mode 100644
index 000000000..4e1833284
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/bridge/_XBridge.java
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.bridge;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.bridge.XBridge;
+import com.sun.star.connection.XConnection;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Testing <code>com.sun.star.bridge.XBridge</code>
+* interface methods :
+* <ul>
+* <li><code> getInstance()</code></li>
+* <li><code> getName()</code></li>
+* <li><code> getDescription()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XInitialization.args'</code> (of type <code>Object[]</code>):
+* relation which contains arguments for Bridge initialization.
+* It used here to check description of the bridge. This array
+* must contain : [0] - the name of the bridge, [1] - the name of
+* protocol, [2] - <code>XConnection</code> reference to bridge
+* connection. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.bridge.XBridge
+*/
+public class _XBridge extends MultiMethodTest {
+
+ public XBridge oObj;
+
+ protected Object[] args;//for object relation 'XInitialization.args'
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ args = (Object[])tEnv.getObjRelation("XInitialization.args");
+
+ if (args == null) throw new StatusException(Status.failed
+ ("Relation 'XInitialization.args' not found")) ;
+ XInitialization xInit = UnoRuntime.queryInterface(
+ XInitialization.class, oObj);
+ try {
+ xInit.initialize(args);
+ }
+ catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't initialize the bridge", e);
+ }
+ }
+
+ /**
+ * Tries to retrieve <code>ServiceManager</code> service
+ * using the bridge. <p>
+ * Has <b>OK</b> status if non null object returned.
+ */
+ public void _getInstance() {
+ XInterface xInt = (XInterface)oObj.getInstance(
+ "com.sun.star.lang.ServiceManager");
+
+ tRes.tested("getInstance()", xInt != null);
+ }
+
+ /**
+ * Retrieves the name of the bridge from relation and compares
+ * it to name returned by the method. <p>
+ * Has <b>OK</b> status if names are equal.
+ */
+ public void _getName() {
+ String expectedName = (String)args[0]; // args[0] - bridge name
+
+ String name = oObj.getName();
+
+ if (!tRes.tested("getName()", name.equals(expectedName))) {
+ log.println("getName() returns wrong result : \"" + name + "\"");
+ log.println("expected = \"" + expectedName + "\"");
+ }
+ }
+
+ /**
+ * Retrieves the description of the bridge and compares it with
+ * expected description composed using relation
+ * <code> ([protocol] + ":" + [connection description]) </code>. <p>
+ * Has <b>OK</b> status if description returned by the method
+ * is equal to expected one.
+ */
+ public void _getDescription() {
+ String protocol = (String)args[1]; // args[1] - protocol
+ XConnection xConnection = (XConnection)args[2]; // args[2] - connection
+ // expected description is protocol + ":" + xConnection.getDescription()
+ String expectedDescription =
+ protocol + ":" + xConnection.getDescription();
+
+ String description = oObj.getDescription();
+
+ if (!tRes.tested("getDescription()",
+ description.equals(expectedDescription))) {
+ log.println("getDescription() returns wrong result : \""
+ + description + "\"");
+ log.println("expected = \"" + expectedDescription + "\"");
+ }
+ }
+
+ /**
+ * Disposes object environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/bridge/_XBridgeFactory.java b/qadevOOo/tests/java/ifc/bridge/_XBridgeFactory.java
new file mode 100644
index 000000000..fe0f28d69
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/bridge/_XBridgeFactory.java
@@ -0,0 +1,222 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.bridge;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.bridge.XBridge;
+import com.sun.star.bridge.XBridgeFactory;
+import com.sun.star.connection.XAcceptor;
+import com.sun.star.connection.XConnection;
+import com.sun.star.connection.XConnector;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Tests <code>com.sun.star.bridge.XBridgeFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createBridge()</code></li>
+* <li><code> getBridge()</code></li>
+* <li><code> getExistingBridges()</code></li>
+* </ul> <p>
+* @see com.sun.star.bridge.XBridgeFactory
+*/
+public class _XBridgeFactory extends MultiMethodTest {
+
+ public XBridgeFactory oObj = null;
+
+ private String bridgeName = null ;
+
+ AcceptorThread acceptorThread = null;
+
+ /**
+ * Interrupts the acceptor after test is finished
+ */
+ @Override
+ protected void after() {
+ acceptorThread.acc.stopAccepting();
+ if (acceptorThread.isAlive()) {
+ acceptorThread.interrupt();
+ }
+ }
+ /**
+ * Calls <code>accept()</code> method in a separate thread.
+ * Then stores exception thrown by call if it occurred, or
+ * return value.
+ */
+ protected class AcceptorThread extends Thread {
+ /**
+ * the acceptor
+ */
+ private final XAcceptor acc;
+ /**
+ * If exception occurred during method call it is
+ * stored in this field.
+ */
+ public Exception ex = null ;
+ /**
+ * If method call returns some value it stores in this field.
+ */
+ public XConnection acceptedCall = null ;
+
+ /**
+ * Gets an object which can call <code>accept</code> method.
+ */
+ public AcceptorThread(XAcceptor acc) {
+ this.acc = acc ;
+ }
+
+ /**
+ * Call <code>accept()</code> method.
+ */
+ @Override
+ public void run() {
+ try {
+ acceptedCall = acc.accept(connectString);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ ex = e ;
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ ex = e ;
+ } catch (com.sun.star.connection.AlreadyAcceptingException e) {
+ ex = e ;
+ }
+ }
+ }
+
+ /**
+ * Variable to make bridge names unique in different threads.
+ */
+ public static int uniqueSuffix = 0 ;
+ /**
+ * Object for synchronizing <code>uniqueSuffix</code> increment.
+ */
+ public static Object synchFlag = new Object() ;
+ /**
+ * Connection string
+ */
+ public String connectString;
+
+ /**
+ * Gets array of existing bridges. <p>
+ * Has <b>OK</b> status if method returns not null.
+ */
+ public void _getExistingBridges() {
+
+ XBridge[] bridges = oObj.getExistingBridges() ;
+
+ log.println("Existing bridges :") ;
+ for (int i = 0; i < bridges.length; i++)
+ log.println(" " + bridges[i].getDescription()) ;
+
+ if (bridges.length > 0) bridgeName = bridges[0].getName() ;
+
+ tRes.tested("getExistingBridges()", true) ;
+ }
+
+ /**
+ * First creates connection with StarOffice process, using environment
+ * property <code>'CONNECTION_STRING'</code>. Then create bridge with unique name
+ * using protocol specified in environment as <code>'PROTOCOL'</code>
+ * property. After that bridge is disposed. <p>
+ * Has <b>OK</b> status if value returned is not null
+ * and no exceptions were thrown.<p>
+ */
+ public void _createBridge() {
+ XBridge bridge = null;
+ XConnection conn = null ;
+ boolean result = false ;
+
+ // first creating a connection
+ try {
+ XInterface x = (XInterface)
+ tParam.getMSF().createInstance
+ ("com.sun.star.connection.Connector") ;
+
+ XConnector xCntr = UnoRuntime.queryInterface
+ (XConnector.class, x) ;
+
+ x = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.connection.Acceptor") ;
+
+ XAcceptor xAccptr = UnoRuntime.queryInterface(
+ XAcceptor.class, x);
+ connectString = (String)tEnv.getObjRelation("CNNCTSTR");
+ acceptorThread = new AcceptorThread(xAccptr) ;
+ acceptorThread.start();
+
+ util.utils.shortWait();
+ conn = xCntr.connect(connectString) ;
+
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create connection", e);
+ }
+
+ try {
+ String protocol = (String) tParam.get("PROTOCOL") ;
+ if (protocol == null) protocol = "urp" ;
+
+ String brName ;
+ synchronized (synchFlag) {
+ brName = "MyBridge" + (uniqueSuffix++) ;
+ }
+
+ log.println("Creating bridge with name " + brName) ;
+
+ bridge = oObj.createBridge(brName,
+ protocol, conn, null) ;
+
+
+ result = bridge != null ;
+ } catch (com.sun.star.bridge.BridgeExistsException e) {
+ log.println("Exception while bridge creating :" + e) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while bridge creating :" + e) ;
+ }
+
+ tRes.tested("createBridge()", result) ;
+ }
+
+ /**
+ * Gets bridge by name and checks the bridge name returned. <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code>getExestingBridges</code> : to have some bridge name
+ * to retrieve </li>
+ * </ul> <p>
+ * Has <b>OK</b> status if bridge successfully returned and its name
+ * equals to name passed as parameter.
+ */
+ public void _getBridge() {
+ executeMethod("getExistingBridges()") ;
+
+ if (bridgeName == null) {
+ log.println("No name for getting the bridge") ;
+ return ;
+ }
+
+ XBridge br = oObj.getBridge(bridgeName) ;
+
+ tRes.tested("getBridge()", br != null &&
+ bridgeName.equals(br.getName())) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/bridge/_XUnoUrlResolver.java b/qadevOOo/tests/java/ifc/bridge/_XUnoUrlResolver.java
new file mode 100644
index 000000000..16bbceb45
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/bridge/_XUnoUrlResolver.java
@@ -0,0 +1,193 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.bridge;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+import util.utils;
+
+import com.sun.star.bridge.XBridge;
+import com.sun.star.bridge.XBridgeFactory;
+import com.sun.star.bridge.XInstanceProvider;
+import com.sun.star.bridge.XUnoUrlResolver;
+import com.sun.star.connection.ConnectionSetupException;
+import com.sun.star.connection.NoConnectException;
+import com.sun.star.connection.XAcceptor;
+import com.sun.star.connection.XConnection;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.bridge.XUnoUrlResolver</code>
+* interface methods :
+* <ul>
+* <li><code> resolve()</code></li>
+* </ul> <p>
+* @see com.sun.star.bridge.XUnoUrlResolver
+*/
+public class _XUnoUrlResolver extends MultiMethodTest {
+
+ // starting port and current port to choose
+ static int basePort = 0;
+ int curPort = 0;
+
+ public XUnoUrlResolver oObj;
+
+ /**
+ * Implementation for providing an instance
+ *
+ * @see com.sun.star.bridge.XInstanceProvider
+ */
+ static class MyInstanceProvider implements XInstanceProvider {
+ /**
+ * a MultiServiceFactory for creating instances
+ *
+ * @see com.sun.star.lang.MultiServiceFactory
+ */
+ private final XMultiServiceFactory xMSF;
+
+ /**
+ * Construct object with a MultiServiceFactory
+ *
+ * @see com.sun.star.lang.MultiServiceFactory
+ */
+ public MyInstanceProvider(XMultiServiceFactory xMSF) {
+ this.xMSF = xMSF;
+ }
+
+ /**
+ * get an instance by name
+ */
+ public Object getInstance(String aInstanceName)
+ throws com.sun.star.container.NoSuchElementException
+ {
+ try {
+ return xMSF.createInstance(aInstanceName);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Unexpected exception", e);
+ }
+ }
+ }
+
+ /**
+ * Thread for creating a bridge so the resolver can access it
+ */
+ class BridgeThread extends Thread {
+ private final XBridgeFactory xBrdgFctr;
+ private final XInstanceProvider xInstProv;
+ private final XAcceptor xAcc;
+ private final String connectString;
+
+ public XBridge xBridge = null;
+
+ public BridgeThread(XAcceptor xAcc, XBridgeFactory xBrdgFctr,
+ XInstanceProvider xInstProv, String connectString) {
+ this.xInstProv = xInstProv;
+ this.xBrdgFctr = xBrdgFctr;
+ this.xAcc = xAcc;
+ this.connectString = connectString;
+ }
+
+ @Override
+ public void run() {
+ try {
+ // create a connection
+ XConnection xCon = xAcc.accept(connectString);
+ // create a bridge over that connection
+ xBridge = xBrdgFctr.createBridge(
+ "MyBridge", "urp", xCon, xInstProv);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.connection.AlreadyAcceptingException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.bridge.BridgeExistsException e) {
+ e.printStackTrace(log);
+ }
+ }
+
+ }
+ /**
+ * Test calls the method using environment property
+ * <code>'CONNECTION_STRING'</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * object that support interface <code>XMultiServiceFactory</code> and
+ * no exceptions were thrown. <p>
+ * @see com.sun.star.lang.XMultiServiceFactory
+ */
+ public void _resolve() {
+ String connectStr = (String)tParam.get("CONNECTION_STRING");
+ int pIndex = connectStr.indexOf("port=") + 5;
+ connectStr = connectStr.substring(0, pIndex);
+ System.out.println("ConnectString: " + connectStr);
+
+ // select the port
+ basePort = ((Integer)tEnv.getObjRelation("PORT")).intValue();
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+
+ connectStr += curPort;
+
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ // get the bridge factory
+ XBridgeFactory xBrdgFctr = UnoRuntime.queryInterface(XBridgeFactory.class,
+ tEnv.getObjRelation("BRIDGEFACTORY"));
+
+ // get the acceptor
+ XAcceptor xAcc = UnoRuntime.queryInterface(
+ XAcceptor.class, tEnv.getObjRelation("ACCEPTOR"));
+
+ // instance provider
+ XInstanceProvider xInstProv = new MyInstanceProvider(xMSF);
+ // thread for providing a bridge
+ BridgeThread brThread = new BridgeThread(xAcc, xBrdgFctr,
+ xInstProv, connectStr);
+ brThread.start();
+
+ util.utils.shortWait();
+ // get an instance from the remote
+ Object obj = oObj.resolve(
+ "uno:" + connectStr + ";urp;com.sun.star.lang.ServiceManager");
+ // got the instance?
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, obj);
+
+ if (brThread.isAlive())
+ brThread.interrupt();
+
+ tRes.tested("resolve()", oMSF != null);
+ } catch (NoConnectException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ } catch (ConnectionSetupException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ } catch (IllegalArgumentException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/chart/_BarDiagram.java b/qadevOOo/tests/java/ifc/chart/_BarDiagram.java
new file mode 100644
index 000000000..4d7637623
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_BarDiagram.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.BarDiagram</code>
+* service properties:
+* <ul>
+* <li><code>'Vertical'</code></li>
+* <li><code>'Deep'</code></li>
+* <li><code>'StackedBarsConnected'</code></li>
+* <li><code>'NumberOfLines'</code></li>
+* </ul>
+* Properties testing is automated
+* by <code>lib.MultiPropertyTest</code> except property
+* <code>'NumberOfLines'</code>. <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'BAR'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* <ul> <p>
+* @see com.sun.star.chart.BarDiagram
+* @see com.sun.star.chart.XChartDocument
+* @see com.sun.star.chart.XDiagram
+* @see lib.MultiPropertyTest
+*/
+public class _BarDiagram extends MultiPropertyTest {
+
+ XChartDocument doc = null;
+ XDiagram oldDiagram = null;
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to BarDiagram");
+ doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram bar = (XDiagram) tEnv.getObjRelation("BAR");
+ if (bar == null) throw new StatusException(Status.failed
+ ("Relation 'BAR' not found"));
+
+ oldDiagram = doc.getDiagram();
+ doc.setDiagram(bar);
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ log.println("Set it to 3D");
+ try {
+ oObj.setPropertyValue("Dim3D", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+
+ /**
+ * Sets the old diagram for a chart document.
+ */
+ @Override
+ protected void after() {
+ doc.setDiagram(oldDiagram);
+ }
+
+ protected PropertyTester LineTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ int a = 0;
+ int b = 2;
+ if ( ((Integer) oldValue).intValue() == a)
+ return Integer.valueOf(b); else
+ return Integer.valueOf(a);
+ }
+ } ;
+
+ /**
+ * Tests property 'NumberOfLines'.
+ * This property tests when diagram in 2D-mode only
+ * except all other properties. This property is currently supported by
+ * two dimensional vertical bar charts only.
+ */
+ public void _NumberOfLines() {
+ log.println("Set it to 2D");
+ try {
+ oObj.setPropertyValue("Dim3D", Boolean.FALSE);
+ oObj.setPropertyValue("Vertical", Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+
+ log.println("Testing with custom Property tester") ;
+ testProperty("NumberOfLines", LineTester) ;
+ }
+} // EOF BarDiagram
+
diff --git a/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java b/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java
new file mode 100644
index 000000000..401b1d9bb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java
@@ -0,0 +1,123 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.Chart3DBarProperties</code>
+* service properties:
+* <ul>
+* <li><code> SolidType</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'BAR'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* <ul> <p>
+* @see com.sun.star.chart.Chart3DBarProperties
+* @see com.sun.star.chart.XChartDocument
+* @see com.sun.star.chart.XDiagram
+*/
+public class _Chart3DBarProperties extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to BarDiagram");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram bar = (XDiagram) tEnv.getObjRelation("BAR");
+ if (bar == null) throw new StatusException(Status.failed
+ ("Relation 'BAR' not found"));
+
+ doc.setDiagram(bar);
+ log.println("Change Diagram to 3D");
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ try {
+ oObj.setPropertyValue("Dim3D", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't change Diagram to 3D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram to 3D", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't change Diagram to 3D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram to 3D", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't change Diagram to 3D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram to 3D", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't change Diagram to 3D");
+ e.printStackTrace(log);
+ 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.
+ */
+ @Override
+ 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 = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ try {
+ oObj.setPropertyValue("Dim3D", 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/_ChartAxis.java b/qadevOOo/tests/java/ifc/chart/_ChartAxis.java
new file mode 100644
index 000000000..2a295c208
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartAxis.java
@@ -0,0 +1,200 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.StatusException;
+import util.ValueChanger;
+
+/**
+* Testing <code>com.sun.star.chart.ChartAxis</code>
+* service properties:
+* <ul>
+* <li><code> ArrangeOrder</code></li>
+* <li><code> AutoMax</code></li>
+* <li><code> AutoMin</code></li>
+* <li><code> AutoOrigin</code></li>
+* <li><code> AutoStepHelp</code></li>
+* <li><code> AutoStepMain</code></li>
+* <li><code> DisplayLabels</code></li>
+* <li><code> GapWidth</code></li>
+* <li><code> HelpMarks</code></li>
+* <li><code> Logarithmic</code></li>
+* <li><code> Marks</code></li>
+* <li><code> Max</code></li>
+* <li><code> Min</code></li>
+* <li><code> NumberFormat</code></li>
+* <li><code> Origin</code></li>
+* <li><code> Overlap</code></li>
+* <li><code> StepHelp</code></li>
+* <li><code> StepMain</code></li>
+* <li><code> TextBreak</code></li>
+* <li><code> TextRotation</code></li>
+* <li><code> TextCanOverlap</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartAxis
+*/
+public class _ChartAxis extends MultiPropertyTest {
+
+ /**
+ * Tests property 'Max'.
+ * Property 'AutoOrigin' sets to true and property 'AutoMax'
+ * sets to false before test.
+ */
+ public void _Max() {
+ try {
+ //if AutoOrigin isn't true then this property works only when
+ //current Origin is less than new value of Max
+ oObj.setPropertyValue("AutoOrigin", Boolean.TRUE);
+ oObj.setPropertyValue("AutoMax",Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ }
+
+ testProperty("Max");
+ }
+
+ /**
+ * Tests property 'Min'.
+ * Property 'AutoOrigin' sets to true and property 'AutoMin'
+ * sets to false before test.
+ */
+ public void _Min() {
+ try {
+ //if AutoOrigin isn't true then this property works only when
+ //current Origin is greater than new value of Min
+ oObj.setPropertyValue("AutoOrigin", Boolean.TRUE);
+ oObj.setPropertyValue("AutoMin", Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ }
+
+ testProperty("Min");
+ }
+
+ /**
+ * Tests property 'Origin'.
+ * Property 'Logarithmic' sets to false before test.
+ */
+ public void _Origin() {
+ try {
+ oObj.setPropertyValue("Logarithmic",Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ }
+
+ testProperty("Origin");
+ }
+
+ protected PropertyTester StepMainTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ Double ValueToSet = (Double) ValueChanger.changePValue(oldValue);
+ double stm = ValueToSet.doubleValue();
+ stm = stm / 5;
+ return new Double(stm);
+ }
+ };
+
+ /**
+ * Tests property 'StepMain'.
+ * Property 'Logarithmic' and 'AutoStepMain' sets
+ * to false before test.
+ */
+ public void _StepMain() {
+ try {
+ oObj.setPropertyValue("AutoStepMain", Boolean.FALSE);
+ oObj.setPropertyValue("Logarithmic",Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't set property value", e);
+ }
+
+ testProperty("StepMain", StepMainTester);
+ }
+
+ public void _StepHelp() {
+ try {
+ oObj.setPropertyValue("AutoStepMain", Boolean.FALSE);
+ oObj.setPropertyValue("Logarithmic",Boolean.FALSE);
+ oObj.setPropertyValue("StepMain", 100.0);
+ oObj.setPropertyValue("StepHelpCount", 10);
+ } catch (com.sun.star.uno.Exception e) {
+ throw new StatusException("Couldn't set property value", e);
+ }
+ testProperty("StepHelp");
+ }
+} // finish class _ChartAxis
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartAxisXSupplier.java b/qadevOOo/tests/java/ifc/chart/_ChartAxisXSupplier.java
new file mode 100644
index 000000000..4f9075ef9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartAxisXSupplier.java
@@ -0,0 +1,132 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.chart.ChartAxisXSupplier</code>
+* service properties :
+* <ul>
+* <li><code> HasXAxis</code></li>
+* <li><code> HasXAxisDescription</code></li>
+* <li><code> HasXAxisGrid</code></li>
+* <li><code> HasXAxisHelpGrid</code></li>
+* <li><code> HasXAxisTitle</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartAxisXSupplier
+*/
+public class _ChartAxisXSupplier extends MultiPropertyTest {
+ public void _HasXAxis() {
+ try {
+ log.println("Property HasXAxis");
+ boolean res = ((Boolean)oObj.getPropertyValue(
+ "HasXAxis")).booleanValue();
+ if (!res)
+ oObj.setPropertyValue("HasXAxis", Boolean.TRUE);
+ // test connected property HasXAxisDescription
+ if (!((Boolean)oObj.getPropertyValue(
+ "HasXAxisDescription")).booleanValue())
+ oObj.setPropertyValue("HasXAxisDescription", Boolean.TRUE);
+
+ oObj.setPropertyValue("HasXAxis", Boolean.FALSE);
+ boolean setVal = ((Boolean)oObj.getPropertyValue(
+ "HasXAxis")).booleanValue();
+ log.println("Start value: " + setVal);
+ // description should also be false now
+ setVal |= ((Boolean)oObj.getPropertyValue(
+ "HasXAxisDescription")).booleanValue();
+ log.println("Connected value axis description: " + setVal);
+
+ oObj.setPropertyValue("HasXAxis", Boolean.TRUE);
+ setVal |= !((Boolean)oObj.getPropertyValue(
+ "HasXAxis")).booleanValue();
+ log.println("Changed value: " + !setVal);
+
+ // description should be true again
+ setVal |= !((Boolean)oObj.getPropertyValue(
+ "HasXAxisDescription")).booleanValue();
+ log.println("Changed connected value axis description: " + !setVal);
+
+ tRes.tested("HasXAxis", !setVal);
+ // leave axis untouched
+ oObj.setPropertyValue("HasXAxis", Boolean.valueOf(res));
+ }
+ catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxis", false);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxis", false);
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxis", false);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxis", false);
+ }
+ }
+
+ public void _HasXAxisDescription() {
+ requiredMethod("HasXAxis");
+ try {
+ log.println("Property HasXAxisDescription");
+ if (!((Boolean)oObj.getPropertyValue("HasXAxis")).booleanValue())
+ oObj.setPropertyValue("HasXAxis", Boolean.TRUE);
+
+ boolean res = ((Boolean)oObj.getPropertyValue(
+ "HasXAxisDescription")).booleanValue();
+ log.println("Start value: " + res);
+
+ oObj.setPropertyValue("HasXAxisDescription", Boolean.valueOf(!res));
+ boolean setValue = ((Boolean)oObj.getPropertyValue(
+ "HasXAxisDescription")).booleanValue();
+ log.println("Changed value: " + setValue);
+ tRes.tested("HasXAxisDescription", res != setValue);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxisDescription", false);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxisDescription", false);
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxisDescription", false);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasXAxisDescription", false);
+ }
+ }
+} // EOF ChartAxisXSupplier
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartAxisYSupplier.java b/qadevOOo/tests/java/ifc/chart/_ChartAxisYSupplier.java
new file mode 100644
index 000000000..ca2d6aedf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartAxisYSupplier.java
@@ -0,0 +1,158 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.ChartAxisYSupplier</code>
+* service properties :
+* <ul>
+* <li><code> HasYAxis</code></li>
+* <li><code> HasYAxisDescription</code></li>
+* <li><code> HasYAxisGrid</code></li>
+* <li><code> HasYAxisHelpGrid</code></li>
+* <li><code> HasYAxisTitle</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartAxisYSupplier
+*/
+public class _ChartAxisYSupplier extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ }
+
+ public void _HasYAxis() {
+ try {
+ log.println("Property HasYAxis");
+ boolean res = ((Boolean)oObj.getPropertyValue(
+ "HasYAxis")).booleanValue();
+ if (!res)
+ oObj.setPropertyValue("HasYAxis", Boolean.TRUE);
+ // test connected property HasYAxisDescription
+ if (!((Boolean)oObj.getPropertyValue(
+ "HasYAxisDescription")).booleanValue())
+ oObj.setPropertyValue("HasYAxisDescription", Boolean.TRUE);
+
+ oObj.setPropertyValue("HasYAxis", Boolean.FALSE);
+ boolean setVal = ((Boolean)oObj.getPropertyValue(
+ "HasYAxis")).booleanValue();
+ log.println("Start value: " + setVal);
+ // description should also be false now
+ setVal |= ((Boolean)oObj.getPropertyValue(
+ "HasYAxisDescription")).booleanValue();
+ log.println("Connected value axis description: " + setVal);
+
+ oObj.setPropertyValue("HasYAxis", Boolean.TRUE);
+ setVal |= !((Boolean)oObj.getPropertyValue(
+ "HasYAxis")).booleanValue();
+ log.println("Changed value: " + !setVal);
+
+ // description should be true again
+ setVal |= !((Boolean)oObj.getPropertyValue(
+ "HasYAxisDescription")).booleanValue();
+ log.println("Changed connected value axis description: "+!setVal);
+
+ tRes.tested("HasYAxis", !setVal);
+ // leave axis untouched
+ oObj.setPropertyValue("HasYAxis", Boolean.valueOf(res));
+ }
+ catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxis", false);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxis", false);
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxis", false);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxis", false);
+ }
+ }
+
+ public void _HasYAxisDescription() {
+ requiredMethod("HasYAxis");
+ try {
+ log.println("Property HasYAxisDescription");
+ if (!((Boolean)oObj.getPropertyValue("HasYAxis")).booleanValue())
+ oObj.setPropertyValue("HasYAxis", Boolean.TRUE);
+
+ boolean res = ((Boolean)oObj.getPropertyValue(
+ "HasYAxisDescription")).booleanValue();
+ log.println("Start value: " + res);
+
+ oObj.setPropertyValue("HasYAxisDescription", Boolean.valueOf(!res));
+ boolean setValue = ((Boolean)oObj.getPropertyValue(
+ "HasYAxisDescription")).booleanValue();
+ log.println("Changed value: " + setValue);
+ tRes.tested("HasYAxisDescription", res != setValue);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxisDescription", false);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxisDescription", false);
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxisDescription", false);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasYAxisDescription", false);
+ }
+ }
+
+} // EOF ChartAxisYSupplier
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartAxisZSupplier.java b/qadevOOo/tests/java/ifc/chart/_ChartAxisZSupplier.java
new file mode 100644
index 000000000..30ac5bc92
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartAxisZSupplier.java
@@ -0,0 +1,196 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.ChartAxisZSupplier</code>
+* service properties :
+* <ul>
+* <li><code> HasZAxis</code></li>
+* <li><code> HasZAxisDescription</code></li>
+* <li><code> HasZAxisGrid</code></li>
+* <li><code> HasZAxisHelpGrid</code></li>
+* <li><code> HasZAxisTitle</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'BAR'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document</li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartAxisZSupplier
+*/
+public class _ChartAxisZSupplier extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to BarDiagram");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram bar = (XDiagram) tEnv.getObjRelation("BAR");
+ if (bar == null) throw new StatusException(Status.failed
+ ("Relation 'BAR' not found"));
+
+ doc.setDiagram(bar);
+ log.println("Set it to 3D");
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ try {
+ oObj.setPropertyValue("Dim3D", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+
+ public void _HasZAxis() {
+ try {
+ log.println("Property HasZAxis");
+ boolean res = ((Boolean)oObj.getPropertyValue(
+ "HasZAxis")).booleanValue();
+ if (!res)
+ oObj.setPropertyValue("HasZAxis", Boolean.TRUE);
+ // test connected property HasZAxisDescription
+ if (!((Boolean)oObj.getPropertyValue(
+ "HasZAxisDescription")).booleanValue())
+ oObj.setPropertyValue("HasZAxisDescription", Boolean.TRUE);
+
+ oObj.setPropertyValue("HasZAxis", Boolean.FALSE);
+ boolean setVal = ((Boolean)oObj.getPropertyValue(
+ "HasZAxis")).booleanValue();
+ log.println("Start value: " + setVal);
+ // description should also be false now
+ setVal |= ((Boolean)oObj.getPropertyValue(
+ "HasZAxisDescription")).booleanValue();
+ log.println("Connected value axis description: " + setVal);
+
+ oObj.setPropertyValue("HasZAxis", Boolean.TRUE);
+ setVal |= !((Boolean)oObj.getPropertyValue(
+ "HasZAxis")).booleanValue();
+ log.println("Changed value: " + !setVal);
+
+ // description should be true again
+ setVal |= !((Boolean)oObj.getPropertyValue(
+ "HasZAxisDescription")).booleanValue();
+ log.println("Changed connected value axis description: " + !setVal);
+
+ tRes.tested("HasZAxis", !setVal);
+ // leave axis untouched
+ oObj.setPropertyValue("HasZAxis", Boolean.valueOf(res));
+ }
+ catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxis", false);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxis", false);
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxis", false);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxis", false);
+ }
+ }
+
+ public void _HasZAxisDescription() {
+ requiredMethod("HasZAxis");
+ try {
+ log.println("Property HasZAxisDescription");
+ if (!((Boolean)oObj.getPropertyValue("HasZAxis")).booleanValue())
+ oObj.setPropertyValue("HasZAxis", Boolean.TRUE);
+
+ boolean res = ((Boolean)oObj.getPropertyValue(
+ "HasZAxisDescription")).booleanValue();
+ log.println("Start value: " + res);
+
+ oObj.setPropertyValue("HasZAxisDescription", Boolean.valueOf(!res));
+ boolean setValue = ((Boolean)oObj.getPropertyValue(
+ "HasZAxisDescription")).booleanValue();
+ log.println("Changed value: " + setValue);
+ tRes.tested("HasZAxisDescription", res != setValue);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxisDescription", false);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxisDescription", false);
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxisDescription", false);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println(e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("HasZAxisDescription", false);
+ }
+ }
+
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // EOF ChartAxisZSupplier
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java b/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java
new file mode 100644
index 000000000..e7872378c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java
@@ -0,0 +1,120 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+import util.utils;
+
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+
+/**
+* Testing <code>com.sun.star.chart.ChartDataPointProperties</code>
+* service properties :
+* <ul>
+* <li><code> DataCaption</code></li>
+* <li><code> SymbolType</code></li>
+* <li><code> SymbolBitmapURL</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>space-metal.jpg</code> :
+* for test of property 'SymbolBitmapURL' </li>
+* <ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'LINE'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartDataPointProperties
+*/
+public class _ChartDataPointProperties extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to LineDiagram");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram Line = (XDiagram) tEnv.getObjRelation("LINE");
+ if (Line == null) throw new StatusException(Status.failed
+ ("Relation 'LINE' not found"));
+
+ doc.setDiagram(Line);
+ }
+
+ /**
+ * Tests property 'SymbolBitmapURL' using file <code>polibal.gif</code>.
+ */
+ public void _SymbolBitmapURL() {
+ try {
+ oObj.setPropertyValue(
+ "SymbolType",
+ Integer.valueOf(com.sun.star.chart.ChartSymbolType.BITMAPURL) );
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+
+ try {
+ oObj.setPropertyValue(
+ "SymbolBitmapURL",
+ utils.getFullTestURL("space-metal.jpg") );
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartDataRowProperties.java b/qadevOOo/tests/java/ifc/chart/_ChartDataRowProperties.java
new file mode 100644
index 000000000..5cd275f76
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartDataRowProperties.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.chart.ChartDataRowProperties</code>
+* service properties :
+* <ul>
+* <li><code> Axis</code></li>
+* <li><code> DataErrorProperties</code></li>
+* <li><code> DataMeanValueProperties</code></li>
+* <li><code> DataRegressionProperties</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartDataRowProperties
+*/
+public class _ChartDataRowProperties extends MultiPropertyTest {
+
+ public void _Axis() {
+ try {
+ Integer axis = (Integer) oObj.getPropertyValue("Axis");
+ int newValue;
+ if (axis.intValue()==2) {
+ newValue = 4;
+ } else {
+ newValue = 2;
+ }
+ oObj.setPropertyValue("Axis", Integer.valueOf(newValue));
+ axis = (Integer) oObj.getPropertyValue("Axis");
+ tRes.tested("Axis",axis.intValue()==newValue);
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ tRes.tested("Axis",false);
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartDocument.java b/qadevOOo/tests/java/ifc/chart/_ChartDocument.java
new file mode 100644
index 000000000..bf9215f01
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartDocument.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.chart.ChartDocument</code>
+* service properties :
+* <ul>
+* <li><code> HasLegend</code></li>
+* <li><code> HasMainTitle</code></li>
+* <li><code> HasSubTitle</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartDocument
+*/
+public class _ChartDocument extends MultiPropertyTest {
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartLegend.java b/qadevOOo/tests/java/ifc/chart/_ChartLegend.java
new file mode 100644
index 000000000..ccfd408f4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartLegend.java
@@ -0,0 +1,33 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.chart.ChartLegend</code>
+* service properties :
+* <ul>
+* <li><code> Alignment</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartLegend
+*/
+public class _ChartLegend extends MultiPropertyTest {
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartStatistics.java b/qadevOOo/tests/java/ifc/chart/_ChartStatistics.java
new file mode 100644
index 000000000..3abbcc03c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartStatistics.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.ChartStatistics</code>
+* service properties :
+* <ul>
+* <li><code> RegressionCurves</code></li>
+* <li><code> ConstantErrorLow</code></li>
+* <li><code> ConstantErrorHigh</code></li>
+* <li><code> MeanValue</code></li>
+* <li><code> ErrorCategory</code></li>
+* <li><code> PercentageError</code></li>
+* <li><code> ErrorMargin</code></li>
+* <li><code> ErrorIndicator</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartStatistics
+*/
+public class _ChartStatistics extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to LineDiagram");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartTableAddressSupplier.java b/qadevOOo/tests/java/ifc/chart/_ChartTableAddressSupplier.java
new file mode 100644
index 000000000..f3cf71a25
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartTableAddressSupplier.java
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.chart.ChartSeriesAddress;
+
+/**
+* Testing <code>com.sun.star.chart.ChartTableAddressSupplier</code>
+* service properties :
+* <ul>
+* <li><code> CategoriesRangeAddress</code></li>
+* <li><code> SeriesAddresses</code></li>
+* <li><code> MainTitleAddress</code></li>
+* <li><code> SubTitleAddress</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartTableAddressSupplier
+*/
+public class _ChartTableAddressSupplier extends MultiPropertyTest {
+
+ /**
+ * Tests property 'SeriesAddresses'.
+ */
+ public void _SeriesAddresses() {
+ testProperty("SeriesAddresses", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ ChartSeriesAddress[] addr = (ChartSeriesAddress[]) oldValue ;
+ ChartSeriesAddress[] newAddr = null ;
+ if (addr.length > 1) {
+ newAddr = new ChartSeriesAddress[addr.length - 1] ;
+ System.arraycopy(addr, 0, newAddr, 0, addr.length - 1) ;
+ } else {
+ newAddr = addr ;
+ }
+
+ return newAddr ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartTitle.java b/qadevOOo/tests/java/ifc/chart/_ChartTitle.java
new file mode 100644
index 000000000..a8bf068cf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartTitle.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import util.ValueChanger;
+
+/**
+* Testing <code>com.sun.star.chart.ChartTitle</code>
+* service properties :
+* <ul>
+* <li><code> TextRotation</code></li>
+* <li><code> String</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartTitle
+*/
+public class _ChartTitle extends MultiPropertyTest {
+
+ /**
+ * Tests property 'TextRotation'.
+ */
+ public void _TextRotation() {
+ testProperty("TextRotation", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ Object ValueToSet = ValueChanger.changePValue(oldValue);
+ int ro = ((Integer) ValueToSet).intValue() * 100;
+ return Integer.valueOf( ro );
+ }
+ } );
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartTwoAxisXSupplier.java b/qadevOOo/tests/java/ifc/chart/_ChartTwoAxisXSupplier.java
new file mode 100644
index 000000000..fcd260994
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartTwoAxisXSupplier.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.ChartTwoAxisXSupplier</code>
+* service properties :
+* <ul>
+* <li><code> HasSecondaryXAxis</code></li>
+* <li><code> HasSecondaryXAxisDescription</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'BAR'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartTwoAxisXSupplier
+*/
+public class _ChartTwoAxisXSupplier extends MultiPropertyTest {
+
+ XChartDocument doc = null;
+ XDiagram oldDiagram = null;
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to BarDiagram");
+ doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram bar = (XDiagram) tEnv.getObjRelation("BAR");
+ if (bar == null) throw new StatusException(Status.failed
+ ("Relation 'BAR' not found"));
+
+ oldDiagram = doc.getDiagram();
+
+ doc.setDiagram(bar);
+ log.println("Set it to 3D");
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ try {
+ oObj.setPropertyValue("Dim3D", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+
+ /**
+ * Sets the old diagram for a chart document.
+ */
+ @Override
+ protected void after() {
+ doc.setDiagram(oldDiagram);
+ }
+} // EOF ChartTwoAxisXSupplier
+
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartTwoAxisYSupplier.java b/qadevOOo/tests/java/ifc/chart/_ChartTwoAxisYSupplier.java
new file mode 100644
index 000000000..a6b690d71
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_ChartTwoAxisYSupplier.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.ChartTwoAxisYSupplier</code>
+* service properties :
+* <ul>
+* <li><code> HasSecondaryYAxis</code></li>
+* <li><code> HasSecondaryYAxisDescription</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'BAR'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartTwoAxisYSupplier
+*/
+public class _ChartTwoAxisYSupplier extends MultiPropertyTest {
+
+ XChartDocument doc = null;
+ XDiagram oldDiagram = null;
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to BarDiagram");
+ doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram bar = (XDiagram) tEnv.getObjRelation("BAR");
+ if (bar == null) throw new StatusException(Status.failed
+ ("Relation 'BAR' not found"));
+
+ oldDiagram = doc.getDiagram();
+
+ doc.setDiagram(bar);
+ log.println("Set it to 3D");
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ try {
+ oObj.setPropertyValue("Dim3D", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+
+ /**
+ * Sets the old diagram for a chart document.
+ */
+ @Override
+ protected void after() {
+ doc.setDiagram(oldDiagram);
+ }
+} // EOF ChartTwoAxisYSupplier
+
diff --git a/qadevOOo/tests/java/ifc/chart/_Diagram.java b/qadevOOo/tests/java/ifc/chart/_Diagram.java
new file mode 100644
index 000000000..ea4fe01ca
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_Diagram.java
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.Diagram</code>
+* service properties :
+* <ul>
+* <li><code> DataCaption</code></li>
+* <li><code> DataRowSource</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.Diagram
+*/
+public class _Diagram extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to LineDiagram");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_Dim3DDiagram.java b/qadevOOo/tests/java/ifc/chart/_Dim3DDiagram.java
new file mode 100644
index 000000000..512bb0016
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_Dim3DDiagram.java
@@ -0,0 +1,58 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.Dim3DDiagram</code>
+* service properties :
+* <ul>
+* <li><code> Dim3D</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.Dim3DDiagram
+*/
+public class _Dim3DDiagram extends MultiPropertyTest {
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to LineDiagram");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ }
+} // EOF Dim3DDiagram
+
diff --git a/qadevOOo/tests/java/ifc/chart/_LineDiagram.java b/qadevOOo/tests/java/ifc/chart/_LineDiagram.java
new file mode 100644
index 000000000..ef48ee877
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_LineDiagram.java
@@ -0,0 +1,199 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.LineDiagram</code>
+* service properties :
+* <ul>
+* <li><code> SymbolType</code></li>
+* <li><code> SymbolSize</code></li>
+* <li><code> SymbolBitmapURL</code></li>
+* <li><code> Lines</code></li>
+* <li><code> SplineType</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>space-metal.jpg</code> :
+* for test of property 'SymbolBitmapURL' </li>
+* <li> <code>crazy-blue.jpg</code> :
+* for test of property 'SymbolBitmapURL' </li>
+* <ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'LINE'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.LineDiagram
+*/
+public class _LineDiagram extends MultiPropertyTest {
+
+ XChartDocument doc = null;
+ XDiagram oldDiagram = null;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to LineDiagram");
+ doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram Line = (XDiagram) tEnv.getObjRelation("LINE");
+ if (Line == null) throw new StatusException(Status.failed
+ ("Relation 'LINE' not found"));
+
+ oldDiagram = doc.getDiagram();
+ doc.setDiagram(Line);
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ }
+
+ /**
+ * Sets the old diagram for a chart document.
+ */
+ @Override
+ protected void after() {
+ doc.setDiagram(oldDiagram);
+ }
+
+ protected PropertyTester SymbolTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+
+ int a = com.sun.star.chart.ChartSymbolType.AUTO;
+ int b = com.sun.star.chart.ChartSymbolType.NONE;
+ if ( ((Integer) oldValue).intValue() == a)
+ return Integer.valueOf(b); else
+ return Integer.valueOf(a);
+ }
+ } ;
+
+ protected PropertyTester SplineTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+
+ int a = 0;
+ int b = 2;
+ if ( ((Integer) oldValue).intValue() == a)
+ return Integer.valueOf(b); else
+ return Integer.valueOf(a);
+ }
+ } ;
+
+ /**
+ * Tests property 'SymbolType'.
+ */
+ public void _SymbolType() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("SymbolType", SymbolTester) ;
+ try {
+ oObj.setPropertyValue("SymbolType",Integer.valueOf(-2));
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+
+ /**
+ * Tests property 'SplineType'.
+ */
+ public void _SplineType() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("SplineType", SplineTester) ;
+ }
+
+ /**
+ * Tests property 'SymbolBitmapURL'.
+ */
+ public void _SymbolBitmapURL() {
+ log.println("Testing with custom Property tester") ;
+ try {
+ oObj.setPropertyValue("SymbolType",
+ Integer.valueOf(com.sun.star.chart.ChartSymbolType.BITMAPURL));
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+
+ try {
+ oObj.setPropertyValue(
+ "SymbolBitmapURL",
+ util.utils.getFullTestURL("space-metal.jpg") );
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while set property value");
+ e.printStackTrace(log);
+ throw new StatusException("Exception while set property value", e);
+ }
+ }
+} // EOF LineDiagram
+
diff --git a/qadevOOo/tests/java/ifc/chart/_StackableDiagram.java b/qadevOOo/tests/java/ifc/chart/_StackableDiagram.java
new file mode 100644
index 000000000..9fbb2bed2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_StackableDiagram.java
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.StackableDiagram</code>
+* service properties :
+* <ul>
+* <li><code> Percent</code></li>
+* <li><code> Stacked</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'STACK'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.StackableDiagram
+*/
+public class _StackableDiagram extends MultiPropertyTest {
+
+ XChartDocument doc = null;
+ XDiagram oldDiagram = null;
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to LineDiagram");
+ doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram stack = (XDiagram) tEnv.getObjRelation("STACK");
+ if (stack == null) throw new StatusException(Status.failed
+ ("Relation 'STACK' not found"));
+
+ oldDiagram = doc.getDiagram();
+
+ doc.setDiagram(stack);
+ oObj = UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ }
+
+ /**
+ * Sets the old diagram for a chart document.
+ */
+ @Override
+ protected void after() {
+ doc.setDiagram(oldDiagram);
+ }
+
+} // EOF StackableDiagram
+
diff --git a/qadevOOo/tests/java/ifc/chart/_StockDiagram.java b/qadevOOo/tests/java/ifc/chart/_StockDiagram.java
new file mode 100644
index 000000000..32c020024
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_StockDiagram.java
@@ -0,0 +1,79 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.StockDiagram</code>
+* service properties :
+* <ul>
+* <li><code> Volume</code></li>
+* <li><code> UpDown</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CHARTDOC'</code> (of type <code>XChartDocument</code>):
+* to have reference to chart document </li>
+* <li> <code>'STOCK'</code> (of type <code>XDiagram</code>):
+* relation that use as parameter for method setDiagram of chart document </li>
+* </ul> <p>
+* @see com.sun.star.chart.StockDiagram
+*/
+public class _StockDiagram extends MultiPropertyTest {
+
+ XDiagram oldDiagram = null;
+ XChartDocument doc = null;
+
+ /**
+ * Retrieves object relations and prepares a chart document.
+ * @throws StatusException if one of relations not found.
+ */
+ @Override
+ protected void before() {
+ log.println("Setting Diagram type to StockDiagram");
+ doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ XDiagram stock = (XDiagram) tEnv.getObjRelation("STOCK");
+ if (stock == null) throw new StatusException(Status.failed
+ ("Relation 'STOCK' not found"));
+
+ oldDiagram = doc.getDiagram();
+ doc.setDiagram(stock);
+ oObj = UnoRuntime.queryInterface(XPropertySet.class, doc.getDiagram());
+ }
+
+ /**
+ * Sets the old diagram for a chart document.
+ */
+ @Override
+ protected void after() {
+ doc.setDiagram(oldDiagram);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/chart/_X3DDisplay.java b/qadevOOo/tests/java/ifc/chart/_X3DDisplay.java
new file mode 100644
index 000000000..a9db80003
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_X3DDisplay.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.X3DDisplay;
+
+/**
+* Testing <code>com.sun.star.chart.X3DDisplay</code>
+* interface methods :
+* <ul>
+* <li><code> getWall()</code></li>
+* <li><code> getFloor()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.X3DDisplay
+*/
+public class _X3DDisplay extends MultiMethodTest {
+
+ public X3DDisplay oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value that isn't null. <p>
+ */
+ public void _getWall() {
+ result = true;
+
+ XPropertySet Wall = oObj.getWall();
+ result = (Wall != null);
+
+ tRes.tested("getWall()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value that isn't null. <p>
+ */
+ public void _getFloor() {
+ result = true;
+
+ XPropertySet Floor = oObj.getWall();
+ result = (Floor != null);
+
+ tRes.tested("getFloor()", result);
+ }
+
+} // EOF X3DDisplay
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XAxisXSupplier.java b/qadevOOo/tests/java/ifc/chart/_XAxisXSupplier.java
new file mode 100644
index 000000000..5063b9a4b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XAxisXSupplier.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XAxisXSupplier;
+import com.sun.star.drawing.XShape;
+
+/**
+* Testing <code>com.sun.star.chart.XAxisXSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getXMainGrid()</code></li>
+* <li><code> getXAxisTitle()</code></li>
+* <li><code> getXAxis()</code></li>
+* <li><code> getXHelpGrid()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XAxisXSupplier
+*/
+public class _XAxisXSupplier extends MultiMethodTest {
+
+ public XAxisXSupplier oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value that isn't null. <p>
+ */
+ public void _getXMainGrid() {
+ result = true;
+
+ XPropertySet MGrid = oObj.getXMainGrid();
+ result = (MGrid != null);
+
+ tRes.tested("getXMainGrid()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value that isn't null. <p>
+ */
+ public void _getXAxisTitle() {
+ result = true;
+
+ XShape title = oObj.getXAxisTitle();
+ result = (title != null);
+
+ tRes.tested("getXAxisTitle()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value that isn't null. <p>
+ */
+ public void _getXAxis() {
+ result = true;
+
+ XPropertySet axis = oObj.getXAxis();
+ result = (axis != null);
+
+ tRes.tested("getXAxis()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value that isn't null. <p>
+ */
+ public void _getXHelpGrid() {
+ result = true;
+
+ XPropertySet HGrid = oObj.getXHelpGrid();
+ result = (HGrid != null);
+
+ tRes.tested("getXHelpGrid()", result);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XAxisYSupplier.java b/qadevOOo/tests/java/ifc/chart/_XAxisYSupplier.java
new file mode 100644
index 000000000..a5f3fc84f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XAxisYSupplier.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XAxisYSupplier;
+import com.sun.star.drawing.XShape;
+
+/**
+* Testing <code>com.sun.star.chart.XAxisYSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getYMainGrid()</code></li>
+* <li><code> getYAxisTitle()</code></li>
+* <li><code> getYAxis()</code></li>
+* <li><code> getYHelpGrid()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XAxisYSupplier
+*/
+public class _XAxisYSupplier extends MultiMethodTest {
+
+ public XAxisYSupplier oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getYMainGrid() {
+ result = true;
+
+ XPropertySet MGrid = oObj.getYMainGrid();
+ result = (MGrid != null);
+
+ tRes.tested("getYMainGrid()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getYAxisTitle() {
+ result = true;
+
+ XShape title = oObj.getYAxisTitle();
+ result = (title != null);
+
+ tRes.tested("getYAxisTitle()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getYAxis() {
+ result = true;
+
+ XPropertySet axis = oObj.getYAxis();
+ result = (axis != null);
+
+ tRes.tested("getYAxis()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getYHelpGrid() {
+ result = true;
+
+ XPropertySet HGrid = oObj.getYHelpGrid();
+ result = (HGrid != null);
+
+ tRes.tested("getYHelpGrid()", result);
+ }
+} // EOF XAxisYSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XAxisZSupplier.java b/qadevOOo/tests/java/ifc/chart/_XAxisZSupplier.java
new file mode 100644
index 000000000..00b89656c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XAxisZSupplier.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XAxisZSupplier;
+import com.sun.star.drawing.XShape;
+
+/**
+* Testing <code>com.sun.star.chart.XAxisZSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getZMainGrid()</code></li>
+* <li><code> getZAxisTitle()</code></li>
+* <li><code> getZAxis()</code></li>
+* <li><code> getZHelpGrid()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XAxisZSupplier
+*/
+public class _XAxisZSupplier extends MultiMethodTest {
+ public XAxisZSupplier oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getZMainGrid() {
+ result = true;
+
+ XPropertySet MGrid = oObj.getZMainGrid();
+ result = (MGrid != null);
+
+ tRes.tested("getZMainGrid()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getZAxisTitle() {
+ result = true;
+
+ XShape title = oObj.getZAxisTitle();
+ result = (title != null);
+
+ tRes.tested("getZAxisTitle()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getZAxis() {
+ result = true;
+
+ XPropertySet axis = oObj.getZAxis();
+ result = (axis != null);
+
+ tRes.tested("getZAxis()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the method returns
+ * value that isn't null. <p>
+ */
+ public void _getZHelpGrid() {
+ result = true;
+
+ XPropertySet HGrid = oObj.getZHelpGrid();
+ result = (HGrid != null);
+
+ tRes.tested("getZHelpGrid()", result);
+ }
+
+} // EOF XAxisZSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XChartData.java b/qadevOOo/tests/java/ifc/chart/_XChartData.java
new file mode 100644
index 000000000..c0a4bc3c7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XChartData.java
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.chart;
+
+import com.sun.star.chart.ChartDataChangeEvent;
+import com.sun.star.chart.XChartData;
+import com.sun.star.chart.XChartDataArray;
+import com.sun.star.chart.XChartDataChangeEventListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiMethodTest;
+
+
+/**
+* Testing <code>com.sun.star.chart.XChartData</code>
+* interface methods :
+* <ul>
+* <li><code> addChartDataChangeEventListener()</code></li>
+* <li><code> removeChartDataChangeEventListener()</code></li>
+* <li><code> getNotANumber()</code></li>
+* <li><code> isNotANumber()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XChartData
+*/
+public class _XChartData extends MultiMethodTest {
+ public XChartData oObj = null;
+ boolean result = true;
+ double nan = 0;
+ XChartDataArray dataArray = null;
+ boolean[] dataChanged = new boolean[2];
+ XChartDataChangeEventListener listener1 = new MyEventListener();
+ XChartDataChangeEventListener listener2 = new MyEventListener2();
+
+ /**
+ * Test calls the method adding two listeners and then changes data. <p>
+ * Has <b> OK </b> status if after data were changed
+ * listeners were called. <p>
+ */
+ public void _addChartDataChangeEventListener() {
+ dataChanged[0] = false;
+ dataChanged[1] = false;
+
+ oObj.addChartDataChangeEventListener(listener1);
+ oObj.addChartDataChangeEventListener(listener2);
+
+ dataArray = UnoRuntime.queryInterface(
+ XChartDataArray.class, oObj);
+
+ double[][] data = dataArray.getData();
+ data[0][0] += 0.1;
+ dataArray.setData(data);
+
+ if (!dataChanged[0]) {
+ log.println("ChartDataChangeEventListener1 " +
+ "isn't called after changing data");
+ }
+
+ if (!dataChanged[1]) {
+ log.println("ChartDataChangeEventListener2 " +
+ "isn't called after changing data");
+ }
+
+ tRes.tested("addChartDataChangeEventListener()",
+ dataChanged[0] && dataChanged[1]);
+ }
+
+ /**
+ * Test calls the method for one listener, changes data,
+ * calls the method for other listener and again changes data. <p>
+ * Has <b> OK </b> status if listener is not called after removing. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>addChartDataChangeEventListener</code> : to have listeners
+ * that must be removed by the method </li>
+ * </ul>
+ */
+ public void _removeChartDataChangeEventListener() {
+ requiredMethod("addChartDataChangeEventListener()");
+
+ dataChanged[0] = false;
+ dataChanged[1] = false;
+
+ oObj.removeChartDataChangeEventListener(listener1);
+ dataArray = UnoRuntime.queryInterface(
+ XChartDataArray.class, oObj);
+
+ double[][] data = dataArray.getData();
+ data[0][0] += 0.1;
+ dataArray.setData(data);
+ oObj.removeChartDataChangeEventListener(listener2);
+
+ if (dataChanged[0]) {
+ log.println("ChartDataChangeEventListener1 is " +
+ "called after removing listener");
+ }
+
+ tRes.tested("removeChartDataChangeEventListener()",
+ ((!dataChanged[0]) && (dataChanged[1])));
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if the return value isn't equal to 1. <p>
+ */
+ public void _getNotANumber() {
+ result = true;
+
+ nan = oObj.getNotANumber();
+ log.println("Current NotANumber is " + nan);
+ result = nan != 1;
+
+ tRes.tested("getNotANumber()", result);
+ }
+
+ /**
+ * Test calls the method with NAN value and with non NAN value. <p>
+ * Has <b> OK </b> status if the method returns true for NAN value and
+ * returns false for other value<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>getNotANumber</code> : to have the current NAN value </li>
+ * </ul>
+ */
+ public void _isNotANumber() {
+ requiredMethod("getNotANumber()");
+ result = true;
+
+ result = (oObj.isNotANumber(nan) && !oObj.isNotANumber(nan + 1));
+
+ tRes.tested("isNotANumber()", result);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+ class MyEventListener implements XChartDataChangeEventListener {
+ public void disposing(EventObject oEvent) {
+ System.out.println("Listener1 disposed");
+ }
+
+ public void chartDataChanged(ChartDataChangeEvent ev) {
+ dataChanged[0] = true;
+ }
+ }
+
+ class MyEventListener2 implements XChartDataChangeEventListener {
+ public void disposing(EventObject oEvent) {
+ System.out.println("Listener2 disposed");
+ }
+
+ public void chartDataChanged(ChartDataChangeEvent ev) {
+ dataChanged[1] = true;
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/chart/_XChartDataArray.java b/qadevOOo/tests/java/ifc/chart/_XChartDataArray.java
new file mode 100644
index 000000000..5021657ea
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XChartDataArray.java
@@ -0,0 +1,240 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import com.sun.star.beans.XPropertySet;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.chart.XChartDataArray;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.chart.XChartDataArray</code>
+* interface methods :
+* <ul>
+* <li><code> getColumnDescriptions()</code></li>
+* <li><code> getData()</code></li>
+* <li><code> getRowDescriptions()</code></li>
+* <li><code> setColumnDescriptions()</code></li>
+* <li><code> setData()</code></li>
+* <li><code> setRowDescriptions()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XChartDataArray
+*/
+public class _XChartDataArray extends MultiMethodTest {
+
+ public XChartDataArray oObj = null;
+ boolean bResult = true;
+ String[] colDscs = new String[3];
+ String[] rowDscs = new String[3];
+ double[][] data = null;
+ private boolean mbExcludeSetRowAndSetColumn = false;
+ private String msExcludeMessage;
+
+ @Override
+ protected void before() {
+ Object o = tEnv.getObjRelation("CRDESC");
+ if (o != null) {
+ mbExcludeSetRowAndSetColumn = true;
+ msExcludeMessage = (String)o;
+ }
+ if (mbExcludeSetRowAndSetColumn) {
+ return;
+ }
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ if(xProp != null) {
+ try {
+ boolean columnAsLabel = ((Boolean)xProp.getPropertyValue("ChartColumnAsLabel")).booleanValue();
+ boolean rowAsLabel = ((Boolean)xProp.getPropertyValue("ChartRowAsLabel")).booleanValue();
+ if (!columnAsLabel) {
+ xProp.setPropertyValue("ChartColumnAsLabel", Boolean.TRUE);
+ }
+ if (!rowAsLabel) {
+ xProp.setPropertyValue("ChartRowAsLabel", Boolean.TRUE);
+ }
+ }
+ catch(Exception e) {
+ // ignore
+ }
+ }
+ }
+
+ /**
+ * Test calls the method and restores new values. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ */
+ public void _setColumnDescriptions() {
+ bResult = true;
+
+ colDscs = oObj.getColumnDescriptions();
+ if (mbExcludeSetRowAndSetColumn) {
+ log.println(msExcludeMessage);
+ throw new StatusException(Status.skipped(true));
+ }
+ for (int i = 0; i < colDscs.length; i++) {
+ colDscs[i] = "Col" + i;
+ }
+ oObj.setColumnDescriptions(colDscs);
+
+ tRes.tested("setColumnDescriptions()", bResult);
+ }
+
+ /**
+ * Test calls the method and restores new values. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setColumnDescriptions </code></li>
+ * </ul>
+ */
+ public void _setRowDescriptions() {
+ bResult = true;
+
+ rowDscs = oObj.getRowDescriptions();
+ if (mbExcludeSetRowAndSetColumn) {
+ log.println(msExcludeMessage);
+ throw new StatusException(Status.skipped(true));
+ }
+ for (int i = 0; i < rowDscs.length; i++) {
+ rowDscs[i] = "Row" + i;
+ }
+ oObj.setRowDescriptions(rowDscs);
+
+ tRes.tested("setRowDescriptions()", bResult);
+ }
+
+ /**
+ * Test calls the method and restores new values. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setRowDescriptions </code></li>
+ * </ul>
+ */
+ public void _setData() {
+ rowDscs = oObj.getRowDescriptions();
+ colDscs = oObj.getColumnDescriptions();
+
+ bResult = true;
+ double[][] _data = oObj.getData();
+ data = _data;
+ if(rowDscs.length != 0 && rowDscs.length != data.length)
+ bResult = false;
+ if(colDscs.length != 0 && colDscs.length != data[0].length)
+ bResult = false;
+ for (int i = 0; i < data.length; i++) {
+ for (int j = 0; j < data[i].length; j++)
+ data[i][j] = i * (j + 1);
+ }
+ oObj.setData(data);
+
+ tRes.tested("setData()", bResult);
+ }
+
+ /**
+ * Test calls the method and compare returned values with values restored
+ * after method <code>setColumnDescriptions</code>. <p>
+ * Has <b> OK </b> status if the returned values equils to restored values. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setData </code> : to set and restore new values </li>
+ * </ul>
+ */
+ public void _getColumnDescriptions() {
+ requiredMethod("setColumnDescriptions()");
+
+ String[] dscs = oObj.getColumnDescriptions();
+ bResult = dscs.length == colDscs.length;
+ if (bResult) {
+ for (int i = 0; i < dscs.length; i++) {
+ log.println("Col " + i + ": got " + dscs[i] + " expected: " + colDscs[i]);
+ if (!dscs[i].equals(colDscs[i])) {
+ bResult = false;
+ }
+ }
+ }
+
+ tRes.tested("getColumnDescriptions()", bResult);
+ }
+
+ /**
+ * Test calls the method and compare returned values with values restored
+ * after method <code>setRowDescriptions</code>. <p>
+ * Has <b> OK </b> status if the returned values equils to restored values. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setData </code> : to set and restore new values </li>
+ * </ul>
+ */
+ public void _getRowDescriptions() {
+ requiredMethod("setRowDescriptions()");
+
+ String[] dscs = oObj.getRowDescriptions();
+ bResult = dscs.length == rowDscs.length;
+ if (bResult) {
+ for (int i = 0; i < dscs.length; i++) {
+ log.println("Row " + i + ": got " + dscs[i] + " expected: " + rowDscs[i]);
+ if (!dscs[i].equals(rowDscs[i])) {
+ bResult = false;
+ }
+ }
+ }
+
+ tRes.tested("getRowDescriptions()", bResult);
+ }
+
+ /**
+ * Test calls the method and compare returned values with values restored
+ * after method <code>setData</code>. <p>
+ * Has <b> OK </b> status if the returned values equils to restored values. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setData </code> : to set and restore new values </li>
+ * </ul>
+ */
+ public void _getData() {
+ requiredMethod("setData()");
+ bResult = true;
+
+ double[][] _data = oObj.getData();
+ data = _data;
+ if(rowDscs.length != 0 && rowDscs.length != data.length)
+ bResult = false;
+ if(colDscs.length != 0 && colDscs.length != data[0].length)
+ bResult = false;
+ for (int i = 0; i < data.length; i++) {
+ for (int j = 0; j < data[i].length; j++) {
+ if (data[i][j] != _data[i][j]) {
+ bResult = false;
+ }
+ }
+ }
+
+ tRes.tested("getData()", bResult);
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XChartDocument.java b/qadevOOo/tests/java/ifc/chart/_XChartDocument.java
new file mode 100644
index 000000000..87fe405c5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XChartDocument.java
@@ -0,0 +1,154 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartData;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.drawing.XShape;
+
+/**
+* Testing <code>com.sun.star.chart.XChartDocument</code>
+* interface methods :
+* <ul>
+* <li><code> getTitle()</code></li>
+* <li><code> getSubTitle()</code></li>
+* <li><code> getLegend()</code></li>
+* <li><code> getArea()</code></li>
+* <li><code> getDiagram()</code></li>
+* <li><code> setDiagram()</code></li>
+* <li><code> getData()</code></li>
+* <li><code> attachData()</code></li>
+* </ul> <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DIAGRAM'</code> (of type <code>XDiagram</code>):
+* is used as parameter for method <code>setDiagram</code> </li>
+* <li> <code>'CHARTDATA'</code> (of type <code>XChartData</code>):
+* is used as parameter for method <code>attachData</code> </li>
+* </ul>
+*
+* @see com.sun.star.chart.XChartDocument
+*/
+public class _XChartDocument extends MultiMethodTest {
+
+ public XChartDocument oObj = null;
+ XDiagram diagram = null;
+ XChartData ChartData = null;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getTitle() {
+ XShape title = oObj.getTitle();
+ tRes.tested("getTitle()", title != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getSubTitle() {
+ XShape subtitle = oObj.getSubTitle();
+ tRes.tested("getSubTitle()", subtitle != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getLegend() {
+ XShape legend = oObj.getLegend();
+ tRes.tested("getLegend()", legend != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getArea() {
+ XPropertySet area = oObj.getArea();
+ tRes.tested("getArea()", area != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getDiagram() {
+ diagram = oObj.getDiagram();
+ tRes.tested("getDiagram()", diagram != null);
+ }
+
+ /**
+ * Test compares type of diagram before method call and after.<p>
+ * Has <b> OK </b> status if diagram types are not equal. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getDiagram </code> : to have diagram before method call</li>
+ * </ul>
+ *
+ * @see com.sun.star.chart.XDiagram
+ */
+ public void _setDiagram() {
+ requiredMethod("getDiagram()");
+ String oldType = diagram.getDiagramType();
+ XDiagram diag = (XDiagram)tEnv.getObjRelation("DIAGRAM");
+ oObj.setDiagram(diag);
+ String newType = oObj.getDiagram().getDiagramType();
+ tRes.tested("setDiagram()", !(oldType.equals(newType)));
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getData() {
+ ChartData = oObj.getData();
+ tRes.tested("getData()", ChartData != null);
+ }
+
+ /**
+ * Test compares data before method call and after. <p>
+ * Has <b> OK </b> status if the data before method call and
+ * after are not equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getData </code> : to have data before method call </li>
+ * </ul>
+ * @see com.sun.star.chart.XChartData
+ */
+ public void _attachData() {
+ requiredMethod("getData()");
+ XChartData data = (XChartData)tEnv.getObjRelation("CHARTDATA");
+ oObj.attachData(data);
+ XChartData newdata = oObj.getData();
+
+ tRes.tested("attachData()", !(newdata.equals(ChartData)));
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XDiagram.java b/qadevOOo/tests/java/ifc/chart/_XDiagram.java
new file mode 100644
index 000000000..de51ea2e1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XDiagram.java
@@ -0,0 +1,148 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XDiagram;
+
+/**
+* Testing <code>com.sun.star.chart.XDiagram</code>
+* interface methods :
+* <ul>
+* <li><code> getDiagramType()</code></li>
+* <li><code> getDataRowProperties()</code></li>
+* <li><code> getDataPointProperties()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'ROWAMOUNT'</code> (of type <code>Integer</code>):
+* to have amount of rows </li>
+* <li> <code>'COLAMOUNT'</code> (of type <code>Integer</code>):
+* to have amount of columns </li>
+* <ul> <p>
+* @see com.sun.star.chart.XDiagram
+*/
+public class _XDiagram extends MultiMethodTest {
+
+ public XDiagram oObj = null;
+ boolean result = true;
+ Integer rowamount = null;
+ Integer colamount = null;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ rowamount = (Integer)tEnv.getObjRelation("ROWAMOUNT");
+ if (rowamount == null) throw new StatusException(Status.failed
+ ("Relation 'ROWAMOUNT' not found"));
+
+ colamount = (Integer)tEnv.getObjRelation("COLAMOUNT");
+ if (colamount == null) throw new StatusException(Status.failed
+ ("Relation 'COLAMOUNT' not found"));
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value start from 'com.sun.star.chart.' <p>
+ */
+ public void _getDiagramType() {
+ result = true;
+
+ String stype = oObj.getDiagramType();
+ log.println("Current Diagram Type is " + stype);
+ result = stype.startsWith("com.sun.star.chart.");
+
+ tRes.tested("getDiagramType()", result);
+ }
+
+ /**
+ * Test calls the method for every row and checks returned value. <p>
+ * Has <b> OK </b> status if returned value for every row isn't null and
+ * no exceptions were thrown. <p>
+ */
+ public void _getDataRowProperties() {
+ result = true;
+
+ int rows = rowamount.intValue();
+ rows -= 1;
+ XPropertySet props = null;
+
+ log.println("There are " + rows + " rows.");
+ try {
+ for (int i = 0; i < rows; i++) {
+ props = oObj.getDataRowProperties(i);
+ if (props != null) {
+ log.println("Row " + i + " - OK");
+ } else {
+ log.println("Row " + i + " - FAILED");
+ result = false;
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception while get data row properties");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("getDataRowProperties()", result);
+ }
+
+ /**
+ * Test calls the method for every point and checks returned value. <p>
+ * Has <b> OK </b> status if returned value for every point isn't null and
+ * no exceptions were thrown. <p>
+ */
+ public void _getDataPointProperties() {
+ result = true;
+
+ int rows = rowamount.intValue();
+ int cols = colamount.intValue();
+ XPropertySet props = null;
+
+ log.println("There are " + rows + " rows and " + cols + " cols.");
+
+ try {
+ for (int i = 0; i < rows; i++)
+ for (int j = 0; j < cols; j++) {
+ props = oObj.getDataPointProperties(i, j);
+ if (props != null) {
+ log.println("Row " + i + " Col " + j + " - OK");
+ } else {
+ log.println("Row " + i + " Col " + j + " - FAILED");
+ result = false;
+ }
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception while get data point properties");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("getDataPointProperties()", result);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XStatisticDisplay.java b/qadevOOo/tests/java/ifc/chart/_XStatisticDisplay.java
new file mode 100644
index 000000000..779183856
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XStatisticDisplay.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XStatisticDisplay;
+
+/**
+* Testing <code>com.sun.star.chart.XStatisticDisplay</code>
+* interface methods :
+* <ul>
+* <li><code> getMinMaxLine()</code></li>
+* <li><code> getUpBar()</code></li>
+* <li><code> getDownBar()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XStatisticDisplay
+*/
+public class _XStatisticDisplay extends MultiMethodTest {
+
+ public XStatisticDisplay oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getMinMaxLine() {
+ result = true;
+
+ XPropertySet MinMaxLine = oObj.getMinMaxLine();
+ result = (MinMaxLine != null);
+
+ tRes.tested("getMinMaxLine()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getUpBar() {
+ result = true;
+
+ XPropertySet UpBar = oObj.getUpBar();
+ result = (UpBar != null);
+
+ tRes.tested("getUpBar()", result);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getDownBar() {
+ result = true;
+
+ XPropertySet DownBar = oObj.getDownBar();
+ result = (DownBar != null);
+
+ tRes.tested("getDownBar()", result);
+ }
+
+} // EOF XStatisticDisplay
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XTwoAxisXSupplier.java b/qadevOOo/tests/java/ifc/chart/_XTwoAxisXSupplier.java
new file mode 100644
index 000000000..488181108
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XTwoAxisXSupplier.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XTwoAxisXSupplier;
+
+/**
+* Testing <code>com.sun.star.chart.XTwoAxisXSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getSecondaryXAxis()</code></li>
+* </ul> <p>
+* @see com.sun.star.chart.XTwoAxisXSupplier
+*/
+public class _XTwoAxisXSupplier extends MultiMethodTest {
+
+ public XTwoAxisXSupplier oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getSecondaryXAxis() {
+ result = true;
+
+ XPropertySet SecXAxis = oObj.getSecondaryXAxis();
+ result = (SecXAxis != null);
+
+ tRes.tested("getSecondaryXAxis()", result);
+ }
+
+} // EOF XTwoAxisXSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/chart/_XTwoAxisYSupplier.java b/qadevOOo/tests/java/ifc/chart/_XTwoAxisYSupplier.java
new file mode 100644
index 000000000..bc88bdc72
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/chart/_XTwoAxisYSupplier.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.chart;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XTwoAxisYSupplier;
+
+/**
+* Testing <code>com.sun.star.chart.XTwoAxisYSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getSecondaryYAxis()</code></li>
+* </ul> <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.chart.XTwoAxisYSupplier
+*/
+public class _XTwoAxisYSupplier extends MultiMethodTest {
+
+ public XTwoAxisYSupplier oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getSecondaryYAxis() {
+ result = true;
+
+ XPropertySet SecYAxis = oObj.getSecondaryYAxis();
+ result = (SecYAxis != null);
+
+ tRes.tested("getSecondaryYAxis()", result);
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // EOF XTwoAxisYSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/configuration/_XTemplateContainer.java b/qadevOOo/tests/java/ifc/configuration/_XTemplateContainer.java
new file mode 100644
index 000000000..6c000f23f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/_XTemplateContainer.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.configuration;
+
+import com.sun.star.configuration.XTemplateContainer;
+import lib.MultiMethodTest;
+
+
+public class _XTemplateContainer extends MultiMethodTest {
+
+ public XTemplateContainer oObj;
+
+ public void _getElementTemplateName() {
+ String tName = (String) tEnv.getObjRelation("TemplateName");
+ String oTName = oObj.getElementTemplateName();
+ log.println("TemplateName: "+oTName);
+ boolean res = oTName.equals(tName);
+ if (!res) {
+ log.println("Expected: "+tName);
+ log.println("Gained: "+oTName);
+ }
+ tRes.tested("getElementTemplateName()", res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/_XTemplateInstance.java b/qadevOOo/tests/java/ifc/configuration/_XTemplateInstance.java
new file mode 100644
index 000000000..fac45c493
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/_XTemplateInstance.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.configuration;
+
+import com.sun.star.configuration.XTemplateInstance;
+import lib.MultiMethodTest;
+
+
+public class _XTemplateInstance extends MultiMethodTest {
+
+ public XTemplateInstance oObj;
+
+
+ public void _getTemplateName() {
+ String expected = (String) tEnv.getObjRelation("TemplateInstance");
+ String getting = oObj.getTemplateName();
+ boolean res = getting.equals(expected);
+ if (!res) {
+ log.println("Expected: "+expected);
+ log.println("Getting: "+getting);
+ }
+ tRes.tested("getTemplateName()",res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XBackend.java b/qadevOOo/tests/java/ifc/configuration/backend/_XBackend.java
new file mode 100644
index 000000000..eb8a09cc6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XBackend.java
@@ -0,0 +1,250 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XBackend;
+import com.sun.star.configuration.backend.XLayer;
+import com.sun.star.configuration.backend.XUpdateHandler;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XStringSubstitution;
+
+import lib.MultiMethodTest;
+
+import util.XLayerHandlerImpl;
+
+
+public class _XBackend extends MultiMethodTest {
+ public XBackend oObj;
+
+ public void _getOwnUpdateHandler() {
+ boolean res = true;
+
+ String noUpdate = (String) tEnv.getObjRelation("noUpdate");
+
+ if (noUpdate != null) {
+ log.println(noUpdate);
+ tRes.tested("getOwnUpdateHandler()", res);
+
+ return;
+ }
+
+ try {
+ XUpdateHandler aHandler = oObj.getOwnUpdateHandler(
+ "org.openoffice.Office.Linguistic");
+ res &= (aHandler != null);
+
+ if (aHandler == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getOwnUpdateHandler()", res);
+ }
+
+ public void _getUpdateHandler() {
+ boolean res = true;
+
+ String noUpdate = (String) tEnv.getObjRelation("noUpdate");
+
+ if (noUpdate != null) {
+ log.println(noUpdate);
+ tRes.tested("getUpdateHandler()", res);
+
+ return;
+ }
+
+ try {
+ oObj.getUpdateHandler(
+ "org.openoffice.Office.TypeDetection",
+ "illegal");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("expected Exception -- OK");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ }
+
+ try {
+ XStringSubstitution sts = createStringSubstitution(
+ tParam.getMSF());
+ String ent = sts.getSubstituteVariableValue("$(inst)") +
+ "/share/registry";
+ XUpdateHandler aHandler = oObj.getUpdateHandler(
+ "org.openoffice.Office.Jobs",
+ ent);
+
+ if (aHandler == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getUpdateHandler()", res);
+ }
+
+ public void _listLayers() {
+ boolean res = true;
+
+ try {
+ XStringSubstitution sts = createStringSubstitution(tParam.getMSF());
+ String ent = sts.getSubstituteVariableValue("$(inst)") +
+ "/share/registry";
+ XLayer[] Layers = oObj.listLayers(
+ "org.openoffice.Office.Linguistic", ent);
+
+ for (int i = 0; i < Layers.length; i++) {
+ log.println("Checking Layer " + i);
+ res &= checkLayer(Layers[i]);
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("listLayers()", res);
+ }
+
+ public void _listOwnLayers() {
+ boolean res = true;
+
+ try {
+ XLayer[] Layers = oObj.listOwnLayers(
+ "org.openoffice.Office.Common");
+
+ for (int i = 0; i < Layers.length; i++) {
+ log.println("Checking Layer " + i);
+ res &= checkLayer(Layers[i]);
+ }
+ if (Layers.length==0) {
+ System.out.println("No Layers found -- FAILED");
+ res &= false;
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("listOwnLayers()", res);
+ }
+
+ protected boolean checkLayer(XLayer aLayer) {
+ boolean res = false;
+
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ aLayer.readData(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println("checking read data with own XLayerHandler implementation");
+
+ try {
+ XLayerHandlerImpl xLayerHandler = new XLayerHandlerImpl();
+ aLayer.readData(xLayerHandler);
+
+ String implCalled = xLayerHandler.getCalls();
+ log.println(implCalled);
+
+ int sl = implCalled.indexOf("startLayer");
+
+ if (sl < 0) {
+ log.println("startLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startLayer was called -- OK");
+ res &= true;
+ }
+
+ int el = implCalled.indexOf("endLayer");
+
+ if (el < 0) {
+ log.println("endLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endLayer was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ return res;
+ }
+
+ public static XStringSubstitution createStringSubstitution(XMultiServiceFactory xMSF) throws com.sun.star.uno.Exception
+ {
+ Object xPathSubst = xMSF.createInstance(
+ "com.sun.star.util.PathSubstitution");
+ return UnoRuntime.queryInterface(XStringSubstitution.class, xPathSubst);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XBackendEntities.java b/qadevOOo/tests/java/ifc/configuration/backend/_XBackendEntities.java
new file mode 100644
index 000000000..5ed64c292
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XBackendEntities.java
@@ -0,0 +1,173 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XBackendEntities;
+
+import lib.MultiMethodTest;
+
+
+public class _XBackendEntities extends MultiMethodTest {
+ String AdminEntity = "";
+ String OwnerEntity = "";
+ String adm = "";
+ public XBackendEntities oObj;
+
+ @Override
+ public void before() {
+ adm = (String) tEnv.getObjRelation("NoAdmin");
+ }
+
+ public void _getAdminEntity() {
+ if (adm != null) {
+ AdminEntity = adm;
+ log.println(
+ "This component doesn't have an AdminEntity, setting it to default");
+ tRes.tested("getAdminEntity()", true);
+
+ return;
+ }
+
+ AdminEntity = oObj.getAdminEntity();
+
+ boolean res = AdminEntity.endsWith("/share/registry");
+
+ if (!res) {
+ log.println("Expected the Entity to end with /share/registry");
+ log.println("getting: " + AdminEntity + " -- FAILED");
+ }
+
+ tRes.tested("getAdminEntity()", res);
+ }
+
+ public void _getOwnerEntity() {
+ OwnerEntity = oObj.getOwnerEntity();
+
+ boolean res = OwnerEntity.endsWith("/user/registry");
+
+ if (!res) {
+ log.println("Expected the Entity to end with /user/registry");
+ log.println("getting: " + OwnerEntity + " -- FAILED");
+ }
+
+ tRes.tested("getOwnerEntity()", res);
+ }
+
+ public void _isEqualEntity() {
+ boolean res = true;
+ boolean localRes = true;
+
+ try {
+ localRes = oObj.isEqualEntity("", "");
+ log.println(
+ "No Exception thrown for isEqualEntity(\"\",\"\") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Expected Exception (" + e + ") -- OK");
+ res &= true;
+ }
+
+ try {
+ localRes = oObj.isEqualEntity(AdminEntity, AdminEntity);
+
+ if (!localRes) {
+ log.println(
+ "isEqualEntity(AdminEntity,AdminEntity) returns false -- FAILED");
+ }
+
+ res &= localRes;
+
+ localRes = oObj.isEqualEntity(OwnerEntity, OwnerEntity);
+
+ if (!localRes) {
+ log.println(
+ "isEqualEntity(OwnerEntity,OwnerEntity) returns false -- FAILED");
+ }
+
+ res &= localRes;
+
+ localRes = !oObj.isEqualEntity(AdminEntity, OwnerEntity);
+
+ if (!localRes) {
+ log.println(
+ "isEqualEntity(AdminEntity,OwnerEntity) returns true -- FAILED");
+ }
+
+ res &= localRes;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ tRes.tested("isEqualEntity()", res);
+ }
+
+ public void _supportsEntity() {
+ boolean res = true;
+ boolean localRes = true;
+
+ try {
+ localRes = oObj.supportsEntity("illegal");
+ log.println(
+ "No Exception thrown for supportsEntity(\"\") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("Expected Exception (" + e + ") -- OK");
+ res &= true;
+ }
+
+ try {
+ localRes = oObj.supportsEntity(AdminEntity);
+
+ if (adm != null) {
+ Object msb = tEnv.getObjRelation("MSB") ;
+ if (msb == null){
+ localRes = !localRes;
+ log.println("This Component doesn't support the AdminEntity");
+ }
+ }
+
+ if (!localRes) {
+ log.println(
+ "supportsEntity(AdminEntity) returns false -- FAILED");
+ }
+
+ res &= localRes;
+
+ localRes = oObj.supportsEntity(OwnerEntity);
+
+ if (!localRes) {
+ log.println(
+ "supportsEntity(OwnerEntity) returns false -- FAILED");
+ }
+
+ res &= localRes;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ tRes.tested("supportsEntity()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XLayer.java b/qadevOOo/tests/java/ifc/configuration/backend/_XLayer.java
new file mode 100644
index 000000000..879a3113e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XLayer.java
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XLayer;
+import lib.MultiMethodTest;
+import util.XLayerHandlerImpl;
+
+public class _XLayer extends MultiMethodTest {
+
+ public XLayer oObj;
+
+ public void _readData() {
+ boolean res = false;
+
+ log.println("Checking for Exception in case of nul argument");
+
+ try {
+ oObj.readData(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception ("+e+") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception ("+e+") -- FAILED");
+ }
+
+ log.println("checking read data with own XLayerHandler implementation");
+ try {
+ XLayerHandlerImpl xLayerHandler = new XLayerHandlerImpl();
+ oObj.readData(xLayerHandler);
+ String implCalled = xLayerHandler.getCalls();
+ log.println(implCalled);
+ int sl = implCalled.indexOf("startLayer");
+ if (sl < 0) {
+ log.println("startLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startLayer was called -- OK");
+ res &= true;
+ }
+ int el = implCalled.indexOf("endLayer");
+ if (el < 0) {
+ log.println("endLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endLayer was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception ("+e+") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception ("+e+") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception ("+e+") -- FAILED");
+ res &= false;
+ }
+
+ tRes.tested("readData()",res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XLayerHandler.java b/qadevOOo/tests/java/ifc/configuration/backend/_XLayerHandler.java
new file mode 100644
index 000000000..609d1c9a8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XLayerHandler.java
@@ -0,0 +1,242 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XLayer;
+import com.sun.star.configuration.backend.XLayerHandler;
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XInputStream;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiMethodTest;
+
+import util.XLayerHandlerImpl;
+
+
+public class _XLayerHandler extends MultiMethodTest {
+ public XLayerHandler oObj = null;
+
+ /** this method contains the logic for all test methods
+ * the others will be passed OK if this one is
+ */
+ public void _endLayer() {
+ boolean res = false;
+
+ try {
+ oObj.startLayer();
+ oObj.overrideNode("org.openoffice.Setup", (short) 0, false);
+ oObj.overrideNode("Office", (short) 0, false);
+ oObj.overrideProperty("ooSetupInstCompleted", (short) 0,
+ new Type(String.class), false);
+ oObj.setPropertyValue(Boolean.FALSE);
+ oObj.endProperty();
+ oObj.overrideNode("Factories", (short) 0, false);
+ oObj.addOrReplaceNode("com.sun.star.chart.ChartDocument",
+ (short) 0);
+ oObj.overrideProperty("ooSetupFactoryEmptyDocumentURL", (short) 0,
+ new Type(String.class), false);
+ oObj.setPropertyValue("private:factory/schart");
+ oObj.endProperty();
+ oObj.overrideProperty("ooSetupFactoryIcon", (short) 0,
+ new Type(java.lang.Long.class), false);
+ oObj.setPropertyValue(Integer.valueOf(13));
+ oObj.endProperty();
+ oObj.overrideProperty("ooSetupFactoryShortName", (short) 0,
+ new Type(String.class), false);
+ oObj.setPropertyValue("schart");
+ oObj.setPropertyValueForLocale("TemplateFile", "en-US");
+ oObj.endProperty();
+ oObj.overrideProperty("ooSetupFactoryTemplateFile", (short) 0,
+ new Type(String.class), false);
+ oObj.setPropertyValue("empty");
+ oObj.endProperty();
+ oObj.addProperty("ooSetupFactoryTemplateFile", (short) 0,
+ new Type(String.class));
+ oObj.addPropertyWithValue("ooSetupFactoryTemplateFile", (short) 0,
+ "TemplateFile");
+ oObj.endNode();
+
+ oObj.addOrReplaceNode("dropme", (short) 0);
+ oObj.overrideProperty("anyway", (short) 0,
+ new Type(String.class), false);
+ oObj.setPropertyValue("nice");
+ oObj.endProperty();
+ oObj.dropNode("dropme");
+ oObj.endNode();
+
+ oObj.addOrReplaceNodeFromTemplate("FromTemplate",
+ new com.sun.star.configuration.backend.TemplateIdentifier(
+ "org.openoffice.Setup",
+ "Setup"), (short) 0);
+ oObj.endNode();
+
+ oObj.endNode();
+ oObj.endNode();
+ oObj.endNode();
+ oObj.endLayer();
+
+ Object LayerParser = tParam.getMSF().createInstance(
+ "com.sun.star.comp.configuration.backend.xml.LayerParser");
+
+ XActiveDataSink xSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, LayerParser);
+ Object fileacc = tParam.getMSF().createInstance(
+ "com.sun.star.comp.ucb.SimpleFileAccess");
+ XSimpleFileAccess simpleAccess = UnoRuntime.queryInterface(
+ XSimpleFileAccess.class,
+ fileacc);
+
+ String filename = util.utils.getOfficeTemp(
+ tParam.getMSF()) +
+ "LayerWriter.xcu";
+ log.println("Going to parse: " + filename);
+
+ XInputStream xStream = simpleAccess.openFileRead(filename);
+
+ xSink.setInputStream(xStream);
+
+ XLayer xLayer = UnoRuntime.queryInterface(XLayer.class,
+ LayerParser);
+
+ XLayerHandlerImpl xLayerHandler = new XLayerHandlerImpl();
+
+ xLayer.readData(xLayerHandler);
+
+ res = xLayerHandler.getCalls().equals(getExpected());
+
+ if (!res) {
+ log.println("#### Getting: ");
+ log.println(xLayerHandler.getCalls());
+ log.println("#### Expected: ");
+ log.println(getExpected());
+ }
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception " + e);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception " + e);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected Exception " + e);
+ }
+
+ tRes.tested("endLayer()", res);
+ }
+
+ public void _addOrReplaceNode() {
+ requiredMethod("endLayer()");
+ tRes.tested("addOrReplaceNode()", true);
+ }
+
+ public void _addOrReplaceNodeFromTemplate() {
+ requiredMethod("endLayer()");
+ tRes.tested("addOrReplaceNodeFromTemplate()", true);
+ }
+
+ public void _addProperty() {
+ requiredMethod("endLayer()");
+ tRes.tested("addProperty()", true);
+ }
+
+ public void _addPropertyWithValue() {
+ requiredMethod("endLayer()");
+ tRes.tested("addPropertyWithValue()", true);
+ }
+
+ public void _dropNode() {
+ requiredMethod("endLayer()");
+ tRes.tested("dropNode()", true);
+ }
+
+ public void _endNode() {
+ requiredMethod("endLayer()");
+ tRes.tested("endNode()", true);
+ }
+
+ public void _endProperty() {
+ requiredMethod("endLayer()");
+ tRes.tested("endProperty()", true);
+ }
+
+ public void _overrideNode() {
+ requiredMethod("endLayer()");
+ tRes.tested("overrideNode()", true);
+ }
+
+ public void _overrideProperty() {
+ requiredMethod("endLayer()");
+ tRes.tested("overrideProperty()", true);
+ }
+
+ public void _setPropertyValue() {
+ requiredMethod("endLayer()");
+ tRes.tested("setPropertyValue()", true);
+ }
+
+ public void _setPropertyValueForLocale() {
+ requiredMethod("endLayer()");
+ tRes.tested("setPropertyValueForLocale()", true);
+ }
+
+ public void _startLayer() {
+ requiredMethod("endLayer()");
+ tRes.tested("startLayer()", true);
+ }
+
+ protected String getExpected() {
+ String ls = System.getProperty("line.separator");
+ String expected = "startLayer();" + ls;
+ expected += ("overrideNode(org.openoffice.Setup,0,false);" + ls);
+ expected += ("overrideNode(Office,0,false);" + ls);
+ expected += ("overrideProperty(ooSetupInstCompleted,0,Type[string],false);" + ls);
+ expected += ("setPropertyValue(false);" + ls);
+ expected += ("endProperty();" + ls);
+ expected += ("overrideNode(Factories,0,false);" + ls);
+ expected += ("addOrReplace(com.sun.star.chart.ChartDocument,0);" + ls);
+ expected += ("overrideProperty(ooSetupFactoryEmptyDocumentURL,0,Type[string],false);" + ls);
+ expected += ("setPropertyValue(private:factory/schart);" + ls);
+ expected += ("endProperty();" + ls);
+ expected += ("overrideProperty(ooSetupFactoryIcon,0,Type[hyper],false);" + ls);
+ expected += ("setPropertyValue(13);" + ls);
+ expected += ("endProperty();" + ls);
+ expected += ("overrideProperty(ooSetupFactoryShortName,0,Type[string],false);" + ls);
+ expected += ("setPropertyValue(schart);" + ls);
+ expected += ("setPropertyValueForLocale(TemplateFile,en-US);" + ls);
+ expected += ("endProperty();" + ls);
+ expected += ("overrideProperty(ooSetupFactoryTemplateFile,0,Type[string],false);" + ls);
+ expected += ("setPropertyValue(empty);" + ls);
+ expected += ("endProperty();" + ls);
+ expected += ("addProperty(ooSetupFactoryTemplateFile,0,Type[string]);" + ls);
+ expected += ("addPropertyWithValue(ooSetupFactoryTemplateFile,0,TemplateFile);" + ls);
+ expected += ("endNode();" + ls);
+ expected += ("addOrReplace(dropme,0);" + ls);
+ expected += ("overrideProperty(anyway,0,Type[string],false);" + ls);
+ expected += ("setPropertyValue(nice);" + ls);
+ expected += ("endProperty();" + ls);
+ expected += ("dropNode(dropme);" + ls);
+ expected += ("endNode();" + ls);
+ expected += ("addOrReplace(FromTemplate,0);" + ls);
+ expected += ("endNode();" + ls);
+ expected += ("endNode();" + ls);
+ expected += ("endNode();" + ls);
+ expected += ("endNode();" + ls);
+ expected += ("endLayer();" + ls);
+
+ return expected;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XLayerImporter.java b/qadevOOo/tests/java/ifc/configuration/backend/_XLayerImporter.java
new file mode 100644
index 000000000..0e42ec526
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XLayerImporter.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XBackend;
+import com.sun.star.configuration.backend.XLayerImporter;
+import lib.MultiMethodTest;
+
+public class _XLayerImporter extends MultiMethodTest {
+
+ public XLayerImporter oObj;
+ public XBackend xBackend = null;
+
+ public void _getTargetBackend() {
+ xBackend = oObj.getTargetBackend();
+ tRes.tested("getTargetBackend()", xBackend != null);
+ }
+
+ public void _importLayer() {
+ boolean res = false;
+ log.println("checking for exception is argument null is given");
+ try {
+ oObj.importLayer(null);
+ log.println("\tException expected -- FAILED");
+ } catch (com.sun.star.lang.NullPointerException ne) {
+ res = true;
+ log.println("\tExpected exception was thrown -- OK");
+ } catch (com.sun.star.configuration.backend.MalformedDataException mde) {
+ res = false;
+ log.println("\tWrong Expected "+mde+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ res = false;
+ log.println("\tWrong Expected "+iae+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ res = false;
+ log.println("\tWrong Expected "+wte+" exception was thrown -- FAILED");
+ }
+
+ log.println("checking own implementation of XLayer");
+ try {
+ util.XLayerImpl xLayer = new util.XLayerImpl();
+ oObj.importLayer(xLayer);
+ if (! xLayer.hasBeenCalled()) {
+ log.println("\tXLayer hasn't been imported -- FAILED");
+ res &= false;
+ } else {
+ log.println("\tXLayer has been imported -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException ne) {
+ res &= false;
+ log.println("\tExpected exception "+ne+" was thrown -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException mde) {
+ res &= false;
+ log.println("\tWrong Expected "+mde+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ res &= false;
+ log.println("\tWrong Expected "+iae+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ res &= false;
+ log.println("\tWrong Expected "+wte+" exception was thrown -- FAILED");
+ }
+
+ tRes.tested("importLayer()",res);
+ }
+
+ public void _importLayerForEntity() {
+ boolean res = false;
+ log.println("checking for exception for argument (null,\"\")");
+ try {
+ oObj.importLayerForEntity(null,"");
+ log.println("\tException expected -- FAILED");
+ } catch (com.sun.star.lang.NullPointerException ne) {
+ res = true;
+ log.println("\tExpected exception was thrown -- OK");
+ } catch (com.sun.star.configuration.backend.MalformedDataException mde) {
+ res = false;
+ log.println("\tWrong Expected "+mde+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ res = false;
+ log.println("\tWrong Expected "+iae+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ res = false;
+ log.println("\tWrong Expected "+wte+" exception was thrown -- FAILED");
+ }
+
+ log.println("checking own implementation of XLayer");
+ try {
+ util.XLayerImpl xLayer = new util.XLayerImpl();
+ oObj.importLayerForEntity(xLayer,"");
+ if (! xLayer.hasBeenCalled()) {
+ log.println("\tXLayer hasn't been imported -- FAILED");
+ res &= false;
+ } else {
+ log.println("\tXLayer has been imported -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException ne) {
+ res &= false;
+ log.println("\tExpected exception "+ne+" was thrown -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException mde) {
+ res &= false;
+ log.println("\tWrong Expected "+mde+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ res &= false;
+ log.println("\tWrong Expected "+iae+" exception was thrown -- FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ res &= false;
+ log.println("\tWrong Expected "+wte+" exception was thrown -- FAILED");
+ }
+
+ tRes.tested("importLayerForEntity()",res);
+ }
+
+ public void _setTargetBackend() {
+ requiredMethod("getTargetBackend()");
+ boolean res = false;
+ log.println("checking for exception if argument null is given");
+ try {
+ oObj.setTargetBackend(null);
+ log.println("\tException expected -- FAILED");
+ } catch (com.sun.star.lang.NullPointerException ne) {
+ res = true;
+ log.println("\tExpected exception was thrown -- OK");
+ }
+
+ log.println("checking argument previously gained by getTargetBackend");
+ try {
+ oObj.setTargetBackend(xBackend);
+ log.println("\t No Exception thrown -- OK");
+ res &= true;
+ } catch (com.sun.star.lang.NullPointerException ne) {
+ res &= false;
+ log.println("\tException was thrown -- FAILED");
+ }
+
+ tRes.tested("setTargetBackend()",res);
+
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XMultiLayerStratum.java b/qadevOOo/tests/java/ifc/configuration/backend/_XMultiLayerStratum.java
new file mode 100644
index 000000000..c0b7c438c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XMultiLayerStratum.java
@@ -0,0 +1,303 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XLayer;
+import com.sun.star.configuration.backend.XMultiLayerStratum;
+import com.sun.star.configuration.backend.XUpdatableLayer;
+import lib.MultiMethodTest;
+
+import util.XLayerHandlerImpl;
+
+
+public class _XMultiLayerStratum extends MultiMethodTest {
+ public XMultiLayerStratum oObj;
+ protected String aLayerID;
+
+ public void _getLayer() {
+ boolean res = true;
+
+ try {
+ oObj.getLayer("", "");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("expected Exception -- OK");
+ }
+
+ try {
+ XLayer aLayer = oObj.getLayer(aLayerID, "");
+ res &= (aLayer != null);
+
+ if (aLayer == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ } else {
+ res &= checkLayer(aLayer);
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getLayer()", res);
+ }
+
+ public void _getLayers() {
+ boolean res = true;
+
+ try {
+ String[] LayerIds = new String[] {
+ "1 /org/openoffice/Office/Jobs.xcu",
+ "2 /org/openoffice/Office/Linguistic.xcu" };
+
+ XLayer[] Layers = oObj.getLayers(LayerIds, "");
+ res = Layers.length == 2;
+ log.println("Getting two XLayers -- OK");
+ log.println("Checking first on "+LayerIds[0]);
+ res &= checkLayer(Layers[0]);
+ log.println("Checking second on "+LayerIds[1]);
+ res &= checkLayer(Layers[1]);
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getLayers()", res);
+ }
+
+ public void _getMultipleLayers() {
+ boolean res = true;
+
+ try {
+ String[] LayerIds = new String[] {
+ "1 /org/openoffice/Office/Jobs.xcu",
+ "2 /org/openoffice/Office/Linguistic.xcu" };
+ String[] Times = new String[] { "", "" };
+
+ XLayer[] Layers = oObj.getMultipleLayers(LayerIds, Times);
+ res = Layers.length == 2;
+ log.println("Getting two XLayers -- OK");
+ log.println("Checking first on "+LayerIds[0]);
+ res &= checkLayer(Layers[0]);
+ log.println("Checking second on "+LayerIds[1]);
+ res &= checkLayer(Layers[1]);
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getMultipleLayers()", res);
+ }
+
+ public void _getUpdatableLayer() {
+ boolean res = true;
+
+ try {
+ oObj.getUpdatableLayer("");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("expected Exception -- OK");
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ try {
+ XUpdatableLayer aLayer = oObj.getUpdatableLayer(aLayerID);
+ res &= (aLayer != null);
+
+ if (aLayer == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ } else {
+ res &= checkLayer(aLayer);
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getUpdatableLayer()", res);
+ }
+
+ public void _getUpdateLayerId() throws com.sun.star.uno.Exception {
+ boolean res = true;
+
+ try {
+ oObj.getUpdateLayerId(
+ "org.openoffice.Office.TypeDetection",
+ "illegal");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("expected Exception -- OK");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ try {
+ String ent = util.utils.getOfficeURL(
+ tParam.getMSF()) +
+ "/../share/registry";
+ String UpdateLayerID = oObj.getUpdateLayerId(
+ "org.openoffice.Office.Linguistic", ent);
+ res &= UpdateLayerID.endsWith("Linguistic.xcu");
+
+ if (!UpdateLayerID.endsWith("Linguistic.xcu")) {
+ log.println("\tExpected the id to end with Linguistic.xcu");
+ log.println("\tBut got " + UpdateLayerID);
+ log.println("\t=> FAILED");
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception "+e+" -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getUpdateLayerId()", res);
+ }
+
+ public void _listLayerIds() throws com.sun.star.uno.Exception {
+ boolean res = true;
+
+ try {
+ oObj.listLayerIds(
+ "org.openoffice.Office.TypeDetection",
+ "illegal");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("expected Exception -- OK");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ try {
+ String ent = util.utils.getOfficeURL(
+ tParam.getMSF()) +
+ "/../share/registry";
+ String[] LayerIDs = oObj.listLayerIds("org.openoffice.Office.Jobs",
+ ent);
+ res &= LayerIDs[0].endsWith("Jobs.xcu");
+ aLayerID = LayerIDs[0];
+
+ if (!LayerIDs[0].endsWith("Jobs.xcu")) {
+ log.println("\tExpected the id to end with Jobs.xcu");
+ log.println("\tBut got " + LayerIDs[0]);
+ log.println("\t=> FAILED");
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("listLayerIds()", res);
+ }
+
+ protected boolean checkLayer(XLayer aLayer) {
+ boolean res = false;
+
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ aLayer.readData(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println("checking read data with own XLayerHandler implementation");
+
+ try {
+ XLayerHandlerImpl xLayerHandler = new XLayerHandlerImpl();
+ aLayer.readData(xLayerHandler);
+
+ String implCalled = xLayerHandler.getCalls();
+ log.println(implCalled);
+
+ int sl = implCalled.indexOf("startLayer");
+
+ if (sl < 0) {
+ log.println("startLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startLayer was called -- OK");
+ res &= true;
+ }
+
+ int el = implCalled.indexOf("endLayer");
+
+ if (el < 0) {
+ log.println("endLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endLayer was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ return res;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XSchema.java b/qadevOOo/tests/java/ifc/configuration/backend/_XSchema.java
new file mode 100644
index 000000000..597d245ef
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XSchema.java
@@ -0,0 +1,253 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XSchema;
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XInputStream;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiMethodTest;
+
+import util.XSchemaHandlerImpl;
+
+public class _XSchema extends MultiMethodTest {
+ public XSchema oObj;
+ XSchemaHandlerImpl xSchemaHandlerImpl = new XSchemaHandlerImpl();
+ String filename = null;
+
+ @Override
+ protected void before() {
+ filename = (String)tEnv.getObjRelation("ParsedFileName");
+ }
+
+ public void _readComponent() {
+ requiredMethod("readTemplates()");
+ boolean res = false;
+
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ oObj.readComponent(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println(
+ "checking readComponent with own XSchemeHandler implementation");
+
+ try {
+ xSchemaHandlerImpl.cleanCalls();
+ oObj.readComponent(xSchemaHandlerImpl);
+
+ String implCalled = xSchemaHandlerImpl.getCalls();
+
+ System.out.println(implCalled);
+
+ int sc = implCalled.indexOf("startComponent");
+
+ if (sc < 0) {
+ log.println("startComponent wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startComponent was called -- OK");
+ res &= true;
+ }
+
+ int ec = implCalled.indexOf("endComponent");
+
+ if (ec < 0) {
+ log.println("endComponent wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endComponent was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ tRes.tested("readComponent()", res);
+ reopenFile();
+ }
+
+ public void _readSchema() {
+ requiredMethod("readComponent()");
+ boolean res = false;
+
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ xSchemaHandlerImpl.cleanCalls();
+ oObj.readSchema(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println(
+ "checking read data with own XSchemeHandler implementation");
+
+ try {
+ xSchemaHandlerImpl.cleanCalls();
+ oObj.readSchema(xSchemaHandlerImpl);
+
+ String implCalled = xSchemaHandlerImpl.getCalls();
+
+ int sc = implCalled.indexOf("startSchema");
+
+ if (sc < 0) {
+ log.println("startSchema wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startSchema was called -- OK");
+ res &= true;
+ }
+
+ int ec = implCalled.indexOf("endSchema");
+
+ if (ec < 0) {
+ log.println("endSchema wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endSchema was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ // check for the wrapped target exception
+ try {
+ xSchemaHandlerImpl.cleanCalls();
+ oObj.readSchema(xSchemaHandlerImpl);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ tRes.tested("readSchema()", res);
+ reopenFile();
+ }
+
+ public void _readTemplates() {
+ boolean res = false;
+
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ oObj.readTemplates(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println(
+ "checking readComponent with own XSchemeHandler implementation");
+
+ try {
+ xSchemaHandlerImpl.cleanCalls();
+ oObj.readComponent(xSchemaHandlerImpl);
+
+ String implCalled = xSchemaHandlerImpl.getCalls();
+
+ int sc = implCalled.indexOf("startGroup");
+
+ if (sc < 0) {
+ log.println("startGroup wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startGroup was called -- OK");
+ res &= true;
+ }
+
+ int ec = implCalled.indexOf("endNode");
+
+ if (ec < 0) {
+ log.println("endNode wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endNode was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ tRes.tested("readTemplates()", res);
+ reopenFile();
+ }
+
+ /**
+ * reopen the parsed file again, to avoid the wrapped target exception.
+ */
+ private void reopenFile() {
+ XSimpleFileAccess simpleAccess = null;
+ XInputStream xStream = null;
+ try {
+ Object fileacc = tParam.getMSF().createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ simpleAccess = UnoRuntime.queryInterface(XSimpleFileAccess.class,fileacc);
+ log.println("Going to parse: "+filename);
+ xStream = simpleAccess.openFileRead(filename);
+ } catch (com.sun.star.uno.Exception e) {
+ }
+
+ XActiveDataSink xSink = UnoRuntime.queryInterface(XActiveDataSink.class, oObj);
+ xSink.setInputStream(xStream);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XSchemaSupplier.java b/qadevOOo/tests/java/ifc/configuration/backend/_XSchemaSupplier.java
new file mode 100644
index 000000000..aee858b6a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XSchemaSupplier.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XSchema;
+import com.sun.star.configuration.backend.XSchemaSupplier;
+
+import lib.MultiMethodTest;
+import util.XSchemaHandlerImpl;
+
+public class _XSchemaSupplier extends MultiMethodTest {
+ public XSchemaSupplier oObj;
+
+ public void _getComponentSchema() {
+ boolean res = true;
+ XSchema aSchema = null;
+
+ try {
+ aSchema = oObj.getComponentSchema("org.openoffice.Office.Linguistic");
+ res &= (aSchema != null);
+
+ if (aSchema == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ } else {
+ res &= checkSchema(aSchema);
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+ tRes.tested("getComponentSchema()",res);
+ }
+
+ protected boolean checkSchema(XSchema aSchema) {
+ boolean res = false;
+ XSchemaHandlerImpl xSchemaHandlerImpl = new XSchemaHandlerImpl();
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ aSchema.readTemplates(null);
+ log.println("NoException thrown for null argument -- FAILED");
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println(
+ "checking readComponent with own XSchemaHandler implementation");
+
+ try {
+ aSchema.readComponent(xSchemaHandlerImpl);
+
+ String implCalled = xSchemaHandlerImpl.getCalls();
+ int sc = implCalled.indexOf("startComponent");
+
+ if (sc < 0) {
+ log.println("startComponent wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startComponent was called -- OK");
+ res &= true;
+ }
+
+ int ec = implCalled.indexOf("endComponent");
+
+ if (ec < 0) {
+ log.println("endComponent wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endComponent was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ return res;
+
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XSingleLayerStratum.java b/qadevOOo/tests/java/ifc/configuration/backend/_XSingleLayerStratum.java
new file mode 100644
index 000000000..33eb0cfa8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XSingleLayerStratum.java
@@ -0,0 +1,165 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.XLayer;
+import com.sun.star.configuration.backend.XSingleLayerStratum;
+import com.sun.star.configuration.backend.XUpdatableLayer;
+
+import lib.MultiMethodTest;
+
+import util.XLayerHandlerImpl;
+
+
+public class _XSingleLayerStratum extends MultiMethodTest {
+ public XSingleLayerStratum oObj;
+
+ public void _getLayer() {
+ String aLayerID = "org.openoffice.Office.Common";
+ boolean res = true;
+
+ try {
+ oObj.getLayer("", "");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("expected Exception -- OK");
+ }
+
+ try {
+ XLayer aLayer = oObj.getLayer(aLayerID, "");
+ res &= (aLayer != null);
+
+ if (aLayer == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ } else {
+ res &= checkLayer(aLayer);
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getLayer()", res);
+ }
+
+ public void _getUpdatableLayer() {
+ String aLayerID = "org.openoffice.Office.Common";
+ boolean res = true;
+
+ try {
+ oObj.getUpdatableLayer("");
+ log.println("Exception expected -- FAILED");
+ res = false;
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception " + e + " -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("expected Exception -- OK");
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ try {
+ XUpdatableLayer aLayer = oObj.getUpdatableLayer(aLayerID);
+ res &= (aLayer != null);
+
+ if (aLayer == null) {
+ log.println("\treturned Layer is NULL -- FAILED");
+ } else {
+ res &= checkLayer(aLayer);
+ }
+ } catch (com.sun.star.configuration.backend.BackendAccessException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("unexpected Exception -- FAILED");
+ res = false;
+ }
+
+ tRes.tested("getUpdatableLayer()", res);
+ }
+
+ protected boolean checkLayer(XLayer aLayer) {
+ boolean res = false;
+
+ log.println("Checking for Exception in case of null argument");
+
+ try {
+ aLayer.readData(null);
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Expected Exception -- OK");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ }
+
+ log.println("checking read data with own XLayerHandler implementation");
+
+ try {
+ XLayerHandlerImpl xLayerHandler = new XLayerHandlerImpl();
+ aLayer.readData(xLayerHandler);
+
+ String implCalled = xLayerHandler.getCalls();
+ log.println(implCalled);
+
+ int sl = implCalled.indexOf("startLayer");
+
+ if (sl < 0) {
+ log.println("startLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("startLayer was called -- OK");
+ res &= true;
+ }
+
+ int el = implCalled.indexOf("endLayer");
+
+ if (el < 0) {
+ log.println("endLayer wasn't called -- FAILED");
+ res &= false;
+ } else {
+ log.println("endLayer was called -- OK");
+ res &= true;
+ }
+ } catch (com.sun.star.lang.NullPointerException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception (" + e + ") -- FAILED");
+ res &= false;
+ }
+
+ return res;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/configuration/backend/_XUpdateHandler.java b/qadevOOo/tests/java/ifc/configuration/backend/_XUpdateHandler.java
new file mode 100644
index 000000000..4c35cc70d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/configuration/backend/_XUpdateHandler.java
@@ -0,0 +1,234 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.configuration.backend;
+
+import com.sun.star.configuration.backend.TemplateIdentifier;
+import com.sun.star.configuration.backend.XUpdateHandler;
+import com.sun.star.uno.Type;
+
+import lib.MultiMethodTest;
+
+import util.XLayerHandlerImpl;
+import util.XLayerImpl;
+
+public class _XUpdateHandler extends MultiMethodTest {
+ public XUpdateHandler oObj;
+ protected XLayerHandlerImpl xLayerHandler = null;
+
+ @Override
+ public void before() {
+ xLayerHandler = (XLayerHandlerImpl) tEnv.getObjRelation("LayerHandler");
+
+ try {
+ xLayerHandler.startLayer();
+ xLayerHandler.overrideNode("org.openoffice.Setup", (short) 0,
+ false);
+ xLayerHandler.overrideNode("Office", (short) 0, false);
+ xLayerHandler.overrideProperty("ooSetupInstCompleted", (short) 0,
+ new Type(String.class),
+ false);
+ xLayerHandler.setPropertyValue(Boolean.FALSE);
+ xLayerHandler.endProperty();
+ xLayerHandler.overrideNode("Factories", (short) 0, false);
+ xLayerHandler.addOrReplaceNode("com.sun.star.chart.ChartDocument",
+ (short) 0);
+ xLayerHandler.overrideProperty("ooSetupFactoryEmptyDocumentURL",
+ (short) 0,
+ new Type(String.class),
+ false);
+ xLayerHandler.setPropertyValue("private:factory/schart");
+ xLayerHandler.endProperty();
+ xLayerHandler.overrideProperty("ooSetupFactoryIcon", (short) 0,
+ new Type(java.lang.Long.class),
+ false);
+ xLayerHandler.setPropertyValue(Integer.valueOf(13));
+ xLayerHandler.endProperty();
+ xLayerHandler.overrideProperty("ooSetupFactoryShortName",
+ (short) 0,
+ new Type(String.class),
+ false);
+ xLayerHandler.setPropertyValue("schart");
+ xLayerHandler.setPropertyValueForLocale("TemplateFile", "en-US");
+ xLayerHandler.endProperty();
+ xLayerHandler.overrideProperty("ooSetupFactoryTemplateFile",
+ (short) 0,
+ new Type(String.class),
+ false);
+ xLayerHandler.setPropertyValue("empty");
+ xLayerHandler.endProperty();
+ xLayerHandler.addProperty("ooSetupFactoryTemplateFile", (short) 0,
+ new Type(String.class));
+ xLayerHandler.addPropertyWithValue("ooSetupFactoryTemplateFile",
+ (short) 0, "TemplateFile");
+ xLayerHandler.endNode();
+
+ xLayerHandler.addOrReplaceNode("dropme", (short) 0);
+ xLayerHandler.overrideProperty("anyway", (short) 0,
+ new Type(String.class),
+ false);
+ xLayerHandler.setPropertyValue("nice");
+ xLayerHandler.endProperty();
+ xLayerHandler.dropNode("dropme");
+ xLayerHandler.endNode();
+
+ xLayerHandler.addOrReplaceNodeFromTemplate("FromTemplate",
+ new com.sun.star.configuration.backend.TemplateIdentifier(
+ "org.openoffice.Setup",
+ "Setup"),
+ (short) 0);
+ xLayerHandler.endNode();
+
+ xLayerHandler.endNode();
+ xLayerHandler.endNode();
+ xLayerHandler.endNode();
+ xLayerHandler.endLayer();
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected Exception " + e);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected Exception " + e);
+ }
+ }
+
+ public void _addOrReplaceNode() {
+ requiredMethod("startUpdate()");
+ tRes.tested("addOrReplaceNode()", true);
+ }
+
+ public void _addOrReplaceNodeFromTemplate() {
+ requiredMethod("startUpdate()");
+ tRes.tested("addOrReplaceNodeFromTemplate()", true);
+ }
+
+ public void _addOrReplaceProperty() {
+ requiredMethod("startUpdate()");
+ tRes.tested("addOrReplaceProperty()", true);
+ }
+
+ public void _addOrReplacePropertyWithValue() {
+ requiredMethod("startUpdate()");
+ tRes.tested("addOrReplacePropertyWithValue()", true);
+ }
+
+ public void _endNode() {
+ requiredMethod("startUpdate()");
+ tRes.tested("endNode()", true);
+ }
+
+ public void _endProperty() {
+ requiredMethod("startUpdate()");
+ tRes.tested("endProperty()", true);
+ }
+
+ public void _endUpdate() {
+ requiredMethod("startUpdate()");
+ tRes.tested("endUpdate()", true);
+ }
+
+ public void _modifyNode() {
+ requiredMethod("startUpdate()");
+ tRes.tested("modifyNode()", true);
+ }
+
+ public void _modifyProperty() {
+ requiredMethod("startUpdate()");
+ tRes.tested("modifyProperty()", true);
+ }
+
+ public void _removeNode() {
+ requiredMethod("startUpdate()");
+ tRes.tested("removeNode()", true);
+ }
+
+ public void _removeProperty() {
+ requiredMethod("startUpdate()");
+ tRes.tested("removeProperty()", true);
+ }
+
+ public void _resetProperty() {
+ requiredMethod("startUpdate()");
+ tRes.tested("resetProperty()", true);
+ }
+
+ public void _resetPropertyValue() {
+ requiredMethod("startUpdate()");
+ tRes.tested("resetPropertyValue()", true);
+ }
+
+ public void _resetPropertyValueForLocale() {
+ requiredMethod("startUpdate()");
+ tRes.tested("resetPropertyValueForLocale()", true);
+ }
+
+ public void _setPropertyValue() {
+ requiredMethod("startUpdate()");
+ tRes.tested("setPropertyValue()", true);
+ }
+
+ public void _setPropertyValueForLocale() {
+ requiredMethod("startUpdate()");
+ tRes.tested("setPropertyValueForLocale()", true);
+ }
+
+ public void _startUpdate() {
+ boolean res = true;
+
+ try {
+ XLayerImpl xLayer = (XLayerImpl) tEnv.getObjRelation("Layer");
+ log.println("Layer called (before): " + xLayer.hasBeenCalled());
+ oObj.startUpdate();
+ oObj.addOrReplaceNode("whatever", (short) 0);
+ oObj.addOrReplaceNodeFromTemplate("Office", (short) 0,
+ new TemplateIdentifier());
+ oObj.addOrReplaceProperty("prop", (short) 0,
+ new Type(String.class));
+ oObj.addOrReplacePropertyWithValue("prop2", (short) 0, "this");
+ oObj.modifyProperty("ooSetupFactoryIcon", (short) 0, (short) 0,
+ new Type(String.class));
+ oObj.resetPropertyValue();
+ oObj.resetPropertyValueForLocale("en-US");
+ oObj.endProperty();
+ oObj.modifyProperty("ooSetupFactoryEmptyDocumentURL", (short) 0,
+ (short) 0, new Type(String.class));
+ oObj.setPropertyValue("newValue");
+ oObj.setPropertyValueForLocale("newValue-US", "de-DE");
+ oObj.endProperty();
+ oObj.modifyNode("org.openoffice.Setup", (short) 0, (short) 0, true);
+ oObj.removeNode("whatever");
+ oObj.resetProperty("prop");
+ oObj.endNode();
+ oObj.endNode();
+ oObj.endNode();
+ oObj.endUpdate();
+
+ log.println("Layer called (after): " + xLayer.hasBeenCalled());
+
+ res = xLayer.hasBeenCalled();
+ } catch (com.sun.star.configuration.backend.MalformedDataException e) {
+ log.println("Unexpected exception " + e.getMessage());
+ res = false;
+ } catch (com.sun.star.lang.IllegalAccessException e) {
+ log.println("Unexpected exception " + e.getMessage());
+ res = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Unexpected exception " + e.getMessage());
+ res = false;
+ }
+
+ tRes.tested("startUpdate()", res);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/connection/_XAcceptor.java b/qadevOOo/tests/java/ifc/connection/_XAcceptor.java
new file mode 100644
index 000000000..2e69eab95
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/connection/_XAcceptor.java
@@ -0,0 +1,304 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.connection;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.connection.XAcceptor;
+import com.sun.star.connection.XConnection;
+import com.sun.star.connection.XConnector;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Tests methods of <code>XAcceptor</code> interface. <p>
+* Required relations :
+* <ul>
+* <li> <code>'XAcceptor.connectStr'</code> : String variable. Has
+* the following format :
+* <code>'socket,host=<SOHost>,port=<UniquePort>' where <SOHost> is
+* the host where StarOffice is started. This string must be passed
+* as parameter to <code>accept()</code> method. </li>
+* <ul> <p>
+* This test <b>can not</b> be run in multiply threads.
+*/
+public class _XAcceptor extends MultiMethodTest {
+
+ /**
+ * Calls <code>accept()</code> method in a separate thread.
+ * Then stores exception thrown by call if it occurred, or
+ * return value.
+ */
+ protected class AcceptorThread extends Thread {
+ /**
+ * If exception occurred during method call it is
+ * stored in this field.
+ */
+ public Exception ex = null ;
+ private final XAcceptor acc;
+ /**
+ * If method call returns some value it stores in this field.
+ */
+ public XConnection acceptedCall = null ;
+
+ /**
+ * Creates object which can call <code>accept</code> method
+ * of the Acceptor object specified.
+ */
+ public AcceptorThread(XAcceptor acc) {
+ this.acc = acc ;
+ }
+
+ /**
+ * Call <code>accept()</code> method.
+ */
+ @Override
+ public void run() {
+ try {
+ acceptedCall = acc.accept(connectString) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ ex = e ;
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ ex = e ;
+ } catch (com.sun.star.connection.AlreadyAcceptingException e) {
+ ex = e ;
+ }
+ }
+ }
+
+ public XAcceptor oObj = null;
+ protected String connectString = null ;
+
+ /**
+ * Retrieves object relation.
+ */
+ @Override
+ public void before() throws StatusException {
+ connectString = (String)
+ tEnv.getObjRelation("XAcceptor.connectStr") ;
+
+ if (connectString == null)
+ throw new StatusException("No object relation found",
+ new NullPointerException()) ;
+ }
+
+ /**
+ * First part : Thread with acceptor created, and it starts listening.
+ * The main thread tries to connect to acceptor. Acception thread must
+ * return and valid connection must be returned by Acceptor. <p>
+ *
+ * Second part : Trying to create second acceptor which listen on
+ * the same port. Calling <code>accept()</code> method of the second
+ * Acceptor must rise appropriate exception. <p>
+ *
+ * Has OK status if both test parts executed properly.
+ */
+ public void _accept() {
+ boolean result = true ;
+ AcceptorThread acception = null,
+ dupAcception = null ;
+ XAcceptor dupAcceptor = null ;
+ XConnector xConnector = null ;
+
+ // creating services required
+ try {
+ Object oConnector = tParam.getMSF().createInstance("com.sun.star.connection.Connector") ;
+
+ xConnector = UnoRuntime.queryInterface
+ (XConnector.class, oConnector) ;
+
+ XInterface acceptor = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.connection.Acceptor") ;
+
+ dupAcceptor = UnoRuntime.queryInterface
+ (XAcceptor.class, acceptor) ;
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create service", e) ;
+ }
+
+ // Testing connection to the acceptor
+ try {
+ acception = new AcceptorThread(oObj) ;
+ acception.start() ;
+
+ util.utils.shortWait();
+
+ XConnection con = xConnector.connect(connectString) ;
+
+ if (con == null)
+ log.println("Connector returned : null") ;
+ else
+ log.println("Connector returned : " + con.getDescription()) ;
+
+ try {
+ acception.join(5 * 1000) ;
+ } catch(InterruptedException e) {}
+
+ if (acception.isAlive()) {
+
+ result = false ;
+ log.println("Method call haven't returned") ;
+
+ if (acception.acceptedCall == null)
+ log.println("Acceptor returned : null") ;
+ else
+ log.println("Acceptor returned : " +
+ acception.acceptedCall.getDescription()) ;
+ } else {
+ if (acception.ex != null) {
+ log.println("Exception occurred in accept() thread :") ;
+ acception.ex.printStackTrace(log) ;
+ }
+
+ if (acception.acceptedCall == null)
+ log.println("Method returned : null") ;
+ else
+ log.println("Method returned : " +
+ acception.acceptedCall.getDescription()) ;
+
+ result &= acception.acceptedCall != null ;
+ }
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.connection.NoConnectException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } finally {
+ oObj.stopAccepting();
+ if (acception.isAlive()) {
+ acception.interrupt();
+ }
+ }
+
+ // duplicate acceptor test
+ // creating the additional acceptor which listens
+ // on the same port
+
+ log.println("___ Testing for accepting on the same port ...") ;
+
+ try {
+ dupAcception = new AcceptorThread(dupAcceptor) ;
+ dupAcception.start() ;
+
+ try {
+ dupAcception.join(1 * 1000) ;
+ } catch(InterruptedException e) {}
+
+
+ if (dupAcception.isAlive()) {
+ log.println("Duplicate acceptor is listening ...") ;
+
+ // now trying to accept on the same port as additional
+ // acceptor
+ acception = new AcceptorThread(oObj) ;
+ acception.start() ;
+
+ try {
+ acception.join(3 * 1000) ;
+ } catch(InterruptedException e) {}
+
+ if (acception.isAlive()) {
+ oObj.stopAccepting() ;
+ acception.interrupt() ;
+
+ log.println("Acceptor with the same port must cause"+
+ " an error but didn't") ;
+ result = false ;
+ } else {
+ log.println("Accepted call = " + acception.acceptedCall) ;
+ if (acception.ex == null) {
+ //result = false ;
+ log.println("No exception was thrown when trying"+
+ " to listen on the same port") ;
+ } else {
+ if (acception.ex instanceof
+ com.sun.star.connection.AlreadyAcceptingException ||
+ acception.ex instanceof
+ com.sun.star.connection.ConnectionSetupException) {
+
+ log.println("Right exception was thrown when trying"+
+ " to listen on the same port") ;
+ } else {
+ result = false ;
+ log.println("Wrong exception was thrown when trying"+
+ " to listen on the same port :") ;
+ acception.ex.printStackTrace(log) ;
+ }
+ }
+ }
+ }
+ } finally {
+ dupAcceptor.stopAccepting() ;
+ if (dupAcception.isAlive()) {
+ dupAcception.interrupt() ;
+ }
+ }
+
+ tRes.tested("accept()", result) ;
+ }
+
+ /**
+ * Starts thread with Acceptor and then calls <code>stopListening</code>
+ * method. <p>
+ * Has OK status if <code>accept</code> method successfully returns and
+ * rises no exceptions.
+ */
+ public void _stopAccepting() {
+ boolean result = true ;
+
+
+ AcceptorThread acception = new AcceptorThread(oObj) ;
+
+ acception.start() ;
+
+ oObj.stopAccepting() ;
+
+ try {
+ acception.join(3 * 1000) ;
+ } catch (InterruptedException e) {}
+
+ if (acception.isAlive()) {
+ acception.interrupt() ;
+
+ result = false ;
+ log.println("Method call haven't returned") ;
+
+ } else {
+ if (acception.ex != null) {
+ log.println("Exception occurred in accept() thread :") ;
+ acception.ex.printStackTrace(log) ;
+ result = false ;
+ } else {
+ result = true ;
+ }
+
+ if (acception.acceptedCall == null)
+ log.println("accept() returned : null") ;
+ else
+ log.println("accept() returned : " +
+ acception.acceptedCall.getDescription()) ;
+ }
+
+ tRes.tested("stopAccepting()", result) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/connection/_XConnector.java b/qadevOOo/tests/java/ifc/connection/_XConnector.java
new file mode 100644
index 000000000..5d63fafd2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/connection/_XConnector.java
@@ -0,0 +1,186 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.connection;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.connection.XAcceptor;
+import com.sun.star.connection.XConnection;
+import com.sun.star.connection.XConnector;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Tests methods of <code>XConnector</code> interface. <p>
+* Required relations :
+* <ul>
+* <li> <code>'XConnector.connectStr'</code> : String variable. Has
+* the following format :
+* <code>'socket,host=<SOHost>,port=<UniquePort>' where <SOHost> is
+* the host where StarOffice is started. This string must be passed
+* as parameter to <code>accept()</code> method. </li>
+* <ul> <p>
+* This test <b>can not</b> be run in multiply threads.
+*/
+public class _XConnector extends MultiMethodTest {
+
+ /**
+ * Calls <code>accept()</code> method in a separate thread.
+ * Then stores exception thrown by call if it occurred, or
+ * return value.
+ */
+ protected class AcceptorThread extends Thread {
+ /**
+ * the acceptor
+ */
+ private final XAcceptor acc;
+ /**
+ * If exception occurred during method call it is
+ * stored in this field.
+ */
+ public Exception ex = null ;
+ /**
+ * If method call returns some value it stores in this field.
+ */
+ public XConnection acceptedCall = null ;
+
+ /**
+ * Gets an object which can call <code>accept</code> method.
+ */
+ public AcceptorThread(XAcceptor acc) {
+ this.acc = acc ;
+ }
+
+ /**
+ * Call <code>accept()</code> method.
+ */
+ @Override
+ public void run() {
+ try {
+ acceptedCall = acc.accept(connectString) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ ex = e ;
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ ex = e ;
+ } catch (com.sun.star.connection.AlreadyAcceptingException e) {
+ ex = e ;
+ }
+ }
+ }
+
+ public XConnector oObj = null;
+ protected String connectString = null ;
+
+ /**
+ * Retrieves object relation.
+ */
+ @Override
+ public void before() throws StatusException {
+ connectString = (String)
+ tEnv.getObjRelation("XConnector.connectStr") ;
+ if (connectString == null)
+ throw new StatusException("No object relation found",
+ new NullPointerException()) ;
+ }
+
+ /**
+ * Thread with acceptor is created, and it starts listening.
+ * The main thread tries to connect to acceptor. Acception thread must
+ * return and a valid connection must be returned by Acceptor. <p>
+ *
+ */
+ public void _connect() {
+ boolean result = true ;
+ AcceptorThread acceptorThread = null;
+ XAcceptor xAcceptor = null ;
+ XConnection aCon = null;
+ XInterface x = null;
+
+ // create the acceptor
+ try {
+ x = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.connection.Acceptor") ;
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create service", e) ;
+ }
+
+ xAcceptor = UnoRuntime.queryInterface(XAcceptor.class, x);
+
+ acceptorThread = new AcceptorThread(xAcceptor) ;
+ acceptorThread.start() ;
+
+ util.utils.shortWait();
+
+ // connect to acceptor
+ try {
+ aCon = oObj.connect(connectString);
+
+ if (aCon == null)
+ log.println("Connector returned: null") ;
+ else
+ log.println("Connector returned: " + aCon.getDescription()) ;
+
+ try {
+ acceptorThread.join(30 * 1000) ;
+ } catch(InterruptedException e) {}
+
+ // connection not established
+ if (acceptorThread.isAlive()) {
+
+ result = false ;
+ log.println("Method call hasn't returned") ;
+
+ if (acceptorThread.acceptedCall == null)
+ log.println("Acceptor returned : null") ;
+ else
+ log.println("Acceptor returned : " +
+ acceptorThread.acceptedCall.getDescription()) ;
+ } else {
+ if (acceptorThread.ex != null) {
+ log.println("Exception occurred in accept() thread :") ;
+ acceptorThread.ex.printStackTrace(log) ;
+ }
+
+ if (acceptorThread.acceptedCall == null)
+ log.println("Method returned : null") ;
+ else
+ log.println("Method returned : " +
+ acceptorThread.acceptedCall.getDescription()) ;
+
+ result &= acceptorThread.acceptedCall != null ;
+ }
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.connection.NoConnectException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } finally {
+ acceptorThread.acc.stopAccepting();
+ if (acceptorThread.isAlive()) {
+ acceptorThread.interrupt();
+ }
+ }
+
+ tRes.tested("connect()", result) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/container/_XChild.java b/qadevOOo/tests/java/ifc/container/_XChild.java
new file mode 100644
index 000000000..fc32dc9c4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XChild.java
@@ -0,0 +1,91 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.container.XChild;
+import com.sun.star.container.XNamed;
+import com.sun.star.uno.UnoRuntime;
+
+/*
+* Testing <code>com.sun.star.container.XChild</code>
+* interface methods :
+* <ul>
+* <li><code> getParent()</code></li>
+* <li><code> setParent()</code></li>
+* </ul>
+* @see com.sun.star.container.XChild
+*/
+public class _XChild extends MultiMethodTest {
+
+ public XChild oObj = null;
+ public Object gotten = null;
+
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. Parent returned is stored.<p>
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getParent() {
+ gotten = oObj.getParent();
+ XNamed the_name = UnoRuntime.queryInterface(XNamed.class,gotten);
+ if (the_name != null)
+ log.println("Parent:"+the_name.getName());
+ tRes.tested("getParent()",gotten != null);
+ }
+
+ /**
+ * Sets existing parent and checks that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getParent() </code> : to get the parent. </li>
+ * </ul>
+ */
+ public void _setParent() {
+ requiredMethod("getParent()") ;
+
+ String parentComment = (String) tEnv.getObjRelation("cannotSwitchParent");
+
+ if (parentComment != null) {
+ log.println(parentComment);
+ tRes.tested("setParent()",Status.skipped(true));
+ return;
+ }
+
+ try {
+ oObj.setParent(gotten);
+ tRes.tested("setParent()",true);
+ }
+ catch (com.sun.star.lang.NoSupportException ex) {
+ log.println("Exception occurred during setParent()");
+ ex.printStackTrace(log);
+ tRes.tested("setParent()",false);
+ }
+
+ }
+
+} // finish class _XChild
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XContainer.java b/qadevOOo/tests/java/ifc/container/_XContainer.java
new file mode 100644
index 000000000..6d0d37255
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XContainer.java
@@ -0,0 +1,342 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.container.ContainerEvent;
+import com.sun.star.container.XContainer;
+import com.sun.star.container.XContainerListener;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.container.XNameReplace;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XNamingService;
+
+
+/**
+* Testing <code>com.sun.star.container.XContainer</code>
+* interface methods :
+* <ul>
+* <li><code> addContainerListener()</code></li>
+* <li><code> removeContainerListener()</code></li>
+* </ul>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'INSTANCE'</code> : Object which can be inserted into
+* container.</li>
+* <li> <code>'INSTANCE2'</code> : <b>(optional)</b>
+* Object which can be inserted into container. The relation
+* must be specified when container can't contain two
+* identical objects. Replaces the first instance.</li>
+* <li> <code>'XContainer.Container'</code> (of type
+* <code>com.sun.star.container.XNameContainer</code>)
+* <b>optional</b> : is required when the tested component
+* doesn't implement <code>XNameContainer</code> and is used
+* for adding and removing elements.</li>
+* <ul> <p>
+* Object <b>must implement</b>
+* <code>com.sun.star.container.XNameContainer</code>.
+* <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.container.XContainer
+*/
+public class _XContainer extends MultiMethodTest {
+
+ public XContainer oObj = null;
+ private boolean bElementInserted = false;
+ private boolean bElementRemoved = false;
+ private boolean bElementReplaced = false;
+ private XNameContainer NC = null ;
+ private XControlContainer CC = null ;
+ private XNamingService NV = null ;
+ private XNameReplace NR = null ;
+ private Object inst = null ;
+ private Object inst2 = null ;
+
+ /**
+ * Retrieves object relations, and tries to query object for
+ * <code>XNameContainer</code> interface.
+ * @throws StatusException If one of relations not found or
+ * object doesn't implement <code>XNameContainer</code> interface.
+ */
+ @Override
+ public void before() throws StatusException {
+ // do this test with a different object
+ Object altObj = tEnv.getObjRelation("XContainer.AlternateObject");
+ if (altObj != null) {
+ oObj = UnoRuntime.queryInterface(XContainer.class, altObj);
+ }
+
+ NC = UnoRuntime.queryInterface
+ (XNameContainer.class, oObj) ;
+
+ Object container = null;
+ if (NC == null) {
+ container = tEnv.getObjRelation("XContainer.Container") ;
+ }
+
+ if (container != null) {
+ if (container instanceof com.sun.star.awt.XControlContainer) {
+ CC = (XControlContainer) container;
+ } else if (container instanceof com.sun.star.uno.XNamingService) {
+ NV = (XNamingService) container;
+ } else if (container instanceof com.sun.star.container.XNameReplace) {
+ NR = (XNameReplace) container;
+ inst2 = tEnv.getObjRelation("XContainer.NewValue");
+ inst = tEnv.getObjRelation("XContainer.ElementName");
+ } else if (container instanceof com.sun.star.container.XNameContainer) {
+ NC = (XNameContainer) container;
+ }
+ }
+
+ if (NC == null && CC == null && NV == null && NR == null)
+ throw new StatusException(
+ Status.failed("Neither object implements XNameContainer" +
+ " nor relation 'XContainer.Container' found.")) ;
+
+ if (inst == null)
+ inst = tEnv.getObjRelation("INSTANCE");
+ if (inst == null) {
+ log.println("No INSTANCE ObjRelation!!! ");
+ throw new StatusException(Status.failed("No INSTANCE ObjRelation!!!")) ;
+ }
+ if (inst2 == null)
+ inst2 = tEnv.getObjRelation("INSTANCE2");
+ }
+
+ /**
+ * Listener implementation which just set flags on appropriate
+ * events.
+ */
+ public class MyListener implements XContainerListener {
+ public void elementInserted(ContainerEvent e) {
+ bElementInserted = true;
+ }
+ public void elementRemoved(ContainerEvent e) {
+ bElementRemoved = true;
+ }
+ public void elementReplaced(ContainerEvent e) {
+ bElementReplaced = true;
+ }
+ public void disposing (EventObject obj) {}
+ }
+
+ MyListener listener = new MyListener();
+
+ /**
+ * Adds <code>MyListener</code> and performs all possible changes
+ * (insert, replace, remove) with container. The checks which
+ * events were called. <p>
+ * Has <b>OK</b> status if all methods of the listener were called.
+ */
+ public void _addContainerListener() {
+ boolean bResult = true;
+
+ oObj.addContainerListener(listener);
+ bResult &= performChanges();
+ //we can't replace if the container is XControlContainer
+ if (NC != null) bResult &= bElementReplaced;
+ // we do not remove and insert if the listener is triggered by XNameReplace
+ if (NR == null) bResult &= bElementRemoved;
+ if (NR == null) bResult &= bElementInserted;
+
+ if (!bResult) {
+ log.println("inserted was " + (bElementInserted ? "" : "NOT")
+ + " called.");
+
+ if (NC != null) {
+ log.println("replaced was " + (bElementReplaced ? "" : "NOT")
+ + " called.");
+ }
+ log.println("removed was " + (bElementRemoved ? "" : "NOT")
+ + " called.");
+ }
+
+ tRes.tested("addContainerListener()", bResult);
+ }
+
+ /**
+ * Removes listener added before and performs all possible changes
+ * (insert, replace, remove) with container. The checks which
+ * events were called. <p>
+ * Has <b>OK</b> status if no methods of the listener were called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addContainerListener() </code> : to remove it now. </li>
+ * </ul>
+ */
+ public void _removeContainerListener() {
+ requiredMethod("addContainerListener()") ;
+
+ boolean bResult = true;
+ bElementReplaced = bElementRemoved = bElementInserted = false;
+
+ oObj.removeContainerListener(listener);
+ bResult &= performChanges();
+ bResult &= !bElementReplaced;
+ bResult &= !bElementRemoved;
+ bResult &= !bElementInserted;
+
+ tRes.tested("removeContainerListener()", bResult);
+ }
+
+ /**
+ * Inserts, replaces and finally removes object from container.
+ * Object is gotten from <code>'INSTANCE'</code> relation. If
+ * the relation <code>'INSTANCE2'</code> exists then the first
+ * instance is replaced with second.
+ */
+ protected boolean performChanges() {
+ if (CC != null) return performChanges2();
+ if (NV != null) return performChanges3();
+ if (NR != null) return performChanges4();
+ boolean bResult = true;
+ try {
+ String[] names = NC.getElementNames();
+ log.println("Elements count = " + names.length);
+ NC.insertByName("XContainer_dummy", inst);
+ names = NC.getElementNames();
+ log.println("Elements count = " + names.length);
+ if (inst2 == null) {
+ NC.replaceByName("XContainer_dummy", inst);
+ } else {
+ NC.replaceByName("XContainer_dummy", inst2);
+ }
+ NC.removeByName("XContainer_dummy");
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred ");
+ ex.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.lang.WrappedTargetException ex) {
+ log.println("Exception occurred ");
+ ex.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.container.NoSuchElementException ex) {
+ log.println("Exception occurred ");
+ ex.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.container.ElementExistException ex) {
+ log.println("Exception occurred ");
+ ex.printStackTrace(log);
+ bResult = false;
+ }
+
+ return bResult;
+ }
+
+ /**
+ * In case no XNameContainer is available, but a XControlContainer
+ * instead.
+ * the XControl instance is inserted
+ * Method returns true if the count of Controls is changed afterwards
+ */
+ protected boolean performChanges2() {
+ int precount = CC.getControls().length;
+ CC.addControl("NewControl",(XControl) inst);
+ waitForEventIdle();
+ int count = CC.getControls().length;
+ CC.removeControl(CC.getControl("NewControl"));
+ waitForEventIdle();
+ return count>precount;
+ }
+
+ /**
+ * In case no XNameContainer is available, but a XNamingService
+ * instead.
+ * the instance is registered and revoked again
+ * Method return true if getRegisteredObject() works after
+ * registering and doesn't after revoke
+ */
+ protected boolean performChanges3() {
+ boolean res = true;
+ Object reg = null;
+
+ try {
+ reg = NV.getRegisteredObject("MyFactory");
+ NV.revokeObject("MyFactory");
+ } catch (Exception e) {
+
+ }
+
+ try {
+ NV.registerObject("MyFactory", inst);
+ reg = NV.getRegisteredObject("MyFactory");
+ res &= (reg != null);
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ log.println("registerObject failed");
+ res &= false;
+ }
+
+ try {
+ NV.revokeObject("MyFactory");
+ reg = NV.getRegisteredObject("MyFactory");
+ log.println("revokeObject failed");
+ res &= false;
+ } catch (Exception e) {
+ res &= true;
+ }
+
+ return res;
+ }
+
+ /**
+ * In case no XNameContainer is available, but a XNamingReplace
+ * instead.
+ */
+ protected boolean performChanges4() {
+ boolean res = true;
+ Object newValue = inst2;
+ Object originalValue = null;
+ String name = null;
+
+ try {
+ name = (String)inst;
+ }
+ catch(java.lang.ClassCastException e) {
+ log.write("Expected String as object relations 'XContainer.ElementName'.");
+ e.printStackTrace(log);
+ return false;
+ }
+
+ try {
+ originalValue = NR.getByName(name);
+ NR.replaceByName(name, newValue);
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ try {
+ NR.replaceByName(name, originalValue);
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ return res;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XContainerQuery.java b/qadevOOo/tests/java/ifc/container/_XContainerQuery.java
new file mode 100644
index 000000000..68cacca00
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XContainerQuery.java
@@ -0,0 +1,154 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.container.XContainerQuery;
+import com.sun.star.container.XEnumeration;
+
+
+/**
+* Testing <code>com.sun.star.container.XContainerQuery</code>
+* interface methods :
+* <ul>
+* <li><code> createSubSetEnumerationByProperties()</code></li>
+* <li><code> createSubSetEnumerationByQuery()</code></li>
+* </ul>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XContainerQuery.createSubSetEnumerationByProperties'</code> :
+* <code>NameValue[]</code> which is a valid argument for
+* <code>createSubSetEnumerationByProperties()</code>.</li>
+* <li> <code>'XContainerQuery.createSubSetEnumerationByQuery'</code> : <b>(optional)</b>
+* Normally <code>createSubSetEnumerationByProperties()</code> covers all
+* possible queries. But for special cases, i.e. sorted output, the function
+* <code>createSubSetEnumerationByQuery()</code> was made. The special cases was not
+* implemented by default in the implementation object. So this function could be
+* marked as <code>optional</code></li>
+* <ul> <p>
+* <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.container.XContainerQuery
+*/
+public class _XContainerQuery extends MultiMethodTest {
+
+ public XContainerQuery oObj = null;
+ private NamedValue[] m_querySequenze = null;
+ private String[] m_queryStrings = null;
+
+
+ /**
+ * Retrieves object relations
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() throws StatusException {
+
+ m_querySequenze = (NamedValue[]) tEnv.getObjRelation(
+ "XContainerQuery.createSubSetEnumerationByProperties");
+ if (m_querySequenze == null) {
+ throw new StatusException(
+ Status.failed("Could not get object relation " +
+ "'XContainerQuery.createSubSetEnumerationByProperties'")) ;
+ }
+
+ m_queryStrings = (String[]) tEnv.getObjRelation(
+ "XContainerQuery.createSubSetEnumerationByQuery");
+ if (m_queryStrings == null) {
+ log.println("Could not get object relation " +
+ "'XContainerQuery.createSubSetEnumerationByQuery'");
+ }
+ }
+
+
+ /**
+ * If object relation is available, the function was called with relation
+ * as parameter. The returned <code>XEnumeration</code> must not be null and
+ * elements of it must be valid.
+ * If object relation is not available, the result is always <code>true</code>
+ */
+ public void _createSubSetEnumerationByQuery() {
+
+ boolean bResult = true;
+ if ( m_queryStrings == null ) {
+ log.println("This object does not have an implementation for this function");
+ // This is not a bug, because it's a feature for future purposes
+ } else {
+ for (int i = 0; i < m_queryStrings.length; i++){
+ String queryString = m_queryStrings[i];
+ XEnumeration subSet = oObj.createSubSetEnumerationByQuery( queryString );
+
+ bResult &= subSet.hasMoreElements();
+
+ while (subSet.hasMoreElements()) {
+ try{
+ subSet.nextElement();
+
+ } catch (com.sun.star.container.NoSuchElementException e){
+ log.println("Exception occurred ");
+ e.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("Exception occurred ");
+ e.printStackTrace(log);
+ bResult = false;
+ }
+ }
+ }
+ }
+
+ tRes.tested("createSubSetEnumerationByQuery()", bResult);
+ }
+
+ /**
+ * The function was called with object relation
+ * as parameter. The returned <code>XEnumeration</code> must not be null and
+ * elements of it must be valid.
+ *
+ */
+ public void _createSubSetEnumerationByProperties() {
+
+ boolean bResult = true;
+
+ XEnumeration subSet = oObj.createSubSetEnumerationByProperties( m_querySequenze );
+
+ bResult = subSet.hasMoreElements();
+
+ while (subSet.hasMoreElements()) {
+ try{
+ subSet.nextElement();
+
+ } catch (com.sun.star.container.NoSuchElementException e){
+ log.println("Exception occurred ");
+ e.printStackTrace(log);
+ bResult = false;
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("Exception occurred ");
+ e.printStackTrace(log);
+ bResult = false;
+ }
+ }
+
+ tRes.tested("createSubSetEnumerationByProperties()", bResult);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/container/_XContentEnumerationAccess.java b/qadevOOo/tests/java/ifc/container/_XContentEnumerationAccess.java
new file mode 100644
index 000000000..24488025e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XContentEnumerationAccess.java
@@ -0,0 +1,86 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XContentEnumerationAccess;
+import com.sun.star.container.XEnumeration;
+
+/**
+* Testing <code>com.sun.star.container.XContentEnumerationAccess</code>
+* interface methods :
+* <ul>
+* <li><code> createContentEnumeration()</code></li>
+* <li><code> getAvailableServiceNames()</code></li>
+* </ul> <p>
+* @see com.sun.star.container.XContentEnumerationAccess
+*/
+public class _XContentEnumerationAccess extends MultiMethodTest{
+ public XContentEnumerationAccess oObj = null;
+ String[] serviceNames = null;
+
+ /**
+ * Retrieves service names and stores them. <p>
+ * Has <b> OK </b> status if not <code>null</code>
+ * value returned.
+ */
+ public void _getAvailableServiceNames(){
+ boolean bResult = true;
+ try {
+ serviceNames = oObj.getAvailableServiceNames();
+ bResult = serviceNames != null ;
+ } catch (Exception e) {
+ log.println("Exception occurred. " + e);
+ bResult = false;
+ }
+ tRes.tested("getAvailableServiceNames()", bResult);
+ }
+
+ /**
+ * If at least one service available then an enumeration for
+ * it created. <p>
+ * Has <b> OK </b> status if no services available or enumeration
+ * created for available service is not <code>null</code>.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>getAvailableServiceNames()</code> :
+ * to have at least one service name for enumeration to create for.</li>
+ * </ul>
+ */
+ public void _createContentEnumeration(){
+ requiredMethod("getAvailableServiceNames()");
+
+ if (serviceNames.length == 0) {
+ log.println("No service name available") ;
+ tRes.tested("createContentEnumeration()", true) ;
+ return ;
+ }
+
+ boolean bResult = true;
+
+ log.println( "creating Enumeration" );
+ XEnumeration oEnum = oObj.createContentEnumeration(serviceNames[0]);
+ bResult &= oEnum != null;
+
+ tRes.tested( "createContentEnumeration()", bResult);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XElementAccess.java b/qadevOOo/tests/java/ifc/container/_XElementAccess.java
new file mode 100644
index 000000000..25dee4a09
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XElementAccess.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XElementAccess;
+
+/**
+ * Testing <code>com.sun.star.container.XElementAccess</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getElementType()</code></li>
+ * <li><code> hasElements()</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.container.XElementAccess
+ */
+public class _XElementAccess extends MultiMethodTest {
+ public XElementAccess oObj = null;
+
+ /**
+ * Test calls the method and checks return value. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>,
+ * only in the case the container is not empty.<p>
+ */
+ public void _hasElements(){
+ // Testing hasElements() method
+ tRes.tested( "hasElements()", oObj.hasElements() );
+ } // end hasElements
+
+ /**
+ * Test calls the method and checks return value. <p>
+ * Has <b> OK </b> status if the method returns not null value.<p>
+ */
+ public void _getElementType(){
+ // Testing getElementType() method
+ com.sun.star.uno.Type type = oObj.getElementType();
+ tRes.tested( "getElementType()", type != null );
+ } // end ElementType
+
+} /// finished class _XElementAccess
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XEnumeration.java b/qadevOOo/tests/java/ifc/container/_XEnumeration.java
new file mode 100644
index 000000000..4cddb309e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XEnumeration.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.lang.WrappedTargetException;
+
+/**
+* Testing <code>com.sun.star.container.XEnumeration</code>
+* interface methods :
+* <ul>
+* <li><code> hasMoreElements()</code></li>
+* <li><code> nextElement()</code></li>
+* </ul>
+* Test is multithread compliant. <p>
+* @see com.sun.star.container.XEnumeration
+*/
+public class _XEnumeration extends MultiMethodTest {
+
+ public XEnumeration oObj = null;
+
+ /**
+ * Retrieves relation and sets oObj to a separate enumeration
+ * created. Retrieves all elements from enumeration.<p>
+ * Has <b> OK </b> status if all elements successfully retrieved
+ * and exceptions occurred.
+ */
+ public void _hasMoreElements() {
+ boolean result = true;
+
+ log.println("get all elements");
+ int counter = 0;
+ int tmpCounter = 0;
+ while ( oObj.hasMoreElements() ) {
+ try {
+ oObj.nextElement();
+ counter ++;
+ if (counter - tmpCounter > 10000) {
+ log.println(counter+ " Elements");
+ tmpCounter = counter;
+ }
+ } catch (WrappedTargetException e) {
+ log.println("hasMoreElements() : " + e);
+ result = false;
+ break;
+ } catch (NoSuchElementException e) {
+ log.println("hasMoreElements() : " + e);
+ result = false;
+ break;
+ }
+ }
+ Object expCount = tEnv.getObjRelation("ExpectedCount");
+ if (expCount != null) {
+ int ec = ((Integer) expCount).intValue();
+ boolean locResult = counter == ec;
+ if (!locResult) {
+ log.println("Not all Elements are returned: ");
+ log.println("\tExpected: "+ ec);
+ log.println("\tFound: "+counter);
+ }
+ result &= locResult;
+ }
+ tRes.tested("hasMoreElements()", result);
+ } // end hasMoreElements
+
+ /**
+ * Calls the method (on starting this method there is no more elements
+ * in the enumeration. <p>
+ * Has <b> OK </b> status if only <code>NoSuchElementException</code>
+ * exception rises. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> hasMoreElements() </code> : it retrieves all elements </li>
+ * </ul>
+ */
+ public void _nextElement(){
+ requiredMethod("hasMoreElements()");
+ boolean result = true;
+ log.println("additional call must throw NoSuchElementException");
+
+ try {
+ oObj.nextElement();
+ log.println("nextElement: no exception!");
+ result = false;
+ } catch (WrappedTargetException e) {
+ log.println("nextElement: wrong exception!");
+ result = false;
+ } catch (NoSuchElementException e) {
+ log.println("nextElement: correct exception");
+ }
+
+ tRes.tested("nextElement()", result);
+ } // end NextElement
+
+} //end XEnumeration
+
diff --git a/qadevOOo/tests/java/ifc/container/_XEnumerationAccess.java b/qadevOOo/tests/java/ifc/container/_XEnumerationAccess.java
new file mode 100644
index 000000000..df79c9a53
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XEnumerationAccess.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+
+
+/**
+* Testing <code>com.sun.star.container.XEnumerationAccess</code>
+* interface methods. <p>
+* Test is multithread compliant. <p>
+*/
+public class _XEnumerationAccess extends MultiMethodTest{
+ public XEnumerationAccess oObj = null;
+
+ /**
+ * Test calls the method and checks return value. <p>
+ * Has <b> OK </b> status if the method returns not null value. <p>
+ */
+ public void _createEnumeration(){
+ log.println( "creating Enumeration" );
+ XEnumeration oEnum = oObj.createEnumeration();
+ tRes.tested( "createEnumeration()", oEnum != null );
+ } // end createEnumeration()
+} // finish class _XEnumerationAccess
+
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XHierarchicalName.java b/qadevOOo/tests/java/ifc/container/_XHierarchicalName.java
new file mode 100644
index 000000000..f828c1f61
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XHierarchicalName.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.container;
+
+import com.sun.star.container.XHierarchicalName;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+
+public class _XHierarchicalName extends MultiMethodTest {
+ public XHierarchicalName oObj;
+
+ public void _composeHierarchicalName() {
+ String expName = (String) tEnv.getObjRelation("HierarchicalName");
+ String element = (String) tEnv.getObjRelation("ElementName");
+ boolean res = false;
+
+ try {
+ String hn = oObj.composeHierarchicalName(element);
+ res = hn.startsWith(expName);
+
+ if (!res) {
+ log.println("Getting : " + hn +
+ " but expected it to start with " + expName);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception " + e.getMessage());
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println("Exception " + e.getMessage());
+ }
+
+ tRes.tested("composeHierarchicalName()", res);
+ }
+
+ public void _getHierarchicalName() {
+ String hName = oObj.getHierarchicalName();
+ String expName = (String) tEnv.getObjRelation("HierarchicalName");
+ boolean res = true;
+System.out.println("### "+hName);
+ if (expName != null) {
+ res = hName.startsWith(expName);
+
+ if (!res) {
+ log.println("Expected the name to start with " + expName);
+ log.println("got " + hName);
+ }
+ } else {
+ throw new StatusException(Status.failed(
+ "ObjectRelation 'HierarchicalName' missing"));
+ }
+
+ tRes.tested("getHierarchicalName()", res);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/container/_XHierarchicalNameAccess.java b/qadevOOo/tests/java/ifc/container/_XHierarchicalNameAccess.java
new file mode 100644
index 000000000..b128f199d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XHierarchicalNameAccess.java
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XHierarchicalNameAccess;
+
+/**
+* Testing <code>com.sun.star.container.XHierarchicalNameAccess</code>
+* interface methods :
+* <ul>
+* <li><code> getByHierarchicalName()</code></li>
+* <li><code> hasByHierarchicalName()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'ElementName'</code> (of type <code>String</code>):
+* name of the element which exists in the container. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.container.XHierarchicalNameAccess
+*/
+public class _XHierarchicalNameAccess extends MultiMethodTest{
+ public XHierarchicalNameAccess oObj = null;
+
+ /**
+ * Calls the method with existing and nonexistent
+ * element names. <p>
+ * Has <b>OK</b> status if for existing name <code>true</code>
+ * is returned and for nonexistent - <code>false</code>.
+ */
+ public void _hasByHierarchicalName(){
+ String name = (String) tEnv.getObjRelation("ElementName") ;
+ boolean res = oObj.hasByHierarchicalName(name) ;
+ name +="ItMakesThisNameNonExistantForSure";
+ boolean res2 = oObj.hasByHierarchicalName(name);
+ res &= !res2;
+ tRes.tested("hasByHierarchicalName()", res) ;
+ } // end _hasByHierarchicalName()
+
+ /**
+ * Tries to retrieve an element with existing name. <p>
+ * Has <b>OK</b> status if non null object is returned.
+ */
+ public void _getByHierarchicalName(){
+ String name = (String) tEnv.getObjRelation("ElementName") ;
+ Object res ;
+
+ try {
+ res = oObj.getByHierarchicalName(name) ;
+
+ } catch (NoSuchElementException e) {
+ log.println("Element with name '" + name +
+ "' doesn't exist in this container") ;
+ res = null ;
+ }
+
+ tRes.tested("getByHierarchicalName()", res != null) ;
+
+ } // end _getByHierarchicalName()
+
+} // finish class _XHierarchicalNameAccess
+
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XIndexAccess.java b/qadevOOo/tests/java/ifc/container/_XIndexAccess.java
new file mode 100644
index 000000000..6b1908428
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XIndexAccess.java
@@ -0,0 +1,144 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.lang.WrappedTargetException;
+
+/**
+* Testing <code>com.sun.star.container.XIndexAccess</code>
+* interface methods :
+* <ul>
+* <li><code> getCount()</code></li>
+* <li><code> getByIndex()</code></li>
+* </ul> <p>
+* Test seems to work properly in multithreaded environment.
+* @see com.sun.star.container.XIndexAccess
+*/
+public class _XIndexAccess extends MultiMethodTest {
+
+ public XIndexAccess oObj = null;
+
+ /**
+ * Number of elements in the container.
+ */
+ public int count = 0;
+
+ /**
+ * Get number of element in the container. <p>
+ * Has <b> OK </b> status if method returns number lager than -1.
+ */
+ public void _getCount() {
+ boolean result = true;
+ log.println("getting the number of the elements");
+ // hope we haven't a count lower than zero ;-)
+ count = -1;
+ count = oObj.getCount();
+ result = (count != -1);
+ tRes.tested("getCount()", result);
+ } //end getCount()
+
+ /**
+ * This method tests the IndexAccess from the first element,
+ * the middle element and the last element. Finally it test
+ * Exceptions which throws by a not available index. <p>
+ * Has <b> OK </b> status if first, middle and last elements
+ * successfully returned and has non null value; and if on
+ * invalid index parameter <code>IndexOutOfBoundsException</code>
+ * is thrown.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getCount() </code> : to have number of elements
+ * in container. </li>
+ * </ul>
+ */
+ public void _getByIndex() {
+ requiredMethod("getCount()");
+ // get count from holder
+
+ waitForEventIdle();
+
+ boolean result = true;
+ log.println("Testing getByIndex()");
+
+ if (count > 0) {
+ // Check the first element
+ log.println("Check the first element");
+ result &= checkGetByIndex(0);
+
+ // Check the middle element
+ log.println("Check the middle element");
+ result &= checkGetByIndex(count /2);
+
+ // Check the last element
+ log.println("Check the last element");
+ result &= checkGetByIndex(count -1);
+
+ // Testing getByIndex with wrong params.
+ log.println("Testing getByIndex with wrong params.");
+ try {
+ log.println("getByIndex(" + count + ")");
+ oObj.getByIndex(count);
+ log.println("no exception thrown - FAILED");
+ result = false;
+ } catch (IndexOutOfBoundsException e) {
+ log.println("Expected exception caught! " + e + " OK");
+ } catch (WrappedTargetException e) {
+ log.println("Wrong exception! " + e + " FAILED");
+ result = false;
+ }
+ }
+
+ tRes.tested("getByIndex()", result);
+
+ } // end getByIndex
+
+ private boolean checkGetByIndex(int index){
+ Object o = null;
+ boolean result = true;
+ try {
+ log.println("getByIndex(" + index + ")");
+ o = oObj.getByIndex(index);
+
+ if ( tEnv.getObjRelation("XIndexAccess.getByIndex.mustBeNull") != null){
+ result = (o == null);
+ if (result) log.println("OK"); else log.println("FAILED -> not null");
+ } else {
+ result = (o != null);
+ if (result) log.println("OK"); else log.println("FAILED -> null");
+ }
+
+ } catch (WrappedTargetException e) {
+ log.println("Exception! " + e);
+ result = false;
+ } catch (IndexOutOfBoundsException e) {
+ log.println("Exception! " + e);
+ result = false;
+ }
+
+ return result;
+ }
+
+} // end XIndexAccess
+
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XIndexContainer.java b/qadevOOo/tests/java/ifc/container/_XIndexContainer.java
new file mode 100644
index 000000000..9b3a23f97
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XIndexContainer.java
@@ -0,0 +1,201 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.lang.IndexOutOfBoundsException;
+
+/**
+* Testing <code>com.sun.star.container.XIndexContainer</code>
+* interface methods :
+* <ul>
+* <li><code> insertByIndex()</code></li>
+* <li><code> removeByIndex()</code></li>
+* </ul> <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> : N relations
+* which represents objects to be inserted. See below
+* for more information.</li>
+* <li> <code>'XIndexContainerINDEX'</code> : For internal test
+* usage. Contains current thread number. </li>
+* <li> Test environment variable <code>'THRCNT'</code> : number
+* of interface threads running concurrently. </li>
+* <ul> <p>
+* XIndexContainer needs n ObjectRelations "INSTANCEn" , where n=1, ...,
+* THRCNT.<p>
+* When this interface tested by different threads, it must use different
+* instances to insert/remove - one for each thread.
+* <p>
+* That's why we use objRelation "XIndexContainerINDEX" to store the number of
+* last taken instance. If there is no such relation, it initialize with 1.
+* <p>
+* This ObjectRelations should be necessary to create an Object,
+* which is insertable by insterByIndex()
+* INSTANCEn are n Objectrelations so that every thread can insert its own
+* object. n depends on the variable THRCNT which and comes from API.INI
+* <p>
+* Why that:
+* If you insert the same Object by insertByIndex() several times you
+* don't insert the Object several times. The first insertByIndex() inserts
+* the Object to the Container but all other insertByIndex() changes
+* the Index in the Container because it's the same Object. <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.container.XIndexContainer
+*/
+
+public class _XIndexContainer extends MultiMethodTest {
+ public XIndexContainer oObj = null;
+
+ int Index = 0;
+
+ /**
+ * First tries to insert proper object. Second tries to insert
+ * null value. For each test thread different objects are inserted
+ * on different indexes. For example for the first started test index
+ * is 0 and object is get from relation 'INSTANCE1', and so on. <p>
+ * Has <b>OK</b> status if in the first case <code>getByIndex</code>
+ * method returns non null value and in the second <code>
+ * IndexOutOfBoundsException</code> was thrown.
+ */
+ public void _insertByIndex() {
+ boolean result = true;
+
+ log.println("get ObjRelation(\"XIndexContainerINDEX\")");
+ String sIndex = (String)tEnv.getObjRelation("XIndexContainerINDEX");
+ if (sIndex == null) {
+ log.println("No XIndexContainerINDEX - so set it to 1.");
+ tEnv.addObjRelation("XIndexContainerINDEX", Integer.toString(1));
+ Index = 1;
+ } else {
+ Index = Integer.parseInt(sIndex);
+ Index++;
+ tEnv.addObjRelation("XIndexContainerINDEX",
+ Integer.toString(Index));
+ }
+
+
+ log.println("get ObjRelation(\"INSTANCE" + Index +"\")");
+ Object oInstance = tEnv.getObjRelation("INSTANCE"+ Index);
+ if (oInstance == null) {
+ log.println("ObjRelation(\"INSTANCE" + Index +"\") Object n.a.");
+ }
+
+ log.println("testing insertByIndex(\"" + Index + "\")...");
+ try {
+ oObj.insertByIndex(Index, oInstance);
+ result &= oObj.getByIndex(Index) != null ;
+ log.println("insertByIndex(\""+Index+"\")...OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("insertByIndex(\""+Index+"\"): " + e + " FLASE");
+ result = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("insertByIndex(\""+Index+"\"): " + e + " FLASE");
+ result = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("insertByIndex(\""+Index+"\"): " + e + " FLASE");
+ result = false;
+ }
+
+ log.println("inserting a wrong Object occurs Exceptions ...");
+ try {
+ Object dummy = null;
+ oObj.insertByIndex(0, dummy);
+ log.println("No Exception: -> FALSE");
+ result = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Dummy-Exception: " + e + " -> OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("!!! Wrong Exception: " + e + " -> FAILED");
+ result = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("!!! Wrong Exception: " + e + " -> FAILED");
+ result = false;
+ }
+
+ tRes.tested("insertByIndex()", result);
+ }
+
+ /**
+ * Removes the element inserted by <code>insertByIndex</code> method test.
+ * The number of elements is checked before and after removing.
+ * Then tries to remove an element with invalid index and checks exceptions.
+ * <p>
+ * Has <b>OK</b> status if after removing number of elements decreases by
+ * one and <code>IndexOutOfBoundsException</code> is thrown on invalid index
+ * removing.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertByIndex </code> : to have an object which can be
+ * removed.</li>
+ * </ul>
+ */
+ public void _removeByIndex() {
+ requiredMethod("insertByIndex()");
+ boolean result = true;
+
+ log.println("testing removeByIndex() ...");
+
+ try {
+ log.println("remove " +Index);
+ int cnt1 = -1 , cnt2 = -1 ;
+ synchronized (oObj) {
+ cnt1 = oObj.getCount() ;
+ oObj.removeByIndex(Index);
+ cnt2 = oObj.getCount() ;
+ }
+ log.println("Count before removing : " + cnt1 +
+ ", and after : " + cnt2) ;
+
+ result &= cnt1 == cnt2 + 1 ;
+
+ log.println("1. removeByIndex(\""+Index+"\") ...OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ log.println("1. removeByIndex:(\""+Index+"\") " +
+ e + " - FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ log.println("1. removeByIndex:(\""+Index+"\") " +
+ e + " - FAILED");
+ }
+
+ log.println("removing a non existent object to get an exception");
+ try {
+ oObj.removeByIndex(100);
+ result = false;
+ log.println("2. removeByIndex(): Exception expected! - FAILED");
+ } catch (IndexOutOfBoundsException e) {
+ log.println("2. removeByIndex(): Expected exception - OK");
+ result &= true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ log.println("2. removeByIndex(): Unexpected exception! - " +
+ e + " - FAILED");
+ }
+
+ tRes.tested("removeByIndex()", result);
+ }
+}
+
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XIndexReplace.java b/qadevOOo/tests/java/ifc/container/_XIndexReplace.java
new file mode 100644
index 000000000..f97dfb0d9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XIndexReplace.java
@@ -0,0 +1,200 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.container.XIndexReplace;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Testing <code>com.sun.star.container.XIndexReplace</code>
+* interface methods :
+* <ul>
+* <li><code> replaceByIndex()</code></li>
+* </ul>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> : N relations
+* which represents objects to be replaced with. See below
+* for more information.</li>
+* <li> <code>'XIndexReplaceINDEX'</code> : For internal test
+* usage. Contains current thread number. </li>
+* <li> Test environment variable <code>'THRCNT'</code> : number
+* of interface threads running concurrently. </li>
+* <ul> <p>
+* XIndexReplace needs n ObjectRelations "INSTANCEn" , where n = 1, ..., THRCNT.
+* <p>
+* When this interface tested by different threads, it must use different
+* instances to replace - one for each thread.<p>
+* That's why we use objRelation "XIndexReplaceINDEX" to store the number of
+* last taken instance. If there is no such relation, it initialize with 1.
+* <p>
+* This ObjectRelations should be necessary to create an Object,
+* which is can be replaced by index
+* INSTANCEn are n Objectrelations so that every thread can insert its own
+* object. n depends on the variable THRCNT which and comes from API.INI
+* <p>
+* Why that:
+* If you insert the same Object by replaceByIndex() several times you
+* don't insert the Object several times. The first replaceByIndex() inserts
+* the Object to the Container but all other replaceByIndex() changes
+* the Index in the Container because it's the same Object. <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.container.XIndexReplace
+*/
+
+public class _XIndexReplace extends MultiMethodTest {
+ public XIndexReplace oObj = null;
+
+ /**
+ * Primarily tries to replace elements in a proper way :
+ * replaces the first, middle and the last element then
+ * checks if elements were properly replaced.
+ * Then wrong parameters are passed : invalid index and
+ * null value for replacing, and test checks for proper
+ * exceptions to be thrown. <p>
+ * In different threads it replaces elements with different
+ * objects.
+ * Has <b>OK</b> status if in the first (correct) case
+ * elements were successfully replaced (i.e. values got
+ * after replacing must be equal to those replaced with),
+ * and in the second case proper exceptions were thrown.
+ */
+ public void _replaceByIndex() {
+ boolean result = true;
+ Object old = null;
+ Object oInstance = null;
+ int Index = 0;
+
+ //get for every thread its own Object to insert it
+ log.println("get ObjRelation(\"XIndexReplaceINDEX\")");
+ String sIndex = (String)tEnv.getObjRelation("XIndexReplaceINDEX");
+ if (sIndex == null) {
+ log.println("No XIndexReplaceINDEX - so set it to 1.");
+ tEnv.addObjRelation("XIndexReplaceINDEX", Integer.toString(1));
+ Index = 1;
+ } else {
+ Index = Integer.parseInt(sIndex);
+ Index++;
+ tEnv.addObjRelation("XIndexReplaceINDEX", Integer.toString(Index));
+ }
+
+
+ log.println("get ObjRelation(\"INSTANCE" + Index +"\")");
+ oInstance = tEnv.getObjRelation("INSTANCE"+ Index);
+ if (oInstance == null) {
+ log.println("ObjRelation(\"INSTANCE" + Index +"\") Object n.a.");
+ }
+
+ log.println("testing replaceByIndex(0)...");
+
+ try {
+
+ log.println("Getting old object");
+ old = oObj.getByIndex(0);
+ oObj.replaceByIndex(0, oInstance);
+ result = !(oObj.getByIndex(0)).equals(old);
+ result = ! ValueComparer.equalValue(oObj,old);
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log) ;
+ result = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log) ;
+ result = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log) ;
+ result = false;
+ }
+
+
+ log.println("replace with a wrong Object occurs Exceptions ...");
+ try {
+ oObj.replaceByIndex(999, oInstance);
+ result = false;
+ log.println("1. replaceByIndex(): Exception expected! - FAILED");
+
+
+ XNameContainer xNC = UnoRuntime.queryInterface(XNameContainer.class, oObj) ;
+ String[] names = xNC.getElementNames() ;
+ log.println("Element names :") ;
+ for (int i = 0; i<names.length; i++) {
+ log.println(" '" + names[i] + "'") ;
+ }
+ } catch (IndexOutOfBoundsException e) {
+ log.println("1. replaceByIndex(): Expected exception - OK");
+ result &= true;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ log.println("1. replaceByIndex(): Unexpected exception! - " +
+ e + " - FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ log.println("1. replaceByIndex(): Unexpected exception! - " +
+ e + " - FAILED");
+ }
+
+ log.println("replace with a wrong Object occurs Exceptions ...");
+ try {
+ oObj.replaceByIndex(0, null);
+ result = false;
+ log.println("2. replaceByIndex(): Exception expected! - FAILED");
+
+
+ XNameContainer xNC = UnoRuntime.queryInterface(XNameContainer.class, oObj) ;
+ String[] names = xNC.getElementNames() ;
+ log.println("Element names :") ;
+ for (int i = 0; i<names.length; i++) {
+ log.println(" '" + names[i] + "'") ;
+ }
+ } catch (IllegalArgumentException e) {
+ log.println("2. replaceByIndex(): Expected exception - OK");
+ result &= true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ log.println("2. replaceByIndex(): Unexpected exception! - " +
+ e + " - FAILED");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ log.println("2. replaceByIndex(): Unexpected exception! - " +
+ e + " - FAILED");
+ }
+
+ log.println("replace with the old object");
+ try {
+ oObj.replaceByIndex(0, old);
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace(log) ;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log) ;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log) ;
+ }
+
+ tRes.tested("replaceByIndex()", result);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XNameAccess.java b/qadevOOo/tests/java/ifc/container/_XNameAccess.java
new file mode 100644
index 000000000..765fb8fcd
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XNameAccess.java
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XNameAccess;
+
+/**
+* Testing <code>com.sun.star.container.XNameAccess</code> interface methods. <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+*/
+public class _XNameAccess extends MultiMethodTest {
+ public XNameAccess oObj = null;
+ public String[] Names = null;
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * not null value and no exceptions were thrown. <p>
+ */
+ public void _getElementNames() {
+ boolean result = true;
+ log.println("getting elements names");
+ Names = oObj.getElementNames();
+
+ result = (Names != null);
+ tRes.tested("getElementNames()", result);
+ } // end getElementNames()
+
+ /**
+ * First test calls the method with existing element name,
+ * then with non existing. <p>
+ * Has <b> OK </b> status if in the first case the method returns
+ * true and in the second - false. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getElementNames </code> : to retrieve at least one
+ * element name. </li>
+ * </ul>
+ */
+ public void _hasByName() {
+ requiredMethod("getElementNames()");
+ log.println("testing hasByName() ...");
+
+ boolean result = true;
+ boolean loc_result = true;
+
+ String name = null;
+
+ if (Names.length != 0) {
+ name = Names[0];
+ log.println("testing hasByName() with valid name '" + name + "'");
+ loc_result = oObj.hasByName(name);
+ log.println("hasByName with valid names: " + loc_result);
+ result &= loc_result;
+ }
+
+ name = "non_existent_name__1234";
+ log.println("testing hasByName() with invalid name");
+ try {
+ loc_result = !oObj.hasByName(name);
+ } catch ( Exception nsee) {
+ log.println("Expected exception was thrown");
+ }
+ log.println("hasByName with invalid names: " + loc_result);
+ result &= loc_result;
+
+ tRes.tested("hasByName()", result);
+ } // end hasByName()
+
+
+ /**
+ * First test calls the method with existing element name,
+ * then with non existing. <p>
+ * Has <b> OK </b> status if in the first case the method returns
+ * not null value and no exceptions were thrown,
+ * and in the second case <code>NoSuchElementException</code> was
+ * thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getElementNames </code> : to retrieve at least one
+ * element name. </li>
+ * </ul>
+ */
+ public void _getByName() {
+ log.println("require getElementNames() ...");
+ requiredMethod("getElementNames()");
+ log.println("require getElementNames() ...OK");
+ log.println("testing getByName() ...");
+
+ boolean result = true;
+ boolean loc_result = true;
+
+ String name = null;
+
+ if (Names.length != 0) {
+ name = Names[0];
+ log.println("testing with valid name '" + name + "'");
+ try {
+ loc_result = (null != oObj.getByName(name));
+ } catch (Exception e) {
+ log.println("Exception! - FAILED");
+ log.println(e.toString());
+ loc_result = false;
+ }
+ log.println("getByName with valid name: " + loc_result);
+ result &= loc_result;
+ }
+
+ log.println("testing with non-existent name");
+ name = "non_existent_name__1234";
+ try {
+ loc_result = (null != oObj.getByName(name));
+ loc_result = false;
+ log.println("getByName: Exception expected - FAILED");
+ } catch (NoSuchElementException e) {
+ log.println("getByName: Expected exception - OK");
+ loc_result = true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("getByName: Wrong exception - " + e + " - FAILED");
+ loc_result = false;
+ }
+
+ result &= loc_result;
+ tRes.tested("getByName()", result);
+ } // end getByName()
+} /// finished class _XNameAccess
+
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XNameContainer.java b/qadevOOo/tests/java/ifc/container/_XNameContainer.java
new file mode 100644
index 000000000..45a1b2c92
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XNameContainer.java
@@ -0,0 +1,245 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XNameContainer;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+/**
+* Testing <code>com.sun.star.container.XNameContainer</code>
+* interface methods :
+* <ul>
+* <li><code> insertByName()</code></li>
+* <li><code> removeByName()</code></li>
+* </ul>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> : N relations
+* which represents objects to be inserted. See below
+* for more information.</li>
+* <li> <code>'XNameContainerINDEX'</code> : For internal test
+* usage. Contains current thread number. </li>
+* <li> <code>'XNameContainer.AllowDuplicateNames'</code> <b>optional</b>:
+* if this relation exists then container elements can have duplicate
+* names. </li>
+* <li> Test environment variable <code>'THRCNT'</code> : number
+* of interface threads running concurrently. </li>
+* <ul> <p>
+* XNameContainer needs n ObjectRelations "INSTANCEn" , where n=1, ..., THRCNT.
+*
+* When this interface tested by different threads, it must use different
+* instances to insert/remove - one for each thread.
+*
+* That's why we use objRelation "XNameContainerINDEX" to store the number of
+* last taken instance. If there is no such relation, it initialize with 1.
+*
+* If you insert the same Object by insertByName() several times you
+* don't insert the Object several times. The first insertByName() inserts
+* the Object to the Container but all other insertByName() changes
+* the Name in the Container because it's the same Object.
+* @see com.sun.star.container.XNameContainer
+*/
+
+public class _XNameContainer extends MultiMethodTest {
+ public XNameContainer oObj = null;
+ String Name = "XNameContainer";
+
+ /**
+ * First inserts object by name (different objects for different threads)
+ * and checks if it exists. Second, if duplicate names are not allowed
+ * test tries to insert element with the same name and checks for
+ * proper exception. Third, tries to add <code>null</code> element and
+ * checks for proper exception. <p>
+ * Has <b>OK</b> status if in the first case element added exists in
+ * the container, in the second case <code>ElementExistException</code>
+ * is thrown, and in the third case <code>IllegalArgumentException</code>
+ * is thrown.
+ */
+ public void _insertByName() {
+ boolean result = true;
+ int Index = 0;
+
+ //get for every thread its own Object to insert it
+ log.println("get ObjRelation(\"XNameContainerINDEX\")");
+ String sIndex = null ;
+ synchronized (tEnv) {
+ sIndex = (String)tEnv.getObjRelation("XNameContainerINDEX");
+ if (sIndex == null) {
+ log.println("No XNameContainerINDEX - so set it to 1.");
+ tEnv.addObjRelation("XNameContainerINDEX",Integer.toString(1));
+ Index = 1;
+ } else {
+ Index = Integer.parseInt(sIndex);
+ Index++;
+ tEnv.addObjRelation("XNameContainerINDEX",
+ Integer.toString(Index));
+ }
+ }
+ Name += Index ;
+
+ log.println("get ObjRelation(\"INSTANCE" + Index +"\")");
+ Object oInstance = tEnv.getObjRelation("INSTANCE"+ Index);
+ log.println("ObjRelation(\"INSTANCE" + Index +"\") Object n.a.");
+
+ log.println("testing insertByName(\""+Name+"\")...");
+ try {
+ String[] names = oObj.getElementNames() ;
+ log.println("Element names :") ;
+ for (int i = 0; i<names.length; i++) {
+ log.println(" '" + names[i] + "'") ;
+ }
+
+ oObj.insertByName(Name, oInstance);
+
+ names = oObj.getElementNames() ;
+ log.println("Element names :") ;
+ for (int i = 0; i<names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+
+ result &= oObj.hasByName(Name) ;
+ log.println("insertByName(\""+Name+"\")...OK");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("insertByName(\""+Name+"\"): " + e + " FALSE");
+ result = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("insertByName(\""+Name+"\"): " + e + " FALSE");
+ result = false;
+ } catch (com.sun.star.container.ElementExistException e) {
+ log.println("insertByName(\""+Name+"\"): " + e + " FALSE");
+ result = false;
+ }
+
+ // if duplicate names is not allowed test for valid exception
+ if (tEnv.getObjRelation("XNameContainer.AllowDuplicateNames")==null) {
+ Object secondInstance = tEnv.getObjRelation("SecondInstance");
+ if (secondInstance != null) {
+ oInstance = secondInstance;
+ }
+ log.println("Trying to add element with the same name ...") ;
+ try {
+ oObj.insertByName(Name, oInstance);
+ result = false ;
+ log.println("!!! No exception were thrown !!!");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("!!! Wrong exception : " + e + " FALSE");
+ result = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("!!! Wrong exception : " + e + " FALSE");
+ result = false;
+ } catch (com.sun.star.container.ElementExistException e) {
+ log.println("Right exception : " + e + " OK");
+ }
+ }
+
+ log.println("inserting a wrong Object occurs Exceptions ...");
+ try {
+ Object dummy = null;
+ oObj.insertByName("Dummy", dummy);
+ log.println("No Exception: -> FALSE");
+ result = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Dummy-Exception: " + e + " -> OK");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("!!! This exception not expected: " +e+ " -> FAILED");
+ result = false;
+ } catch (com.sun.star.container.ElementExistException e) {
+ log.println("!!! This exception not expected: " +e+ " -> FAILED");
+ result = false;
+ }
+
+ tRes.tested("insertByName()", result);
+
+ } // end insertByName()
+
+ /**
+ * Test removes element inserted before and checks if element
+ * still exists in the container. Second test tries to remove
+ * element with non-existing name and checks for proper exception. <p>
+ * Has <b> OK </b> status if in the first case element doesn't
+ * exist anymore (or duplicate names are allowed), and in the
+ * second case <code>NoSuchElementException</code> is thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertByName() </code> : to remove the element inserted
+ * in this test. </li>
+ * </ul>
+ */
+ public void _removeByName() {
+ try {
+ requiredMethod("insertByName()");
+ } catch (StatusException e) {
+ // removing the name anywhere
+ try {
+ oObj.removeByName(Name);
+ } catch (com.sun.star.container.NoSuchElementException e1) {
+ } catch (com.sun.star.lang.WrappedTargetException e1) {
+ }
+ }
+
+ boolean result = true;
+
+ log.println("testing removeByName() ...");
+
+ try {
+ log.println("remove " + Name);
+ String[] names = oObj.getElementNames() ;
+ log.println("Element names :") ;
+ for (int i = 0; i<names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+ oObj.removeByName(Name);
+ boolean loc_res = !oObj.hasByName(Name) || tEnv.getObjRelation
+ ("XNameContainer.AllowDuplicateNames") != null ;
+ result &= loc_res ;
+ if (loc_res)
+ log.println("1. removeByName(\""+Name+"\") ...OK");
+ else
+ log.println("1. !!! Container still has element with name "
+ + Name) ;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ log.println("1. removeByName:(\""+Name+"\") " + e + " - FAILED");
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ log.println("1. removeByName:(\""+Name+"\") " + e + " - FAILED");
+ }
+
+ log.println("removing a non existent object to get an exception");
+ try {
+ oObj.removeByName(Name+ " dummy");
+ result = false;
+ log.println("2. removeByName(): Exception expected! - FAILED");
+ } catch (NoSuchElementException e) {
+ log.println("2. removeByName(): Expected exception - OK");
+ result &= true;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ log.println("2. removeByName(): Unexpected exception! - " +
+ e + " - FAILED");
+ }
+
+ tRes.tested("removeByName()", result);
+ } // end removeByName()
+} //XNameContainer
+
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XNameReplace.java b/qadevOOo/tests/java/ifc/container/_XNameReplace.java
new file mode 100644
index 000000000..d0ca70971
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XNameReplace.java
@@ -0,0 +1,216 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import com.sun.star.sheet.XCellRangeAddressable;
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameReplace;
+import com.sun.star.uno.UnoRuntime;
+/**
+* Testing <code>com.sun.star.container.XNameReplace</code>
+* interface methods :
+* <ul>
+* <li><code> replaceByName()</code></li>
+* </ul>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> : N relations
+* which represents objects to be replaced with. See below
+* for more information.</li>
+* <li> <code>'NAMEREPLACE'</code> <b>optional</b>: <code>String</code>
+* relation which represents element name to be replaced.
+* Some Objects can't replace the first that comes along, i.e.
+* SwXStyleFamily. It has some pool styles which can't be replaced.
+* So the test need a special object to replace it by name. </li>
+* <li> <code>'XNameReplaceINDEX'</code> : For internal test
+* usage. Contains current thread number. </li>
+* <li> Test environment variable <code>'THRCNT'</code> : number
+* of interface threads running concurrently. </li>
+* <ul> <p>
+* XNameReplace needs n ObjectRelations "INSTANCEn" , where n = 1, ..., THRCNT.
+* <p>
+* When this interface tested by different threads, it must use different instances
+* to replace - one for each thread.
+* <p>
+* That's why we use objRelation "XNameReplaceINDEX" to store the number of last
+* taken instance. If there is no such relation, it initialize with 1.
+* <p>
+* In one of the last steps the replaced object will be compared with the old
+* object. For that it is necessary that every thread replace its own object.
+* INSTANCEn are n Objectrelations so that every thread can insert its own
+* object. n depends on the variable THRCNT which and comes from API.INI
+* Some Object-Container can't replace the first that comes belong. So in
+* NAMEREPLACE you can determine a container object, which is replaceable. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.container.XNameReplace
+*/
+public class _XNameReplace extends MultiMethodTest {
+
+ public XNameReplace oObj = null;
+
+ /**
+ * First test retrieves instance to be replaced with for each interface thread.
+ * Then list of element names is retrieved, the first of them will
+ * be replaced. In special case when <code>'NAMEREPLACE'</code> relation
+ * exists, element with the specified name is replaced.
+ * Test replaces element and checks values of element with the
+ * specified name before and after replacement. <p>
+ * Has <b>OK</b> status if values before and after replacement are
+ * different.
+ */
+ public void _replaceByName(){
+ boolean result = true;
+ String[] oNames = null;
+
+ int Index = 0;
+
+ //get for every thread its own Object to insert it
+ log.println("get ObjRelation(\"XNameReplaceINDEX\")");
+ String sIndex = (String)tEnv.getObjRelation("XNameReplaceINDEX");
+ System.out.println("Index: "+sIndex);
+ if (sIndex == null) {
+ log.println("No XNameReplaceINDEX - so set it to 1.");
+ tEnv.addObjRelation("XNameReplaceINDEX", Integer.toString(1));
+ Index = 1;
+ } else {
+ Index = Integer.parseInt(sIndex);
+ Index++;
+ tEnv.addObjRelation("XNameReplaceINDEX", Integer.toString(Index));
+ }
+
+ log.println("get ObjRelation(\"INSTANCE" + Index +"\")");
+ Object oInstance = tEnv.getObjRelation("INSTANCE"+ Index);
+ if (oInstance == null) {
+ log.println("ObjRelation(\"INSTANCE" + Index +"\") Object n.a.");
+ }
+
+ log.println("getting the existing object's name");
+ XNameAccess oNameAccess = UnoRuntime.queryInterface(
+ XNameAccess.class, oObj);
+ oNames = oNameAccess.getElementNames();
+ /* Some Objects can't replace the first that comes along, i.e.
+ SwXStyleFamily. It has some pool styles which can't be replaced.
+ So the test need a special object to replace it by name.
+ */
+ log.println("get ObjRelation(\"NAMEREPLACE\")");
+ Object oNameReplace = tEnv.getObjRelation("NAMEREPLACE");
+ if (oNameReplace != null) {
+ oNames[0] = oNameReplace.toString();
+ }
+
+ log.println("replaceByName()");
+ try {
+ boolean ok;
+ log.println("get current object '" + oNames[0] + "'");
+ Object old = oObj.getByName(oNames[0]) ;
+ log.println("replace object '" + oNames[0] + "' with another instance");
+ oObj.replaceByName(oNames[0],oInstance);
+ Object newEl = oObj.getByName(oNames[0]) ;
+
+ if (tEnv.getTestCase().getObjectName().equals("ScCellRangesObj")) {
+ ok = compareRanges(old, newEl);
+ } else {
+ ok = ! ValueComparer.equalValue(old, newEl);
+ }
+ result &= ok;
+ log.println("result of replace: " + ok);
+ log.println("replace back the old object");
+ oObj.replaceByName(oNames[0],old);
+ Object origEl = oObj.getByName(oNames[0]) ;
+
+ if (tEnv.getTestCase().getObjectName().equals("ScCellRangesObj")) {
+ ok = ! compareRanges(old, origEl);
+ } else {
+ ok = ValueComparer.equalValue(old, origEl);
+ }
+
+ result &= ok;
+ log.println("result of replace back: " + ok);
+ } catch (com.sun.star.lang.IllegalArgumentException e ) {
+ result = false;
+ e.printStackTrace(log) ;
+ } catch (com.sun.star.container.NoSuchElementException e ) {
+ result = false;
+ e.printStackTrace(log) ;
+ } catch (com.sun.star.lang.WrappedTargetException e ) {
+ result = false;
+ e.printStackTrace(log) ;
+ }
+
+ tRes.tested("replaceByName()", result);
+
+ } // end replaceByName()
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+ // method returns false if the ranges are equal and true otherwise
+
+ private boolean compareRanges(Object old, Object newEl) {
+ XCellRangeAddressable xCRA = UnoRuntime.queryInterface(XCellRangeAddressable.class,old);
+
+ XCellRangeAddressable xCRA2 = UnoRuntime.queryInterface(XCellRangeAddressable.class,newEl);
+
+ int orgStartCol = xCRA.getRangeAddress().StartColumn;
+ int orgEndCol = xCRA.getRangeAddress().EndColumn;
+ int orgStartRow = xCRA.getRangeAddress().StartRow;
+ int orgEndRow = xCRA.getRangeAddress().EndRow;
+
+ int newStartCol = xCRA2.getRangeAddress().StartColumn;
+ int newEndCol = xCRA2.getRangeAddress().EndColumn;
+ int newStartRow = xCRA2.getRangeAddress().StartRow;
+ int newEndRow = xCRA2.getRangeAddress().EndRow;
+
+ boolean ret = true;
+
+ if (orgStartCol == newStartCol) {
+ log.println("\t StartColumn is the same");
+ ret = false;
+ }
+
+ if (orgEndCol == newEndCol) {
+ log.println("\t EndColumn is the same");
+ ret = false;
+ }
+ if (orgStartRow == newStartRow) {
+ log.println("\t StartRow is the same");
+ ret = false;
+ }
+
+ if (orgEndRow == newEndRow) {
+ log.println("\t EndRow is the same");
+ ret = false;
+ }
+
+ return ret;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/container/_XNamed.java b/qadevOOo/tests/java/ifc/container/_XNamed.java
new file mode 100644
index 000000000..054306f40
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XNamed.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.container;
+
+import com.sun.star.container.XNamed;
+
+import lib.MultiMethodTest;
+
+import util.utils;
+
+
+/**
+* Testing <code>com.sun.star.container.XNamed</code>
+* interface methods :
+* <ul>
+* <li><code> getName()</code></li>
+* <li><code> setName()</code></li>
+* </ul>
+* This test need the following object relations :
+* <ul>
+* <li> <code>'setName'</code> : of <code>Boolean</code>
+* type. If it exists then <code>setName</code> method
+* isn't to be tested and result of this test will be
+* equal to relation value.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.container.XNamed
+*/
+public class _XNamed extends MultiMethodTest {
+ public XNamed oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method returns non null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getName() {
+ // write to log what we try next
+ log.println("test for getName()");
+
+ boolean result = true;
+ boolean loc_result = true;
+ String name = null;
+
+ loc_result = ((name = oObj.getName()) != null);
+ log.println("getting the name \"" + name + "\"");
+
+ if (loc_result) {
+ log.println("... getName() - OK");
+ } else {
+ log.println("... getName() - FAILED");
+ }
+
+ result &= loc_result;
+ tRes.tested("getName()", result);
+ }
+
+ /**
+ * Sets a new name for object and checks if it was properly
+ * set. Special cases for the following objects :
+ * <ul>
+ * <li><code>ScSheetLinkObj</code> : name must be in form of URL.</li>
+ * <li><code>ScDDELinkObj</code> : name must contain link to cell in
+ * some external Sheet.</li>
+ * </ul>
+ * Has <b> OK </b> status if new name was successfully set, or if
+ * object environment contains relation <code>'setName'</code> with
+ * value <code>true</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getName() </code> : to be sure the method works</li>
+ * </ul>
+ */
+ public void _setName() {
+ String Oname = tEnv.getTestCase().getObjectName();
+ String nsn = (String) tEnv.getObjRelation("NoSetName");
+
+ if (nsn != null) {
+ Oname = nsn;
+ }
+
+ if ((Oname.indexOf("Exporter") > 0) || (nsn != null)) {
+ log.println("With " + Oname + " setName() doesn't work");
+ log.println("see idl-file for further information");
+ tRes.tested("setName()", true);
+
+ return;
+ }
+
+ requiredMethod("getName()");
+ log.println("testing setName() ... ");
+
+ String oldName = oObj.getName();
+ String NewName = (oldName == null) ? "XNamed" : oldName + "X";
+
+ String testobjname = tEnv.getTestCase().getObjectName();
+
+ if (testobjname.equals("ScSheetLinkObj")) {
+ // special case, here name is equals to links URL.
+ NewName = "file:///c:/somename/from/XNamed";
+ } else if (testobjname.equals("ScDDELinkObj")) {
+ String fileName = utils.getFullTestDocName("ScDDELinksObj.ods");
+ NewName = "soffice|" + fileName + "!Sheet1.A2";
+ } else if (testobjname.equals("SwXAutoTextGroup")) {
+ //This avoids a GPF
+ NewName = "XNamed*1";
+ }
+
+ boolean result = true;
+ boolean loc_result = true;
+ Boolean sName = (Boolean) tEnv.getObjRelation("setName");
+
+ if (sName == null) {
+ log.println("set the name of object to \"" + NewName + "\"");
+ oObj.setName(NewName);
+ log.println("check that container has element with this name");
+
+ String name = oObj.getName();
+ log.println("getting the name \"" + name + "\"");
+ loc_result = name.equals(NewName);
+
+ if (loc_result) {
+ log.println("... setName() - OK");
+ } else {
+ log.println("... setName() - FAILED");
+ }
+
+ result &= loc_result;
+ oObj.setName(oldName);
+ } else {
+ log.println("The names for the object '" + testobjname +
+ "' are fixed.");
+ log.println("It is not possible to rename.");
+ log.println("So 'setName()' is always OK");
+ result = sName.booleanValue();
+ }
+
+ tRes.tested("setName()", result);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/container/_XSet.java b/qadevOOo/tests/java/ifc/container/_XSet.java
new file mode 100644
index 000000000..743a894f5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/container/_XSet.java
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.container;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XSet;
+import com.sun.star.lang.XMultiServiceFactory;
+
+/**
+* Testing <code>com.sun.star.container.XSet</code>
+* interface methods :
+* <ul>
+* <li><code> has()</code></li>
+* <li><code> insert()</code></li>
+* <li><code> remove()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.container.XSet
+*/
+public class _XSet extends MultiMethodTest {
+
+ public static XSet oObj = null;
+
+ private Object element = null ;
+ private boolean hasResult = true ;
+
+ /**
+ * Inserts the element stored and removed before. <p>
+ * Has <b> OK </b> status if <code>has()</code> method returns
+ * <code>true</code>.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> remove() </code> : element from set is stored and
+ * removed </li>
+ * </ul>
+ */
+ public void _insert() {
+ boolean res = true ;
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ element = xMSF.createInstance(
+ "com.sun.star.reflection.TypeDescriptionProvider");
+
+
+ oObj.insert(element) ;
+
+ if (!oObj.has(element)) {
+ res = false ;
+ log.println("After adding element method has()" +
+ " returned false") ;
+ hasResult = false ;
+ }
+ } catch (com.sun.star.container.ElementExistException e) {
+ e.printStackTrace(log) ;
+ res = false ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log) ;
+ res = false ;
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("insert()", res) ;
+ }
+
+ /**
+ * Through <code>XEnumeration</code> interface an element from the set
+ * is retrieved. Then this element removed.<p>
+ * Has <b> OK </b> status if after removing <code>has()</code> method
+ * returns false.
+ */
+ public void _remove() {
+ requiredMethod("insert()");
+ boolean res = true ;
+
+ try {
+
+ // get an element to be removed/inserted
+
+ oObj.remove(element) ;
+
+ if (oObj.has(element)) {
+ res = false ;
+ log.println("After removing element method has()" +
+ " returned true") ;
+ hasResult = false ;
+ }
+
+
+
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ e.printStackTrace(log) ;
+ res = false ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log) ;
+ res = false ;
+ }
+
+ tRes.tested("remove()", res) ;
+ }
+
+ /**
+ * Does nothing. Testing performed in previous methods.<p>
+ * Has <b> OK </b> status if after <code>remove()</code> call
+ * methods returned <code>false</code>, and after <code>remove()</code>
+ * call methods returned <code>true</code>.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insert() </code> : here the method is checked </li>
+ * <li> <code> remove() </code> : here the method is checked </li>
+ * </ul>
+ */
+ public void _has() {
+
+ requiredMethod("insert()") ;
+ requiredMethod("remove()") ;
+
+ tRes.tested("has()", hasResult) ;
+ }
+
+} // finished class _XSet
+
diff --git a/qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java b/qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java
new file mode 100644
index 000000000..93213a0d8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.datatransfer;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.datatransfer.DataFlavor;
+import com.sun.star.datatransfer.XDataFormatTranslator;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.datatransfer.XDataFormatTranslator</code>
+* interface methods :
+* <ul>
+* <li><code> getSystemDataTypeFromDataFlavor()</code></li>
+* <li><code> getDataFlavorFromSystemDataType()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.datatransfer.XDataFormatTranslator
+*/
+public class _XDataFormatTranslator extends MultiMethodTest {
+
+ public XDataFormatTranslator oObj = null;
+
+ /**
+ * Get a system data type for 'text/html' MIME type. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned.
+ */
+ public void _getSystemDataTypeFromDataFlavor() {
+ DataFlavor df = new DataFlavor
+ ("text/html","HTML-Documents", new Type());
+ Object res = oObj.getSystemDataTypeFromDataFlavor(df);
+ tRes.tested("getSystemDataTypeFromDataFlavor()",res != null);
+ }
+
+ /**
+ * Gets data flavor from system data type, which was gotten
+ * from 'text/html' MIME type. <p>
+ * Has <b>OK</b> status if DataFlavour returned has 'text/html' MIME
+ * type.
+ */
+ public void _getDataFlavorFromSystemDataType() {
+ DataFlavor in = new DataFlavor
+ ("text/html","HTML-Documents", new Type());
+ Object res = oObj.getSystemDataTypeFromDataFlavor(in);
+ DataFlavor out = oObj.getDataFlavorFromSystemDataType(res);
+ tRes.tested("getDataFlavorFromSystemDataType()",
+ out.MimeType.equals("text/html"));
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java b/qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java
new file mode 100644
index 000000000..18b6e9102
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.datatransfer;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.datatransfer.XMimeContentType;
+import com.sun.star.datatransfer.XMimeContentTypeFactory;
+
+/**
+* Testing <code>com.sun.star.datatransfer.XMimeContentTypeFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createMimeContentType()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.datatransfer.XMimeContentTypeFactory
+*/
+public class _XMimeContentTypeFactory extends MultiMethodTest {
+
+ public XMimeContentTypeFactory oObj = null;
+
+ /**
+ * First tries to create 'image/jpeg' MIME type and checks that
+ * valid <code>XMimeContentType</code> object was created.
+ * Second tries to create type with wrong argument and exception
+ * throwing is checked. <p>
+ * Has <b>OK</b> status if in the first case valid object is
+ * returned and in the second case <code>IllegalArgumentException</code>
+ * was thrown.
+ */
+ public void _createMimeContentType() {
+ boolean result = true ;
+ XMimeContentType type = null;
+
+ try {
+ type = oObj.createMimeContentType("image/jpeg") ;
+
+ if (type != null) {
+ String typeS = type.getFullMediaType() ;
+
+ log.println("MediaType = '" + type.getMediaType() + "'") ;
+ log.println("MediaSubType = '" + type.getMediaSubtype() + "'") ;
+ log.println("FullMediaType = '" + typeS + "'") ;
+
+ result = "image/jpeg".equals(typeS) ;
+ } else {
+ log.println("!!! Null was returned !!!") ;
+ result = false ;
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred : " ) ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ if (result == true) {
+ try {
+ oObj.createMimeContentType("nosuchtype") ;
+
+ log.println("!!! No exception was thrown on wrong MIME type !!!") ;
+ result = false ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Right exception was thrown." ) ;
+ }
+ }
+
+ tRes.tested("createMimeContentType()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java
new file mode 100644
index 000000000..95606a684
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.datatransfer.clipboard;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.datatransfer.DataFlavor;
+import com.sun.star.datatransfer.XTransferable;
+import com.sun.star.datatransfer.clipboard.XClipboard;
+import com.sun.star.datatransfer.clipboard.XClipboardOwner;
+
+/**
+* Testing <code>com.sun.star.datatransfer.clipboard.XClipboard</code>
+* interface methods :
+* <ul>
+* <li><code> getContents()</code></li>
+* <li><code> setContents()</code></li>
+* <li><code> getName()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.datatransfer.clipboard.XClipboard
+*/
+public class _XClipboard extends MultiMethodTest {
+
+ public XClipboard oObj;
+
+ MyTransferable myTransferable1;
+ MyTransferable myTransferable2;
+
+ /**
+ * <code>XClipboardOwner</code> interface implementation which
+ * stores parameters passed to <code>lostOwnership</code> method.
+ */
+ static class MyOwner implements XClipboardOwner {
+
+ public void lostOwnership(XClipboard board, XTransferable contents) {
+ }
+
+ }
+
+ /**
+ * Simplest <code>XTransferable</code> interface implementation.
+ */
+ static class MyTransferable implements XTransferable {
+ public Object getTransferData(DataFlavor dataFlavor) {
+ return "";
+ }
+
+ public com.sun.star.datatransfer.DataFlavor[] getTransferDataFlavors() {
+ return new DataFlavor[0];
+ }
+
+ public boolean isDataFlavorSupported(DataFlavor dataFlavor) {
+ return false;
+ }
+
+ }
+
+ /**
+ * Initially sets the content of the clipboard.
+ */
+ @Override
+ public void before() {
+ oObj.setContents(myTransferable1 = new MyTransferable(), new MyOwner());
+ }
+
+ /**
+ * Gets the name of the clipboard. <p>
+ * Has <b>OK</b> status if not <code>null</code> value returned.
+ */
+ public void _getName() {
+ String name = oObj.getName();
+ tRes.tested("getName()", name != null);
+ }
+
+ /**
+ * Gets the contents of the clipboard. <p>
+ * Has <b>OK</b> status if the content obtained is equal to content
+ * set in <code>before</code> method.
+ */
+ public void _getContents() {
+ tRes.tested("getContents()", oObj.getContents() == myTransferable1);
+ }
+
+ /**
+ * Sets new contents for the clipboard. Then checks if it was set,
+ * and if <code>lostOwnership()</code> notification of the previous
+ * contents was called with appropriate parameters.<p>
+ * Has <b> OK </b> status if <code>getContents</code> returns the same
+ * object which is set, and notification was received.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getContents() </code> : for right testing order </li>
+ * </ul>
+ */
+ public void _setContents() {
+ requiredMethod("getContents()");
+ myTransferable2 = new MyTransferable();
+
+ oObj.setContents(myTransferable2, new MyOwner());
+
+ log.println("sleeping for 1 second");
+
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ log.println("interrupted");
+ e.printStackTrace(log);
+ throw new StatusException("Operation interrupted", e);
+ }
+
+ tRes.tested("setContents()", oObj.getContents() == myTransferable2);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java
new file mode 100644
index 000000000..ecd39fe1b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java
@@ -0,0 +1,46 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.datatransfer.clipboard;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.datatransfer.clipboard.XClipboardEx;
+
+/**
+* Testing <code>com.sun.star.datatransfer.clipboard.XClipboardEx</code>
+* interface methods :
+* <ul>
+* <li><code> getRenderingCapabilities()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.datatransfer.clipboard.XClipboardEx
+*/
+public class _XClipboardEx extends MultiMethodTest {
+
+ public XClipboardEx oObj;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _getRenderingCapabilities() {
+ oObj.getRenderingCapabilities();
+ tRes.tested("getRenderingCapabilities()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java
new file mode 100644
index 000000000..b26e89333
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.datatransfer.clipboard;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.datatransfer.DataFlavor;
+import com.sun.star.datatransfer.XTransferable;
+import com.sun.star.datatransfer.clipboard.ClipboardEvent;
+import com.sun.star.datatransfer.clipboard.XClipboard;
+import com.sun.star.datatransfer.clipboard.XClipboardListener;
+import com.sun.star.datatransfer.clipboard.XClipboardNotifier;
+import com.sun.star.datatransfer.clipboard.XClipboardOwner;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.datatransfer.clipboard.XClipboardNotifier</code>
+* interface methods :
+* <ul>
+* <li><code> addClipboardListener()</code></li>
+* <li><code> removeClipboardListener()</code></li>
+* </ul> <p>
+* The object <b>must also implement</b> <code>XClipboard</code>
+* interface. <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.datatransfer.clipboard.XClipboardNotifier
+* @see com.sun.star.datatransfer.clipboard.XClipboard
+*/
+public class _XClipboardNotifier extends MultiMethodTest {
+
+ public XClipboardNotifier oObj;
+
+ /**
+ * <code>XClipboardOwner</code> interface implementation which
+ * stores parameters passed to <code>lostOwnership</code> method.
+ */
+ static class MyOwner implements XClipboardOwner {
+
+ public void lostOwnership(XClipboard board, XTransferable contents) {
+ }
+ }
+
+ /**
+ * Simplest <code>XTransferable</code> interface implementation
+ * which supports "text/html" data type.
+ */
+ static class MyTransferable implements XTransferable {
+ DataFlavor[] supportedFlavors;
+
+ public MyTransferable() {
+ supportedFlavors = new DataFlavor[] {
+ new DataFlavor("text/plain", "Plain text", new Type(String.class))
+ };
+ }
+
+ public Object getTransferData(DataFlavor dataFlavor) {
+ return "";
+ }
+
+ public DataFlavor[] getTransferDataFlavors() {
+ return supportedFlavors;
+ }
+
+ public boolean isDataFlavorSupported(DataFlavor dataFlavor) {
+ return supportedFlavors[0].MimeType.equals(dataFlavor.MimeType);
+ }
+ }
+
+ /**
+ * Implementation of listener which registers its method calls.
+ */
+ class MyClipboardListener implements XClipboardListener {
+ boolean called = false;
+
+ public void changedContents(ClipboardEvent evt) {
+ called = true;
+ }
+
+ public void disposing(EventObject wvt) {
+ log.println("");
+ }
+ }
+
+ MyClipboardListener myListener;
+
+ /**
+ * Adds a listener and put a new contents into clipboard. <p>
+ * Has <b> OK </b> status if the listener was called on contents changing.
+ */
+ public void _addClipboardListener() {
+ oObj.addClipboardListener(myListener = new MyClipboardListener());
+
+ XClipboard board = UnoRuntime.queryInterface(
+ XClipboard.class, tEnv.getTestObject());
+
+ board.setContents(new MyTransferable(), new MyOwner());
+
+ log.println("sleeping for 1 second");
+
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ log.println("interrupted");
+ e.printStackTrace(log);
+ throw new StatusException("Operation interrupted", e);
+ }
+
+ tRes.tested("addClipboardListener()", myListener.called);
+ }
+
+ /**
+ * Removes the listener and put a new contents into clipboard. <p>
+ * Has <b> OK </b> status if the listener was not called on contents
+ * changing.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>addClipboardListener()</code> </li>
+ * </ul>
+ */
+ public void _removeClipboardListener() {
+ try {
+ requiredMethod("addClipboardListener()");
+ myListener.called = false;
+ } finally {
+ oObj.removeClipboardListener(myListener);
+ }
+
+ XClipboard board = UnoRuntime.queryInterface(
+ XClipboard.class, oObj);
+
+ board.setContents(new MyTransferable(), new MyOwner());
+
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ log.println("interrupted");
+ e.printStackTrace(log);
+ throw new StatusException("Operation interrupted", e);
+ }
+
+ tRes.tested("removeClipboardListener()", !myListener.called);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java
new file mode 100644
index 000000000..2af4554c7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.datatransfer.clipboard;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.datatransfer.clipboard.XFlushableClipboard;
+
+/**
+* Testing <code>com.sun.star.datatransfer.clipboard.XFlushableClipboard</code>
+* interface methods :
+* <ul>
+* <li><code> flushClipboard()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.datatransfer.clipboard.XFlushableClipboard
+*/
+public class _XFlushableClipboard extends MultiMethodTest {
+
+ public XFlushableClipboard oObj;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _flushClipboard() {
+ oObj.flushClipboard();
+ tRes.tested("flushClipboard()",true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/document/_ExportFilter.java b/qadevOOo/tests/java/ifc/document/_ExportFilter.java
new file mode 100644
index 000000000..7fcbdb711
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_ExportFilter.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.document.ExportFilter</code>
+* service properties :
+* <ul>
+* <li><code> Type</code></li>
+* <li><code> UIName</code></li>
+* <li><code> DocumentService</code></li>
+* <li><code> FilterService</code></li>
+* <li><code> Flags</code></li>
+* <li><code> UserData</code></li>
+* <li><code> FileFormatVersion</code></li>
+* <li><code> TemplateName</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.document.ExportFilter
+*/
+public class _ExportFilter extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/document/_ImportFilter.java b/qadevOOo/tests/java/ifc/document/_ImportFilter.java
new file mode 100644
index 000000000..aef27e02d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_ImportFilter.java
@@ -0,0 +1,43 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+/**
+* Testing <code>com.sun.star.document.ImportFilter</code>
+* service properties :
+* <ul>
+* <li><code> Type</code></li>
+* <li><code> UIName</code></li>
+* <li><code> DocumentService</code></li>
+* <li><code> FilterService</code></li>
+* <li><code> Flags</code></li>
+* <li><code> UserData</code></li>
+* <li><code> FileFormatVersion</code></li>
+* <li><code> TemplateName</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.document.ImportFilter
+*/
+import lib.MultiPropertyTest;
+
+public class _ImportFilter extends MultiPropertyTest {
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/document/_LinkTarget.java b/qadevOOo/tests/java/ifc/document/_LinkTarget.java
new file mode 100644
index 000000000..f39c5d694
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_LinkTarget.java
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.document.LinkTarget</code>
+* service properties :
+* <ul>
+* <li><code> LinkDisplayName </code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.document.LinkTarget
+*/
+public class _LinkTarget extends MultiPropertyTest {
+
+/*
+ public XPropertySet oObj = null; // oObj filled by MultiMethodTest
+
+ public void _LinkDisplayName() {
+ // check if Service is available
+ XServiceInfo xInfo = (XServiceInfo)
+ UnoRuntime.queryInterface(XServiceInfo.class, oObj);
+ String [] sa = xInfo.getSupportedServiceNames();
+
+ for (int i = 0; i < sa.length; i++) {
+ System.out.println(sa[i]);
+ }
+
+ if ( ! xInfo.supportsService("com.sun.star.document.LinkTarget")) {
+ log.println("Service not available !!!!!!!!!!!!!");
+ tRes.tested("Supported", false);
+ }
+ //the only property is read only
+ try {
+ String LDN = (String) oObj.getPropertyValue("LinkDisplayName");
+ tRes.tested("LinkDisplayName",LDN!=null);
+ }
+ catch (Exception ex) {
+ log.println("Exception occurred during LinkDisplayName");
+ ex.printStackTrace(log);
+ tRes.tested("LinkDisplayName",false);
+ }
+
+ }// EOF LinkDisplayName
+*/
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/document/_OfficeDocument.java b/qadevOOo/tests/java/ifc/document/_OfficeDocument.java
new file mode 100644
index 000000000..7b1c2abde
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_OfficeDocument.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.document.OfficeDocument</code>
+* service properties :
+* <ul>
+* <li><code> AutomaticControlFocus</code></li>
+* <li><code> ApplyFormDesignMode</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.document.OfficeDocument
+*/
+public class _OfficeDocument extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/document/_Settings.java b/qadevOOo/tests/java/ifc/document/_Settings.java
new file mode 100644
index 000000000..a0b0f87b6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_Settings.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.document;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.i18n.XForbiddenCharacters;
+import com.sun.star.uno.UnoRuntime;
+import java.lang.reflect.Method;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+
+/*
+ * Generic test for all properties contained in this service
+ */
+public class _Settings extends MultiPropertyTest {
+
+ /**
+ * This property accepts only values in a range of 1-3
+ * @see com.sun.star.document.PrinterIndependentLayout
+ */
+ public void _PrinterIndependentLayout() {
+ try{
+ Short oldVal = (Short) oObj.getPropertyValue("PrinterIndependentLayout");
+ Short newVal = oldVal.intValue() == 1 ? Short.valueOf("3") : Short.valueOf("1");
+
+
+ testProperty("PrinterIndependentLayout", oldVal, newVal);
+
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ throw new StatusException(e, Status.failed("the property 'PrinterIndependentLayout' is unknown."));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ throw new StatusException(e, Status.failed("the property 'PrinterIndependentLayout' could not be tested."));
+ }
+ }
+
+ public void _PrinterName() {
+ Object[] oServices = null;
+ Exception ex = null;
+
+ try {
+ Class<?> cPrinterJob = Class.forName("java.awt.print.PrinterJob");
+ Method lookupMethod = cPrinterJob.getDeclaredMethod("lookupPrintServices", new Class[0]);
+ Object retValue = lookupMethod.invoke(cPrinterJob, new Object[0]);
+ oServices = (Object[])retValue;
+ }
+ catch(java.lang.ClassNotFoundException e) {
+ ex = e;
+ }
+ catch(java.lang.NoSuchMethodException e) {
+ ex = e;
+ }
+ catch(java.lang.IllegalAccessException e) {
+ ex = e;
+ }
+ catch(java.lang.reflect.InvocationTargetException e) {
+ ex = e;
+ }
+
+ if (ex != null) {
+ // get Java version:
+ String javaVersion = System.getProperty("java.version");
+ throw new StatusException(Status.failed(
+ "Cannot execute test with current Java version (Java 1.4 required) " +
+ javaVersion + ": " + ex.getMessage()));
+ }
+
+ if (oServices.length > 1) {
+ testProperty("PrinterName", getPrinterNameWithReflection(oServices[0]),
+ getPrinterNameWithReflection(oServices[1]));
+ } else {
+ log.println(
+ "checking this property needs at least two printers to be installed on your system");
+ throw new StatusException(Status.failed(
+ "only one printer installed so I can't change it"));
+ }
+ }
+
+ public void _ForbiddenCharacters() {
+ boolean res = true;
+
+ try {
+ //check if it is read only as specified
+ res &= isReadOnly("ForbiddenCharacters");
+
+ if (!isReadOnly("ForbiddenCharacters")) {
+ log.println(
+ "The Property 'ForbiddenCharacters' isn't readOnly as specified");
+ }
+
+ //check if the property has the right type
+ Object pValue = oObj.getPropertyValue("ForbiddenCharacters");
+ XForbiddenCharacters fc = UnoRuntime.queryInterface(
+ XForbiddenCharacters.class,
+ pValue);
+ res &= (fc != null);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println(
+ "Exception while checking property 'ForbiddenCharacters' " +
+ e.getMessage());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(
+ "Exception while checking property 'ForbiddenCharacters' " +
+ e.getMessage());
+ }
+
+ tRes.tested("ForbiddenCharacters", res);
+ }
+
+ protected boolean isReadOnly(String PropertyName) {
+ boolean res = false;
+ Property[] props = oObj.getPropertySetInfo().getProperties();
+
+ for (int i = 0; i < props.length; i++) {
+ if (props[i].Name.equals(PropertyName)) {
+ res = ((props[i].Attributes & PropertyAttribute.READONLY) != 0);
+ }
+ }
+
+ return res;
+ }
+
+ private String getPrinterNameWithReflection(Object pService) {
+ String pName = null;
+ try {
+ Class<?> cPrintService = Class.forName("javax.print.PrintService");
+ Method getNameMethod = cPrintService.getDeclaredMethod("getName", new Class[0]);
+ Object retValue = getNameMethod.invoke(pService, new Object[0]);
+ pName = (String)retValue;
+ }
+ // ignore all exceptions: we already ran into one of these if Java is too old
+ catch(java.lang.ClassNotFoundException e) {
+ }
+ catch(java.lang.NoSuchMethodException e) {
+ }
+ catch(java.lang.IllegalAccessException e) {
+ }
+ catch(java.lang.reflect.InvocationTargetException e) {
+ }
+ return pName;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/document/_XActionLockable.java b/qadevOOo/tests/java/ifc/document/_XActionLockable.java
new file mode 100644
index 000000000..8276eb62a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XActionLockable.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.document.XActionLockable;
+
+/**
+* Testing <code>com.sun.star.document.XActionLockable</code>
+* interface methods :
+* <ul>
+* <li><code> isActionLocked()</code></li>
+* <li><code> addActionLock()</code></li>
+* <li><code> removeActionLock()</code></li>
+* <li><code> setActionLocks()</code></li>
+* <li><code> resetActionLocks()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.document.XActionLockable
+*/
+public class _XActionLockable extends MultiMethodTest {
+ public XActionLockable oObj = null;
+
+ /**
+ * Method addActionLock called first and then
+ * checked value returned by isActionLocked().<p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is true.
+ */
+ public void _isActionLocked() {
+ //determines if at least one lock exists
+ oObj.addActionLock();
+ boolean result = oObj.isActionLocked();
+ tRes.tested("isActionLocked()", result);
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _addActionLock() {
+ requiredMethod("resetActionLocks()");
+ oObj.addActionLock();
+ tRes.tested("addActionLock()", true);
+ }
+
+ /**
+ * Calls the method and check value returned by isActionLocked(). <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is false.
+ */
+ public void _removeActionLock() {
+ requiredMethod("addActionLock()");
+ oObj.removeActionLock();
+ boolean result = ! oObj.isActionLocked();
+ tRes.tested("removeActionLock()", result);
+ }
+
+ /**
+ * Calls the method with specific value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _setActionLocks() {
+ oObj.setActionLocks( nLock );
+ tRes.tested("setActionLocks()", true);
+ }
+
+ static final short nLock = 8;
+
+ /**
+ * Calls the method and checks returned value.<p>
+ * Has <b> OK </b> status if the component is not currently
+ * locked and returned value is the same as locks number
+ * set by <code>setActionLocks</code> method test.
+ */
+ public void _resetActionLocks() {
+ requiredMethod("setActionLocks()");
+ short nLocksBeforeReset = oObj.resetActionLocks();
+ boolean result = !oObj.isActionLocked() && nLocksBeforeReset == nLock;
+ tRes.tested("resetActionLocks()", result);
+ }
+}// finish class _XActionLockable
+
diff --git a/qadevOOo/tests/java/ifc/document/_XDocumentInsertable.java b/qadevOOo/tests/java/ifc/document/_XDocumentInsertable.java
new file mode 100644
index 000000000..c3417118e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XDocumentInsertable.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import com.sun.star.io.IOException;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.document.XDocumentInsertable;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Testing <code>com.sun.star.document.XDocumentInsertable</code>
+* interface methods :
+* <ul>
+* <li><code> insertDocumentFromURL()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XDocumentInsertable.Checker'</code>
+* (of type <code>_XDocumentInsertable.InsertChecker</code>)
+* <b> optional </b> :
+* relation for checking if document was inserted properly and
+* for obtaining document file name. For details see the class
+* description. If the relation doesn't exist default document
+* name is used, and <code>XTextRange</code> interface of
+* component is used for checking.</li>
+* <ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>XDocumentInsertable.sxw</code> : StarWriter document
+* which content started with 'XDocumentInsertable test.' string.
+* The file is needed if no other file name specified by relation.
+* </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.document.XDocumentInsertable
+*/
+public class _XDocumentInsertable extends MultiMethodTest {
+
+ public XDocumentInsertable oObj = null;
+ protected XTextRange range = null ;
+ protected static final String defaultFileName = "XDocumentInsertable.sxw" ;
+ protected InsertChecker checker = null ;
+ protected String fileName = defaultFileName ;
+
+ /**
+ * Abstract class for relation passing. It must check if
+ * document was inserted successfully and can specify its
+ * own document name to be inserted.
+ */
+ public static abstract class InsertChecker {
+ /**
+ * Must be overridden to check if document was
+ * successfully inserted.
+ * @return <code>true</code> if document was inserted.
+ */
+ public abstract boolean isInserted() ;
+ /**
+ * Can be overridden to specify different than default
+ * document name. This document must be situated in
+ * the test document directory, and its name must
+ * be specified relational to this directory. By
+ * default 'XDocumentInsertable.swx' file name returned.
+ * @return File name of the document to be inserted.
+ */
+ public String getFileNameToInsert() {
+ return defaultFileName ;
+ }
+ }
+
+ /**
+ * Retrieves object relation. If the relation is not found
+ * then the object tested is tried to query <code>XTextRange</code>
+ * interface for testing. If the relation is found then document name
+ * for testing is retrieved, else the default one is used.
+ *
+ * @throws StatusException If neither relation found nor
+ * <code>XTextRange</code> interface is queried.
+ */
+ @Override
+ public void before() {
+ checker = (InsertChecker)
+ tEnv.getObjRelation("XDocumentInsertable.Checker") ;
+
+ if (checker == null) {
+ log.println("Relation not found, trying to query for "+
+ "XTextRange ...") ;
+ range = UnoRuntime.queryInterface (XTextRange.class, oObj) ;
+ if (range == null) {
+ log.println("XTextRange isn't supported by the component.");
+ throw new StatusException(Status.failed
+ ("XTextRange isn't supported and relation not found")) ;
+ }
+ } else {
+ fileName = checker.getFileNameToInsert();
+ }
+ }
+
+ /**
+ * Tries to insert document from URL specified by relation or
+ * from default URL. If no relation was passed, text range is
+ * checked for existence of loaded document content. In case
+ * if relation was found, then its <code>isInserted</code>
+ * method is used to check insertion.<p>
+ * A Second test uses an invalid URL and checks for correct exceptions.
+ *
+ * Has <b> OK </b> status if at first insertion was completed successfully
+ * and no exceptions were thrown and as second an expected exception was thrown. <p>
+ */
+ public void _insertDocumentFromURL() {
+ boolean result = true ;
+
+ try {
+ PropertyValue [] szEmptyArgs = new PropertyValue [0];
+ String docURL = utils.getFullTestURL(fileName) ;
+ log.println("Inserting document from URL '" + docURL + "'");
+ oObj.insertDocumentFromURL(docURL, szEmptyArgs);
+
+ if (checker == null) {
+ log.println("Checker is not specified, testing through "+
+ "XTextRange ...") ;
+ String text = range.getString() ;
+ log.println("Document text :\n" + text);
+ log.println("---");
+ result &= ( text.indexOf("XDocumentInsertable test.") >= 0 );
+ } else {
+ result &= checker.isInserted();
+ }
+
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while testing "+
+ "insertDocumentFromURL()");
+ ex.printStackTrace(log);
+ result = false ;
+ } catch (com.sun.star.io.IOException ex) {
+ log.println("Exception occurred while testing "+
+ "insertDocumentFromURL()");
+ ex.printStackTrace(log);
+ result = false ;
+ }
+
+ if (result) {
+ try {
+ PropertyValue [] szEmptyArgs = new PropertyValue [0];
+ String docURL = "file:///c:/ThisIsAnInvalidURL";
+ log.println("Inserting document from URL '" + docURL + "'");
+ oObj.insertDocumentFromURL(docURL, szEmptyArgs);
+
+ result=false;
+
+ } catch (IOException ex) {
+ log.println("expected exception was thrown -> ok");
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected exception was thrown -> ok");
+ }
+ }
+
+ tRes.tested("insertDocumentFromURL()", result);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+} // finish class _XDocumentInsertable
diff --git a/qadevOOo/tests/java/ifc/document/_XEmbeddedObjectSupplier.java b/qadevOOo/tests/java/ifc/document/_XEmbeddedObjectSupplier.java
new file mode 100644
index 000000000..63aa6f4bf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XEmbeddedObjectSupplier.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.document.XEmbeddedObjectSupplier;
+
+/**
+* Testing <code>com.sun.star.document.XEmbeddedObjectSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getEmbeddedObject()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.document.XEmbeddedObjectSupplier
+*/
+public class _XEmbeddedObjectSupplier extends MultiMethodTest {
+
+ public XEmbeddedObjectSupplier oObj = null;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned.
+ */
+ public void _getEmbeddedObject() {
+ tRes.tested("getEmbeddedObject()",
+ oObj.getEmbeddedObject() != null);
+ }
+} // finish class _XEmbeddedObjectSupplier
+
diff --git a/qadevOOo/tests/java/ifc/document/_XEventBroadcaster.java b/qadevOOo/tests/java/ifc/document/_XEventBroadcaster.java
new file mode 100644
index 000000000..cc30c7ebb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XEventBroadcaster.java
@@ -0,0 +1,74 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.document.XEventBroadcaster;
+import com.sun.star.document.XEventListener;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+
+public class _XEventBroadcaster extends MultiMethodTest {
+
+ public XEventBroadcaster oObj;
+ protected boolean listenerCalled = false;
+ private XEventListener listener = null;
+
+ public class MyEventListener implements XEventListener {
+
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void notifyEvent(com.sun.star.document.EventObject eventObject) {
+ System.out.println("EventObject "+eventObject.EventName);
+ listenerCalled = true;
+ }
+
+ }
+
+ private void switchFocus() {
+ XModel docModel = UnoRuntime.queryInterface(
+ XModel.class,tEnv.getTestObject());
+ docModel.getCurrentController().getFrame().getContainerWindow().setFocus();
+ waitForEventIdle();
+ XController xc = UnoRuntime.queryInterface(XController.class,tEnv.getObjRelation("CONT2"));
+ xc.getFrame().getContainerWindow().setFocus();
+ }
+
+ public void _addEventListener() {
+ listener = new MyEventListener();
+ listenerCalled = false;
+ oObj.addEventListener(listener);
+ switchFocus();
+ waitForEventIdle();
+ tRes.tested("addEventListener()",listenerCalled);
+ }
+
+ public void _removeEventListener() {
+ requiredMethod("addEventListener()");
+ listenerCalled = false;
+ oObj.removeEventListener(listener);
+ switchFocus();
+ waitForEventIdle();
+ tRes.tested("removeEventListener()",!listenerCalled);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/document/_XEventsSupplier.java b/qadevOOo/tests/java/ifc/document/_XEventsSupplier.java
new file mode 100644
index 000000000..ee41f37c4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XEventsSupplier.java
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameReplace;
+import com.sun.star.document.XEventsSupplier;
+
+/**
+* Testing <code>com.sun.star.document.XEventsSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getEvents()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.document.XEventsSupplier
+*/
+public class _XEventsSupplier extends MultiMethodTest {
+
+ public XEventsSupplier oObj = null;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned.
+ */
+ public void _getEvents() {
+
+ XNameReplace xNR = oObj.getEvents();
+ xNR.getElementNames();
+ tRes.tested("getEvents()", true);
+ }
+
+} // finish class _XEventSupplier
+
diff --git a/qadevOOo/tests/java/ifc/document/_XExporter.java b/qadevOOo/tests/java/ifc/document/_XExporter.java
new file mode 100644
index 000000000..067f8b5d5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XExporter.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+
+/**
+* Testing <code>com.sun.star.document.XExporter</code>
+* interface methods :
+* <ul>
+* <li><code> setSourceDocument()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'SourceDocument'</code> (of type <code>XComponent</code>):
+* the source document to be passed to the method. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.document.XExporter
+*/
+public class _XExporter extends MultiMethodTest {
+
+ public XExporter oObj = null;
+ public XComponent source = null ;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ source = (XComponent) tEnv.getObjRelation("SourceDocument") ;
+
+ if (source == null) throw new StatusException(Status.failed
+ ("Relation not found")) ;
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ * Usually this interface is supported both with <code>XFilter</code>
+ * where source document setting is checked.
+ */
+ public void _setSourceDocument() {
+ boolean result = true ;
+
+ try {
+ oObj.setSourceDocument(source);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking :");
+ ex.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("setSourceDocument()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/document/_XFilter.java b/qadevOOo/tests/java/ifc/document/_XFilter.java
new file mode 100644
index 000000000..8ea1326bc
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XFilter.java
@@ -0,0 +1,177 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.document.XExporter;
+import com.sun.star.document.XFilter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.document.XFilter</code>
+* interface methods :
+* <ul>
+* <li><code> filter()</code></li>
+* <li><code> cancel()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'MediaDescriptor'</code> (of type <code>PropertyValue[]</code>):
+* the property set described in
+* <code>com.sun.star.document.MediaDescriptor</code>
+* </li>
+* <li> <code>'XFilter.Checker'</code> <b>(optional)</b> (of type
+* <code>ifc.document._XFilter.FilterChecker</code>) : implementation
+* of interface must allow checking that document was exported successfully.
+* If the relation doesn't exist then by default successful filtering
+* assumed.
+* </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.document.XFilter
+*/
+public class _XFilter extends MultiMethodTest {
+
+ public interface FilterChecker {
+ boolean checkFilter() ;
+ }
+
+ public XFilter oObj = null;
+ protected PropertyValue[] mDesc = null ;
+ protected FilterChecker checker = null ;
+ protected XComponent sourceDoc = null;
+ protected boolean dummy = false;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.<br>
+ * In case of Importers only a dummy implementation exists
+ * therefore the methods of this interface will be skipped
+ * in this case
+ */
+ @Override
+ public void before() {
+ String name = tEnv.getTestCase().getObjectName();
+ if (name.indexOf("Importer")>0) {
+ log.println(name+" contains only a dummy implementation");
+ log.println("therefore all methods are skipped");
+ dummy = true;
+ }
+ mDesc = (PropertyValue[]) tEnv.getObjRelation("MediaDescriptor") ;
+ checker = (FilterChecker) tEnv.getObjRelation("XFilter.Checker") ;
+ if (mDesc == null && !dummy) throw new StatusException(
+ Status.failed("Relation not found.")) ;
+ sourceDoc = (XComponent)tEnv.getObjRelation("SourceDocument");
+ try {
+ if (sourceDoc != null) {
+ XExporter xEx = UnoRuntime.queryInterface(
+ XExporter.class,oObj);
+ xEx.setSourceDocument(sourceDoc);
+ }
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {}
+ }
+
+ @Override
+ public void after() {
+ if (dummy) {
+ throw new StatusException(Status.skipped(true));
+ }
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _filter() {
+ if (dummy) {
+ tRes.tested("filter()", true);
+ return;
+ }
+ boolean result = true ;
+ result = oObj.filter(mDesc) ;
+
+ if (checker == null) {
+ log.println("!!! Warning : can't check filter as no relation found");
+ } else {
+ result &= checker.checkFilter() ;
+ }
+
+ tRes.tested("filter()", result) ;
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _cancel() {
+ if (dummy) {
+ tRes.tested("cancel()",true);
+ return;
+ }
+ requiredMethod("filter()");
+ if (tEnv.getObjRelation("NoFilter.cancel()") != null) {
+ System.out.println("Cancel not tested.");
+ log.println("Method 'cancel()' is not working and therefore "+
+ "not tested.\nResult is set to SKIPPED.OK");
+ tRes.tested("cancel()", Status.skipped(true));
+ return;
+ }
+
+ boolean result = false ;
+ FilterThread newFilter = new FilterThread(oObj);
+ newFilter.mdesc = mDesc;
+ newFilter.start();
+ oObj.cancel();
+ while (newFilter.isAlive()) {
+ }
+ result = !newFilter.filterRes;
+ tRes.tested("cancel()", result) ;
+ }
+
+ /**
+ * Calls <code>filter()</code> method in a separate thread.
+ * Necessary to check if the cancel method works
+ */
+ protected static class FilterThread extends Thread {
+
+ public boolean filterRes = true;
+ private final XFilter Filter;
+ public PropertyValue[] mdesc = null;
+
+ public FilterThread(XFilter Filter) {
+ this.Filter = Filter ;
+ }
+
+ @Override
+ public void run() {
+ filterRes = Filter.filter(mdesc);
+ }
+ }
+
+}
+
+
+
diff --git a/qadevOOo/tests/java/ifc/document/_XImporter.java b/qadevOOo/tests/java/ifc/document/_XImporter.java
new file mode 100644
index 000000000..087494e65
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XImporter.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+
+/**
+* Testing <code>com.sun.star.document.XImporter</code>
+* interface methods :
+* <ul>
+* <li><code> setTargetDocument()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'TargetDocument'</code> (of type <code>XComponent</code>):
+* the target document to be passed to the method. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.document.XImporter
+*/
+public class _XImporter extends MultiMethodTest {
+
+ public XImporter oObj = null;
+
+ /**
+ * Retrieves relation and sets target document. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred,
+ * really this method tested when the whole import result
+ * checked.
+ */
+ public void _setTargetDocument() {
+ boolean res = true;
+ try {
+ XComponent the_doc = (XComponent)
+ tEnv.getObjRelation("TargetDocument");
+ oObj.setTargetDocument(the_doc);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'setTargetDocument'");
+ ex.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("setTargetDocument()",res);
+
+ }
+
+} // finish class _XImporter
+
diff --git a/qadevOOo/tests/java/ifc/document/_XLinkTargetSupplier.java b/qadevOOo/tests/java/ifc/document/_XLinkTargetSupplier.java
new file mode 100644
index 000000000..1cc5b3299
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XLinkTargetSupplier.java
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.document.XLinkTargetSupplier;
+
+/**
+* Testing <code>com.sun.star.document.XLinkTargetSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getLinks()</code></li>
+* </ul> <p>
+* @see com.sun.star.document.XLinkTargetSupplier
+*/
+public class _XLinkTargetSupplier extends MultiMethodTest {
+
+ public XLinkTargetSupplier oObj = null;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if not <code>null</code> value returned.
+ */
+ public void _getLinks() {
+ XNameAccess links = oObj.getLinks();
+ links.getElementNames();
+ tRes.tested("getLinks()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/document/_XMimeTypeInfo.java b/qadevOOo/tests/java/ifc/document/_XMimeTypeInfo.java
new file mode 100644
index 000000000..81b39942b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XMimeTypeInfo.java
@@ -0,0 +1,80 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.document.XMimeTypeInfo;
+
+/**
+ * Testing <code>com.sun.star.document.XMimeTypeInfo</code>
+ * interface methods :
+ * <ul>
+ * <li><code> supportsMimeType()</code></li>
+ * <li><code> getSupportedMimeTypeNames()</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.document.XMimeTypeInfo
+ */
+public class _XMimeTypeInfo extends MultiMethodTest {
+
+ public XMimeTypeInfo oObj = null;
+ public String[] smi = null;
+
+ /**
+ * Gets supported types and stores them. <p>
+ * Has <b> OK </b> status if at least one type exists.
+ */
+ public void _getSupportedMimeTypeNames() {
+ smi = oObj.getSupportedMimeTypeNames();
+ tRes.tested("getSupportedMimeTypeNames()", smi.length>0) ;
+ }
+
+ /**
+ * Calls the method for one supported type retrieved by
+ * <code>getSupportedMimeTypeNames</code> method and for
+ * bad type. <p>
+ *
+ * Has <b> OK </b> status if <code>true</code> returned for
+ * supported type and <code>false</code> for bad type.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSupportedMimeTypeNames </code> : to have a list of
+ * supported types. </li>
+ * </ul>
+ */
+ public void _supportsMimeType() {
+ requiredMethod("getSupportedMimeTypeNames()");
+ boolean pos = false;
+ pos = oObj.supportsMimeType(smi[0]);
+ if (!pos) {
+ log.println("Method returns false for existing MimeType");
+ }
+ boolean neg = true;
+ neg = oObj.supportsMimeType("NoRealMimeType");
+ if (neg) {
+ log.println("Method returns true for non existing MimeType");
+ }
+ tRes.tested("supportsMimeType()", (pos && !neg)) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/document/_XTypeDetection.java b/qadevOOo/tests/java/ifc/document/_XTypeDetection.java
new file mode 100644
index 000000000..8aa1f5cdb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XTypeDetection.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.document;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.document.XTypeDetection;
+
+/**
+ * Testing <code>com.sun.star.document.XTypeDetection</code>
+ * interface methods :
+ * <ul>
+ * <li><code> queryTypeByURL()</code></li>
+ * <li><code> queryTypeByDescriptor()</code></li>
+ * </ul> <p>
+ *
+ * The following predefined files needed to complete the test:
+ * <ul>
+ * <li> <code>XTypeDetection.sxw</code> : <b>Calc</b>
+ * document which extension is <b>sxw</b>. </li>
+ * <ul> <p>
+ *
+ * @see com.sun.star.document.XTypeDetection
+ */
+public class _XTypeDetection extends MultiMethodTest {
+ public XTypeDetection oObj = null;
+
+ private String docURL = null;
+ private String bookmarkURL = null;
+
+ /**
+ * Get the document URL.
+ */
+ @Override
+ public void before() {
+ docURL = utils.getFullTestURL("XTypeDetection.sxw");
+ bookmarkURL = (String) tEnv.getObjRelation("XTypeDetection.bookmarkDoc");
+ }
+
+ /**
+ * Tries to detect type by writer document URL. <p>
+ *
+ * Has <b> OK </b> status if type returned contains
+ * 'writer' as substring.
+ */
+ public void _queryTypeByURL() {
+
+ boolean result = true ;
+ String type = oObj.queryTypeByURL(docURL) ;
+ result &= type.indexOf("writer") > -1;
+
+ tRes.tested("queryTypeByURL()", result) ;
+ }
+
+ /**
+ * Tries to detect type of the document using <i>flat</i>
+ * and <i>deep</i> detection. For flat detection a writer type
+ * must be returned (file has writer extension), but deep
+ * detection must return calc type (document has calc contents)<p>
+ *
+ * Has <b> OK </b> status if for the first case type contains
+ * 'writer' string and for the second 'calc' string.
+ */
+ public void _queryTypeByDescriptor() {
+ boolean result = true ;
+ boolean ok = true;
+ log.println("test document with wrong extension");
+ log.println("the document '" + docURL + "' is not what it seems to be ;-)");
+ PropertyValue[][] mediaDescr = new PropertyValue[1][1];
+ mediaDescr[0][0] = new PropertyValue();
+ mediaDescr[0][0].Name = "URL";
+ mediaDescr[0][0].Value = docURL;
+
+ String type = oObj.queryTypeByDescriptor(mediaDescr, false);
+ ok = type.indexOf("writer") > -1;
+ result &= ok;
+ log.println("flat detection should detect a writer and has detected '"+ type +"': " + ok);
+
+ type = oObj.queryTypeByDescriptor(mediaDescr, true);
+ ok = type.indexOf("calc") > -1;
+ result &= ok;
+ log.println("deep detection should detect a calc and has detected '"+ type +"': " + ok);
+
+ log.println("test document with bookmark: " + bookmarkURL);
+ mediaDescr = new PropertyValue[1][1];
+ mediaDescr[0][0] = new PropertyValue();
+ mediaDescr[0][0].Name = "URL";
+ mediaDescr[0][0].Value = bookmarkURL;
+ type = oObj.queryTypeByDescriptor(mediaDescr, true);
+ ok = type.indexOf("writer") > -1;
+ result &= ok;
+ log.println("deep detection should detect a writer and has detected '"+ type +"': " + ok);
+
+ tRes.tested("queryTypeByDescriptor()", result) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/document/_XViewDataSupplier.java b/qadevOOo/tests/java/ifc/document/_XViewDataSupplier.java
new file mode 100644
index 000000000..81a92e7c3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/document/_XViewDataSupplier.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.document;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.document.XViewDataSupplier;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+import lib.Status;
+
+/**
+ * Check the XViewDataSupplier interface.
+ * Test idea: take the property values from the index access, change one
+ * property value, put this into the index access and write it back.
+ * Get the property value again and check that the change made it.
+ */
+public class _XViewDataSupplier extends MultiMethodTest {
+ public XViewDataSupplier oObj = null;
+ XIndexAccess xAccess = null;
+ PropertyValue[] newProps = null;
+ PropertyValue[] oldProps = null;
+ String myview = "myview1";
+
+ public void _getViewData() {
+ xAccess = oObj.getViewData();
+ if (xAccess != null) {
+ setViewID(xAccess, myview);
+ }
+ tRes.tested("getViewData()", true);
+ }
+
+ public void _setViewData() {
+ if (xAccess == null) {
+ log.println("No view data to change available");
+ tRes.tested("setViewData()", Status.skipped(true));
+ }
+ else {
+ // 2do: provide an own implementation of the XIndexAccess to set.
+ // this will work without "setViewData()", it just checks that a
+ // setViewData can be done.
+ oObj.setViewData(xAccess);
+ XIndexAccess xAccess2 = oObj.getViewData();
+ String newView = getViewID(xAccess2);
+ tRes.tested("setViewData()", newView != null && newView.equals(myview));
+ }
+ }
+
+ private void setViewID(XIndexAccess xAccess, String value) {
+ XIndexContainer xIndexContainer = UnoRuntime.queryInterface(XIndexContainer.class, xAccess);
+ int count = xAccess.getCount();
+ try {
+ if (count > 0) {
+ oldProps = (PropertyValue[])xAccess.getByIndex(0);
+ newProps = new PropertyValue[oldProps.length];
+ for (int j=0; j<oldProps.length; j++) {
+ newProps[j] = new PropertyValue();
+ newProps[j].Name = oldProps[j].Name;
+ newProps[j].Handle = oldProps[j].Handle;
+ newProps[j].State = oldProps[j].State;
+ if (oldProps[j].Name.equals("ViewId")) {
+ newProps[j].Value = value;
+ }
+
+ }
+ xIndexContainer.insertByIndex(0, newProps);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace(log);
+ }
+ }
+
+ private String getViewID(XIndexAccess xAccess) {
+ String retValue = null;
+ int count = xAccess.getCount();
+ try {
+ if (count > 0) {
+ oldProps = (PropertyValue[])xAccess.getByIndex(0);
+ for (int j=0; j<oldProps.length; j++) {
+ if (oldProps[j].Name.equals("ViewId")) {
+ retValue = (String)newProps[j].Value;
+ }
+
+ }
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace(log);
+ }
+ return retValue;
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/drawing/_AreaShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_AreaShapeDescriptor.java
new file mode 100644
index 000000000..1bee62098
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_AreaShapeDescriptor.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+public class _AreaShapeDescriptor extends MultiPropertyTest {
+
+ @Override
+ protected boolean compare(Object ob1, Object ob2) {
+
+ return super.compare(ob1, ob2);
+
+ }
+
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg")))
+ return util.utils.getFullTestURL("crazy-blue.jpg"); else
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ } ;
+
+ protected PropertyTester StringTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(str1))
+ return str2; else
+ return str1;
+ }
+ } ;
+
+ public void _FillBitmapURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("FillBitmapURL", URLTester) ;
+ }
+
+ public String str1 = "";
+ public String str2 = "";
+
+ public void _FillGradientName() {
+ log.println("Testing with custom Property tester") ;
+ str1 = "Gradient 1";
+ str2 = "Gradient 3";
+ testProperty("FillGradientName", StringTester) ;
+ }
+
+ public void _FillBitmapName() {
+ log.println("Testing with custom Property tester") ;
+ str1 = "Sky";
+ str2 = "Blank";
+ testProperty("FillBitmapName", StringTester) ;
+ }
+
+ public void _FillTransparenceGradientName() {
+ log.println("Testing with custom Property tester") ;
+ str1 = "Standard 1";
+ str2 = "Standard 2";
+ testProperty("FillTransparenceGradientName", StringTester) ;
+ }
+
+ public void _FillHatchName() {
+ log.println("Testing with custom Property tester") ;
+ str1 = "Black 0 degrees";
+ str2 = "Black 45 degrees";
+ testProperty("FillHatchName", StringTester) ;
+ }
+
+ public void _FillBitmapMode() {
+ log.println("Testing with custom Property tester") ;
+ try {
+ Object getting = oObj.getPropertyValue("FillBitmapMode");
+ if (! (getting instanceof com.sun.star.drawing.BitmapMode)) {
+ log.println("getting the property 'FillBitmapMode'");
+ log.println("return "+ oObj.getClass().getName());
+ log.println("Expected was 'com.sun.star.drawing.BitmapMode'");
+ tRes.tested("FillBitmapMode",false);
+ } else testProperty("FillBitmapMode");
+ }
+ catch (Exception ex) {
+ log.println("Exception while checking 'FillBitmapMode'");
+ ex.printStackTrace(log);
+ tRes.tested("FillBitmapMode",false);
+ }
+
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_ConnectorProperties.java b/qadevOOo/tests/java/ifc/drawing/_ConnectorProperties.java
new file mode 100644
index 000000000..1cbe9f077
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_ConnectorProperties.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.ConnectorProperties</code>
+* service properties :
+* <ul>
+* <li><code> EdgeKind</code></li>
+* <li><code> EdgeNode1HorzDist</code></li>
+* <li><code> EdgeNode1VertDist</code></li>
+* <li><code> EdgeNode2HorzDist</code></li>
+* <li><code> EdgeNode2VertDist</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.ConnectorProperties
+*/
+public class _ConnectorProperties extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_ConnectorShape.java b/qadevOOo/tests/java/ifc/drawing/_ConnectorShape.java
new file mode 100644
index 000000000..d338126d7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_ConnectorShape.java
@@ -0,0 +1,70 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.drawing.XShape;
+/**
+* Testing <code>com.sun.star.drawing.ConnectorShape</code>
+* service properties :
+* <ul>
+* <li><code> EdgeLine1Delta</code></li>
+* <li><code> EdgeLine2Delta</code></li>
+* <li><code> EdgeLine3Delta</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.ConnectorShape
+*/
+public class _ConnectorShape extends MultiPropertyTest {
+ public XShape[] conShapes = null;
+
+ @Override
+ protected void before() {
+ conShapes = (XShape[]) tEnv.getObjRelation("XConnectorShape.Shapes");
+ }
+
+ public void _EndShape() {
+ Object oldProp = null;
+ try {
+ oldProp = oObj.getPropertyValue("EndShape");
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace();
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace();
+ }
+ testProperty("EndShape",oldProp,conShapes[0]);
+ }
+
+ public void _StartShape() {
+ Object oldProp = null;
+ log.println("Special for StartShape");
+ try {
+ oldProp = oObj.getPropertyValue("StartShape");
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace();
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace();
+ }
+ testProperty("StartShape",oldProp,conShapes[1]);
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_ConnectorShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_ConnectorShapeDescriptor.java
new file mode 100644
index 000000000..99f974b49
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_ConnectorShapeDescriptor.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+public class _ConnectorShapeDescriptor extends MultiPropertyTest {
+
+ @Override
+ protected boolean compare(Object ob1, Object ob2) {
+
+ return super.compare(ob1, ob2);
+
+ }
+
+} // finish class _ConnectorShapeDescriptor
+
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_DimensioningShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_DimensioningShapeDescriptor.java
new file mode 100644
index 000000000..ef55d860e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_DimensioningShapeDescriptor.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+
+public class _DimensioningShapeDescriptor extends MultiPropertyTest {
+
+/*
+ protected PropertyTester lengthTester = new PropertyTester() {
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+
+ int val = ((Integer)oldValue).intValue() ;
+ return Integer.valueOf(val + 100) ;
+ }
+ } ;
+*/
+
+} // finish class _ParagraphProperties
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_DrawingDocument.java b/qadevOOo/tests/java/ifc/drawing/_DrawingDocument.java
new file mode 100644
index 000000000..a0df35bcb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_DrawingDocument.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.DrawingDocument</code>
+* service properties :
+* <ul>
+* <li><code> TabStop</code></li>
+* <li><code> CharLocale</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.DrawingDocument
+*/
+public class _DrawingDocument extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_DrawingDocumentDrawView.java b/qadevOOo/tests/java/ifc/drawing/_DrawingDocumentDrawView.java
new file mode 100644
index 000000000..597e44cee
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_DrawingDocumentDrawView.java
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.uno.UnoRuntime;
+import util.ValueChanger;
+
+/**
+* Testing <code>com.sun.star.drawing.DrawingDocumentDrawView</code>
+* service properties :
+* <ul>
+* <li><code> IsMasterPageMode</code></li>
+* <li><code> IsLayerMode</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DrawPage'</code> (of type <code>XDrawPage</code>):
+* a draw page which will be current page. </li>
+* <ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+*/
+public class _DrawingDocumentDrawView extends MultiPropertyTest {
+
+ XDrawPage drawPage = null;
+ static String test_name = "For DrawingDocumentDrawView";
+
+ @Override
+ protected void before() {
+ drawPage = (XDrawPage)tEnv.getObjRelation("DrawPage");
+ XNamed xNamed = UnoRuntime.queryInterface(XNamed.class, drawPage);
+ xNamed.setName(test_name);
+ }
+
+ /**
+ * Property tester which returns new <code>XDrawPage</code> object
+ * and compares draw pages.
+ */
+ protected PropertyTester CurPageTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ return drawPage;
+ }
+
+ @Override
+ protected boolean compare(Object obj1, Object obj2) {
+ XNamed named1 = UnoRuntime.queryInterface(XNamed.class, obj1);
+ XNamed named2 = UnoRuntime.queryInterface(XNamed.class, obj2);
+ boolean res = false;
+
+ if (named1 != null && named2 != null) {
+ String name1 = named1.getName();
+ String name2 = named2.getName();
+ res = name1.equals(name2);
+ } else {
+ log.println("Interface XNamed not supported");
+ }
+
+ return res;
+ }
+
+ @Override
+ protected String toString(Object obj) {
+ XNamed named = UnoRuntime.queryInterface(XNamed.class, obj);
+ String res = (named == null) ? "null" : named.getName();
+ return res;
+ }
+ } ;
+
+ public void _CurrentPage() {
+ log.println("Testing with custom Property tester");
+ Object oldCurPage = null;
+ try {
+ oldCurPage = oObj.getPropertyValue("CurrentPage");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ }
+
+ testProperty("CurrentPage", CurPageTester);
+
+ try {
+ log.println("Back old current page");
+ oObj.setPropertyValue("CurrentPage", oldCurPage);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+ }
+ }
+
+ public void _IsMasterPageMode() {
+ testProperty("IsMasterPageMode");
+ try {
+ oObj.setPropertyValue("IsMasterPageMode", Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+ }
+ }
+
+ public void _IsLayerMode() {
+ testProperty("IsLayerMode");
+ try {
+ oObj.setPropertyValue("IsLayerMode", Boolean.FALSE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+ }
+ }
+
+ public void _ZoomType() {
+ Object oldValue=null;
+ Object newValue=null;
+ try {
+ oldValue = oObj.getPropertyValue("ZoomValue");
+ Object oldZoom = oObj.getPropertyValue("ZoomType");
+ Object newZoom = ValueChanger.changePValue(oldZoom);
+ oObj.setPropertyValue("ZoomType", newZoom);
+ newValue = oObj.getPropertyValue("ZoomValue");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+ }
+ log.println("oldZoomValue: "+oldValue);
+ log.println("newZoomValue: "+newValue);
+ if (oldValue != null)
+ tRes.tested("ZoomType",(!oldValue.equals(newValue)));
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_EllipseShape.java b/qadevOOo/tests/java/ifc/drawing/_EllipseShape.java
new file mode 100644
index 000000000..7cc84ea12
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_EllipseShape.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.EllipseShape</code>
+* service properties :
+* <ul>
+* <li><code> CircleKind</code></li>
+* <li><code> CircleStartAngle</code></li>
+* <li><code> CircleEndAngle</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.EllipseShape
+*/
+public class _EllipseShape extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_EllipseShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_EllipseShapeDescriptor.java
new file mode 100644
index 000000000..d291a9e9c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_EllipseShapeDescriptor.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+
+public class _EllipseShapeDescriptor extends MultiPropertyTest {
+
+} // finish class _EllipseShapeDescriptor
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_FillProperties.java b/qadevOOo/tests/java/ifc/drawing/_FillProperties.java
new file mode 100644
index 000000000..f4e64d7b5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_FillProperties.java
@@ -0,0 +1,213 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.drawing;
+
+import com.sun.star.beans.XPropertySetInfo;
+import lib.MultiPropertyTest;
+
+import com.sun.star.awt.XBitmap;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+ * Testing <code>com.sun.star.drawing.FillProperties</code>
+ * service properties :
+ * <ul>
+ * <li><code> FillStyle</code></li>
+ * <li><code> FillColor</code></li>
+ * <li><code> FillTransparence</code></li>
+ * <li><code> FillTransparenceGradientName</code></li>
+ * <li><code> FillTransparenceGradient</code></li>
+ * <li><code> FillGradientName</code></li>
+ * <li><code> FillGradient</code></li>
+ * <li><code> FillHatchName</code></li>
+ * <li><code> FillHatch</code></li>
+ * <li><code> FillBitmapName</code></li>
+ * <li><code> FillBitmap</code></li>
+ * <li><code> FillBitmapURL</code></li>
+ * <li><code> FillBitmapOffsetX</code></li>
+ * <li><code> FillBitmapOffsetY</code></li>
+ * <li><code> FillBitmapPositionOffsetX</code></li>
+ * <li><code> FillBitmapPositionOffsetY</code></li>
+ * <li><code> FillBitmapRectanglePoint</code></li>
+ * <li><code> FillBitmapLogicalSize</code></li>
+ * <li><code> FillBitmapSizeX</code></li>
+ * <li><code> FillBitmapSizeY</code></li>
+ * <li><code> FillBitmapMode</code></li>
+ * <li><code> FillBackground</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.drawing.FillProperties
+ */
+public class _FillProperties extends MultiPropertyTest {
+
+ XBitmap the_bitmap = null;
+ XBitmap the_secondBitmap = null;
+ /**
+ * Property tester which changes URL.
+ */
+ protected PropertyTester URLTester = new PropertyTester() {
+
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg"))) {
+ return util.utils.getFullTestURL("crazy-blue.jpg");
+ } else {
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ }
+ };
+ /**
+ * Property tester which switches two strings.
+ */
+ protected PropertyTester StringTester = new PropertyTester() {
+
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(str1)) {
+ return str2;
+ } else {
+ return str1;
+ }
+ }
+ };
+ /**
+ * Property tester which switches two XBitmap objects.
+ */
+ protected PropertyTester BitmapTester = new PropertyTester() {
+
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (util.ValueComparer.equalValue(oldValue, the_bitmap)) {
+ return the_secondBitmap;
+ } else {
+ return the_bitmap;
+ }
+ }
+ };
+
+ /**
+ * This property must have a URL format
+ */
+ public void _FillBitmapURL() {
+ log.println("Testing with custom Property tester");
+ testProperty("FillBitmapURL", URLTester);
+ }
+ public String str1 = "";
+ public String str2 = "";
+
+ /**
+ * This property must have predefined values
+ */
+ public void _FillGradientName() {
+ log.println("Testing with custom Property tester");
+ str1 = "Gradient 1";
+ str2 = "Gradient 3";
+ testProperty("FillGradientName", StringTester);
+ }
+
+ /**
+ * This property must have predefined values
+ */
+ public void _FillBitmapName() {
+ log.println("Testing with custom Property tester");
+ str1 = "Sky";
+ str2 = "Blank";
+ testProperty("FillBitmapName", StringTester);
+ }
+
+ /**
+ * This property must have predefined values
+ */
+ public void _FillTransparenceGradientName() {
+ log.println("Testing with custom Property tester");
+ str1 = "Transparency 2";
+ str2 = "Transparency 1";
+ testProperty("FillTransparenceGradientName", StringTester);
+ }
+
+ /**
+ * This property must have predefined values
+ */
+ public void _FillHatchName() {
+ log.println("Testing with custom Property tester");
+ str1 = "Black 0 degrees";
+ str2 = "Black 45 degrees";
+ testProperty("FillHatchName", StringTester);
+ }
+
+ /**
+ * This property is very interesting. After setting URL of bitmap you get
+ * <code>XBitmap</code> interface of the image file specified.
+ * The method first gets two different bitmaps and then tests the property.
+ */
+ public void _FillBitmap() {
+
+ String propName = "FillBitmap";
+
+ XPropertySetInfo info = oObj.getPropertySetInfo();
+
+ if (!info.hasPropertyByName(propName)) {
+ if (isOptional(propName)) {
+ // skipping optional property test
+ log.println("Property '" + propName + "' is optional and not supported");
+ tRes.tested(propName, true);
+ return;
+ }
+ } else {
+
+ try {
+
+ oObj.setPropertyValue("FillBitmapURL", util.utils.getFullTestURL("crazy-blue.jpg"));
+
+ the_bitmap = (XBitmap) AnyConverter.toObject(
+ new Type(XBitmap.class), oObj.getPropertyValue("FillBitmap"));
+
+ oObj.setPropertyValue("FillBitmapURL", util.utils.getFullTestURL("space-metal.jpg"));
+
+ the_secondBitmap = (XBitmap) AnyConverter.toObject(
+ new Type(XBitmap.class), oObj.getPropertyValue("FillBitmap"));
+
+ testProperty("FillBitmap", BitmapTester);
+
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't change Bitmap");
+ e.printStackTrace(log);
+ tRes.tested("FillBitmap", false);
+
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't change Bitmap");
+ e.printStackTrace(log);
+ tRes.tested("FillBitmap", false);
+
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't change Bitmap");
+ e.printStackTrace(log);
+ tRes.tested("FillBitmap", false);
+
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't change Bitmap");
+ e.printStackTrace(log);
+ tRes.tested("FillBitmap", false);
+ }
+ }
+ }
+ }
diff --git a/qadevOOo/tests/java/ifc/drawing/_GenericDrawPage.java b/qadevOOo/tests/java/ifc/drawing/_GenericDrawPage.java
new file mode 100644
index 000000000..71cfb5688
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_GenericDrawPage.java
@@ -0,0 +1,87 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.drawing.GenericDrawPage</code>
+* service properties :
+* <ul>
+* <li><code> BorderBottom</code></li>
+* <li><code> BorderLeft</code></li>
+* <li><code> BorderRight</code></li>
+* <li><code> BorderTop</code></li>
+* <li><code> Height</code></li>
+* <li><code> Width</code></li>
+* <li><code> Number</code></li>
+* <li><code> Orientation</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.GenericDrawPage
+*/
+public class _GenericDrawPage extends MultiPropertyTest {
+
+ public void _Number() {
+ log.println("Number started");
+ boolean res = false;
+ log.println("trying to get the value");
+ try {
+ Short wat = (Short) oObj.getPropertyValue("Number");
+ if (wat == null) {
+ log.println("it is null");
+ } else {
+ log.println("it isn't null");
+ res=true;
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("an UnknownPropertyException occurred");
+
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("an WrappedTargetException occurred");
+ }
+
+ tRes.tested("Number",res);
+ }
+
+ public void _UserDefinedAttributes() {
+ log.println("Userdefined started");
+ boolean res = false;
+ log.println("trying to get the value");
+ try {
+ Object wat = oObj.getPropertyValue("UserDefinedAttributes");
+ if (wat == null) {
+ log.println("it is null");
+ } else {
+ log.println("it isn't null");
+ res=true;
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("an UnknownPropertyException occurred");
+
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("an WrappedTargetException occurred");
+ }
+
+ tRes.tested("UserDefinedAttributes",res);
+ }
+
+} // end of GenericDrawPage
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_GenericDrawingDocument.java b/qadevOOo/tests/java/ifc/drawing/_GenericDrawingDocument.java
new file mode 100644
index 000000000..2e72d03d8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_GenericDrawingDocument.java
@@ -0,0 +1,25 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+public class _GenericDrawingDocument extends MultiPropertyTest {
+
+}
diff --git a/qadevOOo/tests/java/ifc/drawing/_GraphicObjectShape.java b/qadevOOo/tests/java/ifc/drawing/_GraphicObjectShape.java
new file mode 100644
index 000000000..dfbde7de1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_GraphicObjectShape.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.awt.XBitmap;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.GraphicObjectShape</code>
+* service properties :
+* <ul>
+* <li><code> GraphicURL</code></li>
+* <li><code> GraphicStreamURL</code></li>
+* <li><code> GraphicObjectFillBitmap</code></li>
+* <li><code> AdjustLuminance</code></li>
+* <li><code> AdjustContrast</code></li>
+* <li><code> AdjustRed</code></li>
+* <li><code> AdjustGreen</code></li>
+* <li><code> AdjustBlue</code></li>
+* <li><code> Gamma</code></li>
+* <li><code> Transparency</code></li>
+* <li><code> GraphicColorMode</code></li>
+* <li><code> ImageMap</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Bitmap1', 'Bitmap2'</code> (of type <code>XBitmap</code>):
+* values to be set for property GraphicObjectFillBitmap </li>
+* <li> <code>'IMAP'</code>
+* (<code>com.sun.star.image.ImageMapRectangleObject</code> service instance):
+* is used to be added to ImageMap container.</li>
+* <ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.GraphicObjectShape
+*/
+public class _GraphicObjectShape extends MultiPropertyTest {
+
+ /**
+ * Property tester which changes URL.
+ */
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg")))
+ return util.utils.getFullTestURL("crazy-blue.jpg"); else
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ } ;
+
+ /**
+ * Property tester which switches two XBitmap objects.
+ * It also uses two object relations with bitmaps.
+ */
+ protected PropertyTester BitmapTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue){
+ XBitmap aBitmap1=(XBitmap) tEnv.getObjRelation("Bitmap1");
+ XBitmap aBitmap2=(XBitmap) tEnv.getObjRelation("Bitmap2");
+ if (oldValue.equals(aBitmap1)) return aBitmap2;
+ else return aBitmap1;
+ }
+ } ;
+
+ /**
+ * This property must have URL format
+ */
+ public void _GraphicURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("GraphicURL", URLTester) ;
+ }
+
+ public void _GraphicStreamURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("GraphicStreamURL", URLTester) ;
+ }
+
+ public void _GraphicObjectFillBitmap() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("GraphicObjectFillBitmap", BitmapTester) ;
+ }
+
+ /**
+ * The test first retrieves ImageMap relation, then inserts it
+ * to the current container.
+ */
+ public void _ImageMap() {
+ if (! util.utils.hasPropertyByName(oObj,"ImageMap")) {
+ log.println("optional property 'ImageMap' isn't available");
+ tRes.tested("ImageMap",true);
+ return;
+ }
+ try {
+ boolean result = true;
+ Object imapObject = tEnv.getObjRelation("ImapObject");
+
+ if ( imapObject == null){
+ System.out.println("ERROR: object relation 'ImapObject' isn't available");
+ tRes.tested("ImageMap", false);
+ return;
+ }
+
+ Object o = oObj.getPropertyValue("ImageMap");
+ XIndexContainer xIndexContainer = UnoRuntime.queryInterface(XIndexContainer.class, o);
+ util.dbg.printInterfaces(xIndexContainer);
+ int elementCountFirst = xIndexContainer.getCount();
+ xIndexContainer.insertByIndex(elementCountFirst, imapObject);
+
+ // this does not really change the property: the implementation
+ // behind "ImageMap" stays the same, but for a real change a C++
+ // implementation is needed. See css.lang.XUnoTunnel
+ oObj.setPropertyValue("ImageMap", xIndexContainer);
+ Object newObject = oObj.getPropertyValue("ImageMap");
+ xIndexContainer = UnoRuntime.queryInterface(XIndexContainer.class, newObject);
+
+ int elementCountSecond = xIndexContainer.getCount();
+ result = (elementCountFirst + 1 == elementCountSecond);
+
+ tRes.tested("ImageMap", result);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while checking 'ImageMap'");
+ e.printStackTrace(log);
+ tRes.tested("ImageMap",false);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while checking 'ImageMap'");
+ e.printStackTrace(log);
+ tRes.tested("ImageMap",false);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while checking 'ImageMap'");
+ e.printStackTrace(log);
+ tRes.tested("ImageMap",false);
+ }
+ catch(Exception e) {
+ e.printStackTrace(log);
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_GraphicObjectShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_GraphicObjectShapeDescriptor.java
new file mode 100644
index 000000000..830a065d4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_GraphicObjectShapeDescriptor.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.awt.XBitmap;
+
+public class _GraphicObjectShapeDescriptor extends MultiPropertyTest {
+
+ @Override
+ protected boolean compare(Object ob1, Object ob2) {
+
+ return super.compare(ob1, ob2);
+
+ }
+
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg")))
+ return util.utils.getFullTestURL("crazy-blue.jpg"); else
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ } ;
+
+ protected PropertyTester BitmapTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ XBitmap aBitmap1=(XBitmap) tEnv.getObjRelation("Bitmap1");
+ XBitmap aBitmap2=(XBitmap) tEnv.getObjRelation("Bitmap2");
+ if (oldValue.equals(aBitmap1)) return aBitmap2; else return aBitmap1;
+ }
+ } ;
+
+ public void _GraphicURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("GraphicURL", URLTester) ;
+ }
+
+ public void _GraphicObjectFillBitmap() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("GraphicObjectFillBitmap", BitmapTester) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_Layer.java b/qadevOOo/tests/java/ifc/drawing/_Layer.java
new file mode 100644
index 000000000..c11b39cd4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_Layer.java
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.Layer</code>
+* service properties :
+* <ul>
+* <li><code> Name</code></li>
+* <li><code> IsVisible</code></li>
+* <li><code> IsPrintable</code></li>
+* <li><code> IsLocked</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.Layer
+*/
+public class _Layer extends MultiPropertyTest {
+
+}// end of _Layer.java
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_LineProperties.java b/qadevOOo/tests/java/ifc/drawing/_LineProperties.java
new file mode 100644
index 000000000..d37d6506d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_LineProperties.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import com.sun.star.drawing.LineDash;
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.LineProperties</code>
+* service properties :
+* <ul>
+* <li><code> LineStyle</code></li>
+* <li><code> LineDash</code></li>
+* <li><code> LineColor</code></li>
+* <li><code> LineTransparence</code></li>
+* <li><code> LineWidth</code></li>
+* <li><code> LineJoint</code></li>
+* <li><code> LineStartName</code></li>
+* <li><code> LineStart</code></li>
+* <li><code> LineEnd</code></li>
+* <li><code> LineStartCenter</code></li>
+* <li><code> LineStartWidth</code></li>
+* <li><code> LineEndCenter</code></li>
+* <li><code> LineEndWidth</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.LineProperties
+*/
+public class _LineProperties extends MultiPropertyTest {
+
+ /**
+ * Tester used for property LineStartName which can have
+ * only predefined String values.
+ */
+ protected PropertyTester LineTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals("Arrow"))
+ return "Square"; else
+ return "Arrow";
+ }
+ } ;
+
+ /**
+ * The property switched between 'Square' and 'Arrow' values.
+ */
+ public void _LineStartName() {
+ log.println("Testing with custom Property tester");
+ testProperty("LineStartName", LineTester) ;
+ }
+
+ public void _LineDash() {
+ LineDash aLineDash = new LineDash();
+ LineDash aLineDash2 = new LineDash();
+ aLineDash.DashLen = 5;
+ aLineDash2.DashLen = 1;
+ testProperty("LineDash",aLineDash,aLineDash2);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_LineShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_LineShapeDescriptor.java
new file mode 100644
index 000000000..a619b952f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_LineShapeDescriptor.java
@@ -0,0 +1,137 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import util.ValueChanger;
+
+import com.sun.star.awt.Point;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.UnoRuntime;
+
+
+public class _LineShapeDescriptor extends MultiMethodTest {
+
+ public XPropertySet oObj = null; // oObj filled by MultiMethodTest
+
+
+ public void _LineColor() {
+ XServiceInfo xInfo = UnoRuntime.queryInterface(XServiceInfo.class, oObj);
+ if ( ! xInfo.supportsService
+ ("com.sun.star.drawing.LineShapeDescriptor")) {
+ log.println("Service not available !!!!!!!!!!!!!");
+ tRes.tested("Supported", false);
+ }
+ changeProp("LineColor");
+ }
+
+ public void _LineDash() {
+ changeProp("LineDash");
+ }
+ public void _LineEnd() {
+ changeProp("LineEnd");
+ }
+ public void _LineEndCenter() {
+ changeProp("LineEndCenter");
+ }
+ public void _LineEndWidth() {
+ changeProp("LineEndWidth");
+ }
+ public void _LineJoint() {
+ changeProp("LineJoint");
+ }
+ public void _LineStart() {
+ changeProp("LineStart");
+ }
+ public void _LineStartCenter() {
+ changeProp("LineStartCenter");
+ }
+ public void _LineStartWidth() {
+ changeProp("LineStartWidth");
+ }
+ public void _LineStyle() {
+ changeProp("LineStyle");
+ }
+ public void _LineTransparence() {
+ changeProp("LineTransparence");
+ }
+ public void _LineWidth() {
+ changeProp("LineWidth");
+ }
+
+ public void changeProp(String name) {
+
+ Object gValue = null;
+ Object sValue = null;
+ Object ValueToSet = null;
+
+ try {
+ gValue = oObj.getPropertyValue(name);
+ if ( (name.equals("LineEnd")) || (name.equals("LineStart")) ) {
+ if (gValue == null) gValue = newPoints(null);
+ ValueToSet = newPoints( (Point[]) gValue);
+ }
+ else {
+ ValueToSet = ValueChanger.changePValue(gValue);
+ }
+ oObj.setPropertyValue(name,ValueToSet);
+ sValue = oObj.getPropertyValue(name);
+
+
+ //check get-set methods
+ if (gValue.equals(sValue)) {
+ log.println("Value for '"+name+"' hasn't changed");
+ tRes.tested(name, false);
+ }
+ else {
+ log.println("Property '"+name+"' OK");
+ tRes.tested(name, true);
+ }
+ } catch (Exception e) {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ e.printStackTrace(log);
+ tRes.tested(name, false);
+ }
+
+
+ } // end of ChangeProp
+
+ public Point[] newPoints(Point[] old) {
+
+ Point [] newP = new Point[3];
+
+ if (old == null) {
+ newP[0] = new Point(0, 2);
+ newP[1] = new Point(2, 0);
+ newP[2] = new Point(0, -2);
+ }
+ else {
+ newP = old;
+ newP[0].X += 1;
+ newP[1].X += 1;
+ newP[2].X += 1;
+ }
+ return newP;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_MeasureProperties.java b/qadevOOo/tests/java/ifc/drawing/_MeasureProperties.java
new file mode 100644
index 000000000..9bc3d2aa2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_MeasureProperties.java
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.MeasureProperties</code>
+* service properties :
+* <ul>
+* <li><code> MeasureBelowReferenceEdge</code></li>
+* <li><code> MeasureHelpLine1Length</code></li>
+* <li><code> MeasureHelpLine2Length</code></li>
+* <li><code> MeasureHelpLineDistance</code></li>
+* <li><code> MeasureHelpLineOverhang</code></li>
+* <li><code> MeasureKind</code></li>
+* <li><code> MeasureLineDistance</code></li>
+* <li><code> MeasureOverhang</code></li>
+* <li><code> MeasureShowUnit</code></li>
+* <li><code> MeasureTextAutoAngle</code></li>
+* <li><code> MeasureTextAutoAngleView</code></li>
+* <li><code> MeasureTextFixedAngle</code></li>
+* <li><code> MeasureTextHorizontalPosition</code></li>
+* <li><code> MeasureTextVerticalPosition</code></li>
+* <li><code> MeasureTextIsFixedAngle</code></li>
+* <li><code> MeasureTextRotate90</code></li>
+* <li><code> MeasureTextUpsideDown</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.MeasureProperties
+*/
+public class _MeasureProperties extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_MeasureShape.java b/qadevOOo/tests/java/ifc/drawing/_MeasureShape.java
new file mode 100644
index 000000000..bbac993d6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_MeasureShape.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.MeasureShape</code>
+* service properties :
+* <ul>
+* <li><code> StartPosition</code></li>
+* <li><code> EndPosition</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.MeasureShape
+*/
+public class _MeasureShape extends MultiPropertyTest {
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_PolyPolygonBezierDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_PolyPolygonBezierDescriptor.java
new file mode 100644
index 000000000..340e7978f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_PolyPolygonBezierDescriptor.java
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.PolyPolygonBezierDescriptor</code>
+* service properties :
+* <ul>
+* <li><code> PolygonKind</code></li>
+* <li><code> PolyPolygonBezier</code></li>
+* <li><code> Geometry</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.PolyPolygonBezierDescriptor
+*/
+public class _PolyPolygonBezierDescriptor extends MultiPropertyTest {
+
+} // finish class _PolyPolygonBezierDescriptor
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_PolyPolygonDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_PolyPolygonDescriptor.java
new file mode 100644
index 000000000..ba9e8b097
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_PolyPolygonDescriptor.java
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.PolyPolygonDescriptor</code>
+* service properties :
+* <ul>
+* <li><code> PolygonKind</code></li>
+* <li><code> PolyPolygon</code></li>
+* <li><code> Geometry</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.PolyPolygonDescriptor
+*/
+public class _PolyPolygonDescriptor extends MultiPropertyTest {
+
+} // finish class _PolyPolygonDescriptor
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_RotationDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_RotationDescriptor.java
new file mode 100644
index 000000000..85db87e12
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_RotationDescriptor.java
@@ -0,0 +1,94 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+
+/**
+* Testing <code>com.sun.star.drawing.RotationDescriptor</code>
+* service properties :
+* <ul>
+* <li><code> RotateAngle</code></li>
+* <li><code> ShearAngle</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.RotationDescriptor
+*/
+public class _RotationDescriptor extends MultiPropertyTest {
+
+ /**
+ * Custom tester which increases value by 200
+ */
+ protected PropertyTester drawMeasureTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ int val = ((Integer)oldValue).intValue() ;
+ return Integer.valueOf(val + 200) ;
+ }
+ } ;
+
+ /**
+ * !!! DEPRECATED !!!
+ */
+ public void _RotationPointX() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("RotationPointX", drawMeasureTester) ;
+ }
+
+ /**
+ * !!! DEPRECATED !!!
+ */
+ public void _RotationPointY() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("RotationPointY", drawMeasureTester) ;
+ }
+
+ /**
+ * Tests the property with custom tester
+ */
+ public void _ShearAngle() {
+
+ Object noShear = tEnv.getObjRelation("NoShear");
+
+ if (noShear != null) {
+ log.println("This shape type doesn't support shear, see #85556#");
+ tRes.tested("ShearAngle",Status.skipped(true));
+ return;
+ }
+
+ try {
+ oObj.setPropertyValue("RotateAngle",Short.valueOf((short) 0));
+ } catch (Exception e) {
+ }
+ log.println("Testing with custom Property tester") ;
+ testProperty("ShearAngle", drawMeasureTester) ;
+ }
+
+ /**
+ * Tests the property with custom tester
+ */
+ public void _RotateAngle() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("RotateAngle", drawMeasureTester) ;
+ }
+
+} // finish class _RotationDescriptor
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_ShadowDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_ShadowDescriptor.java
new file mode 100644
index 000000000..ec95fea71
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_ShadowDescriptor.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+public class _ShadowDescriptor extends MultiPropertyTest {
+
+ @Override
+ protected boolean compare(Object ob1, Object ob2) {
+
+ return super.compare(ob1, ob2);
+
+ }
+
+} // finish class _ShadowDescriptor
+
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_ShadowProperties.java b/qadevOOo/tests/java/ifc/drawing/_ShadowProperties.java
new file mode 100644
index 000000000..b1c039a8c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_ShadowProperties.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.ShadowProperties</code>
+* service properties :
+* <ul>
+* <li><code> Shadow</code></li>
+* <li><code> ShadowColor</code></li>
+* <li><code> ShadowTransparence</code></li>
+* <li><code> ShadowXDistance</code></li>
+* <li><code> ShadowYDistance</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.ShadowProperties
+*/
+public class _ShadowProperties extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_Shape.java b/qadevOOo/tests/java/ifc/drawing/_Shape.java
new file mode 100644
index 000000000..9ef654283
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_Shape.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.style.XStyle;
+
+/**
+* Testing <code>com.sun.star.drawing.Shape</code>
+* service properties :
+* <ul>
+* <li><code> ZOrder</code></li>
+* <li><code> LayerID</code></li>
+* <li><code> LayerName</code></li>
+* <li><code> Printable</code></li>
+* <li><code> MoveProtect</code></li>
+* <li><code> Name</code></li>
+* <li><code> SizeProtect</code></li>
+* <li><code> Style</code></li>
+* <li><code> Transformation</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Style1', 'Style2'</code>
+* (of type <code>com.sun.star.style.XStyle</code>):
+* relations used to change property 'Style'</li>
+* <ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.Shape
+*/
+public class _Shape extends MultiPropertyTest {
+
+ XStyle style1 = null;
+ XStyle style2 = null;
+
+ /**
+ * Custom tester which switches between two styles.
+ */
+ protected PropertyTester StyleTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (util.ValueComparer.equalValue(oldValue,style1))
+ return style2; else
+ return style1;
+ }
+ } ;
+
+ /**
+ * Custom tester for 'LayerName' property which switches two
+ * Strings ('layout' and 'controls').
+ */
+ protected PropertyTester StringTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (util.ValueComparer.equalValue(oldValue,"layout"))
+ return "controls"; else
+ return "layout";
+ }
+ } ;
+
+ /**
+ * Tested with custom StyleTester which switches between two
+ * styles.
+ */
+ public void _Style() {
+ log.println("Testing with custom Property tester") ;
+ style1 = (XStyle) tEnv.getObjRelation("Style1");
+ style2 = (XStyle) tEnv.getObjRelation("Style2");
+ testProperty("Style", StyleTester) ;
+ }
+
+ /**
+ * Tested with custom StringTester which switches two
+ * Strings ('layout' and 'controls')
+ */
+ public void _LayerName() {
+ if (tEnv.getTestCase().getObjectName().equals("SwXShape")) {
+ log.println("There is only one Layer for SwXShape");
+ log.println("Therefore this property can't be changed");
+ tRes.tested("LayerName",true);
+ } else if (tEnv.getTestCase().getObjectName().equals("ScShapeObj")) {
+ log.println("There is only one Layer for ScShapeObj");
+ log.println("Therefore this property can't be changed");
+ tRes.tested("LayerName",true);
+ } else if (tEnv.getTestCase().getObjectName().equals("ScAnnotationShapeObj")) {
+ log.println("There is only one Layer for ScAnnotationShapeObj");
+ log.println("Therefore this property can't be changed");
+ String aName = null;
+ try {
+ aName = (String) oObj.getPropertyValue ("LayerName");
+ log.println("LayerName: '"+aName+"'");
+ } catch (Exception e) {
+ e.printStackTrace (log);
+ }
+ tRes.tested("LayerName",aName != null);
+ } else {
+ log.println("Testing with custom Property tester") ;
+ testProperty("LayerName", StringTester) ;
+ }
+ }
+
+ public void _ZOrder() {
+ if (tEnv.getTestCase().getObjectName().equals("ScAnnotationShapeObj")) {
+ log.println("There is only one Layer for ScAnnotationShapeObj");
+ log.println("Therefore this property can't be changed");
+ tRes.tested("ZOrder",true);
+ } else {
+ testProperty("ZOrder", Integer.valueOf(0), Integer.valueOf(1));
+ }
+ }
+
+ public void _LayerID() {
+ if (tEnv.getTestCase().getObjectName().equals("ScAnnotationShapeObj")) {
+ log.println("There is only one Layer for ScAnnotationShapeObj");
+ log.println("Therefore this property can't be changed");
+ Short aID = null;
+ try {
+ aID = (Short) oObj.getPropertyValue ("LayerID");
+ log.println("LayerID: '"+aID.intValue ()+"'");
+ } catch (Exception e) {
+ e.printStackTrace (log);
+ }
+ tRes.tested("LayerID",aID != null);
+ } else {
+ log.println("Testing with custom Property tester") ;
+ testProperty("LayerID");
+ }
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_ShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_ShapeDescriptor.java
new file mode 100644
index 000000000..1ffc66ee2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_ShapeDescriptor.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import util.ValueChanger;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.UnoRuntime;
+
+
+public class _ShapeDescriptor extends MultiMethodTest {
+
+ public XPropertySet oObj = null; // oObj filled by MultiMethodTest
+ public boolean ro = false;
+
+ public void _LayerID() {
+ com.sun.star.lang.XServiceInfo xInfo = UnoRuntime.queryInterface
+ (com.sun.star.lang.XServiceInfo.class, oObj);
+ if ( ! xInfo.supportsService("com.sun.star.drawing.ShapeDescriptor")) {
+ log.println("Service not available !!!!!!!!!!!!!");
+ tRes.tested("Supported", false);
+ }
+ ro = true;
+ changeProp("LayerID");
+ ro = false;
+ }
+ public void _LayerName() {
+ ro = true;
+ changeProp("LayerName");
+ ro = false;
+ }
+ public void _MoveProtect() {
+ changeProp("MoveProtect");
+ }
+ public void _Name() {
+ changeProp("Name");
+ }
+ public void _Printable() {
+ changeProp("Printable");
+ }
+ public void _SizeProtect() {
+ changeProp("SizeProtect");
+ }
+ public void _Style() {
+ changeProp("Style");
+ }
+
+ public void _Transformation() {
+ changeProp("Transformation");
+ }
+
+ public void changeProp(String name) {
+
+ Object gValue = null;
+ Object sValue = null;
+ Object ValueToSet = null;
+
+
+ try {
+ gValue = oObj.getPropertyValue(name);
+ if (!ro) {
+ ValueToSet = ValueChanger.changePValue(gValue);
+ if ( name.equals("Style") ) {
+ ValueToSet = newStyle(gValue);
+ }
+ oObj.setPropertyValue(name,ValueToSet);
+ sValue = oObj.getPropertyValue(name);
+ }
+
+ //check get-set methods
+ if (gValue.equals(sValue)) {
+ log.println("Value for '"+name+"' hasn't changed");
+ tRes.tested(name, false);
+ } else {
+ log.println("Property '"+name+"' OK");
+ tRes.tested(name, true);
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException ex) {
+ if (isOptional(name)) {
+ log.println("Property '"+name+
+ "' is optional and not supported");
+ tRes.tested(name,true);
+ } else {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ ex.printStackTrace(log);
+ tRes.tested(name, false);
+ }
+ }
+ catch (Exception e) {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ e.printStackTrace(log);
+ tRes.tested(name, false);
+ }
+
+
+ }// end of changeProp
+
+ public XStyle newStyle(Object oldStyle) {
+ XStyle Style1 = (XStyle) tEnv.getObjRelation("Style1");
+ XStyle Style2 = (XStyle) tEnv.getObjRelation("Style2");
+ XStyle back = null;
+ if ( (Style1!=null) && (Style2!=null) ) {
+ if ( ((XStyle) oldStyle).equals(Style1) ) {
+ back = Style2;
+ } else {
+ back = Style1;
+ }
+ }
+ return back;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_Text.java b/qadevOOo/tests/java/ifc/drawing/_Text.java
new file mode 100644
index 000000000..9ffffab6e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_Text.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+public class _Text extends MultiPropertyTest {
+
+ @Override
+ protected boolean compare(Object ob1, Object ob2) {
+
+ return super.compare(ob1, ob2);
+
+ }
+
+ public void _NumberingRules() {
+ //This property is readOnly
+ boolean bResult = false;
+
+ try {
+ Object theRules2 = oObj.getPropertyValue( "NumberingRules" );
+ if (!(theRules2 instanceof com.sun.star.container.XIndexReplace)) {
+ log.println("Property 'NumberingRules' is an instance of "+
+ theRules2.getClass().getName());
+ log.println("Expected was an instance of "+
+ "com.sun.star.container.XIndexReplace");
+ }
+ log.println("Trying to cast property 'NumberingRules' "+
+ "to XIndexReplace");
+ oObj.getPropertyValue( "NumberingRules" );
+ bResult = true;
+ } catch( Exception e ) {
+ log.println("Error occurred while trying to get property"+
+ " 'NumberingRules'");
+ e.printStackTrace( log );
+ bResult = false;
+ }
+
+ tRes.tested( "NumberingRules", bResult);
+ }
+
+} // finish class _Text
+
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_TextProperties.java b/qadevOOo/tests/java/ifc/drawing/_TextProperties.java
new file mode 100644
index 000000000..29f40c01a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_TextProperties.java
@@ -0,0 +1,58 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.TextProperties</code>
+* service properties :
+* <ul>
+* <li><code> IsNumbering</code></li>
+* <li><code> NumberingRules</code></li>
+* <li><code> TextAutoGrowHeight</code></li>
+* <li><code> TextAutoGrowWidth</code></li>
+* <li><code> TextContourFrame</code></li>
+* <li><code> TextFitToSize</code></li>
+* <li><code> HorizontalAdjust</code></li>
+* <li><code> VerticalAdjust</code></li>
+* <li><code> TextLeftDistance</code></li>
+* <li><code> TextRightDistance</code></li>
+* <li><code> TextUpperDistance</code></li>
+* <li><code> TextLowerDistance</code></li>
+* <li><code> TextMaximumFrameHeight</code></li>
+* <li><code> TextMaximumFrameWidth</code></li>
+* <li><code> TextMinimumFrameHeight</code></li>
+* <li><code> TextMinimumFrameWidth</code></li>
+* <li><code> TextAnimationAmount</code></li>
+* <li><code> TextAnimationCount</code></li>
+* <li><code> TextAnimationDelay</code></li>
+* <li><code> TextAnimationDirection</code></li>
+* <li><code> TextAnimationKind</code></li>
+* <li><code> TextAnimationStartInside</code></li>
+* <li><code> TextAnimationStopInside</code></li>
+* <li><code> TextWritingMode</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.TextProperties
+*/
+public class _TextProperties extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_TextShape.java b/qadevOOo/tests/java/ifc/drawing/_TextShape.java
new file mode 100644
index 000000000..e2a5c8a22
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_TextShape.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.drawing.TextShape</code>
+* service properties :
+* <ul>
+* <li><code> CornerRadius</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.drawing.TextShape
+*/
+public class _TextShape extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_TextShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_TextShapeDescriptor.java
new file mode 100644
index 000000000..3a4012399
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_TextShapeDescriptor.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiPropertyTest;
+
+
+public class _TextShapeDescriptor extends MultiPropertyTest {
+
+} // finish class _TextShapeDescriptor
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XConnectorShape.java b/qadevOOo/tests/java/ifc/drawing/_XConnectorShape.java
new file mode 100644
index 000000000..ef9395f33
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XConnectorShape.java
@@ -0,0 +1,139 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.drawing.ConnectionType;
+import com.sun.star.drawing.XConnectableShape;
+import com.sun.star.drawing.XConnectorShape;
+import com.sun.star.drawing.XShape;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.XConnectorShape</code>
+* interface methods :
+* <ul>
+* <li><code> connectStart()</code></li>
+* <li><code> connectEnd()</code></li>
+* <li><code> disconnectBegin()</code></li>
+* <li><code> disconnectEnd()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XConnectorShape.Shapes'</code>
+* (of type <code>com.sun.star.drawing.XShape[]</code>):
+* an array of two shapes which <b>must</b> implement
+* <code>com.sun.star.drawing.XConnectableShape</code>
+* interface and are used for being connected by
+* connector shape.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XConnectorShape
+*/
+public class _XConnectorShape extends MultiMethodTest {
+
+ public XConnectorShape oObj = null; //oObj filled by MultiMethodTest
+ private XConnectableShape shape1 = null,
+ shape2 = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throw StatusException If the relation is not found or shapes don't
+ * support <code>XConnectableShape</code> interface.
+ */
+ @Override
+ public void before() {
+ log.println("No shapes implementing XConnectableShape still found.");
+ XShape[] shapes = (XShape[])
+ tEnv.getObjRelation("XConnectorShape.Shapes") ;
+ if (shapes == null) throw new StatusException(Status.failed
+ ("Relation not found.")) ;
+ shape1 = UnoRuntime.queryInterface
+ (XConnectableShape.class, shapes[0]) ;
+ shape2 = UnoRuntime.queryInterface
+ (XConnectableShape.class, shapes[1]) ;
+ if (shape1 == null || shape2 == null) throw new StatusException
+ (Status.failed("Shapes don't implement XConnectableShape"+
+ " interface.")) ;
+ }
+
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _connectStart() {
+ oObj.connectStart(shape1, ConnectionType.AUTO);
+
+ tRes.tested("connectStart()", true) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _connectEnd() {
+ oObj.connectEnd(shape2, ConnectionType.AUTO);
+
+ tRes.tested("connectEnd()", true) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> connectStart() </code> : first shape needs to be
+ * connected. </li>
+ * </ul>
+ */
+ public void _disconnectBegin() {
+ requiredMethod("connectStart()");
+
+ oObj.disconnectBegin(shape1);
+
+ tRes.tested("disconnectBegin()", true) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> connectEnd() </code> : first shape needs to be
+ * connected. </li>
+ * </ul>
+ */
+ public void _disconnectEnd() {
+ requiredMethod("connectEnd()");
+
+ oObj.disconnectEnd(shape2);
+
+ tRes.tested("disconnectEnd()", true) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XControlShape.java b/qadevOOo/tests/java/ifc/drawing/_XControlShape.java
new file mode 100644
index 000000000..fadf945a8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XControlShape.java
@@ -0,0 +1,96 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import util.FormTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.drawing.XControlShape</code>
+* interface methods :
+* <ul>
+* <li><code> getControl()</code></li>
+* <li><code> setControl()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'xDoc'</code> (of type <code>XComponent</code>):
+* the document where shape tested is situated. This document
+* must also implement <code>XMultiServiceFactory</code> interface
+* to create some control model. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XControlShape
+*/
+public class _XControlShape extends MultiMethodTest {
+
+ public XControlShape oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _getControl() {
+ oObj.getControl();
+ tRes.tested("getControl()", true) ;
+ }
+
+ /**
+ * With the help of document passed as relation, a new button control
+ * model is created and set as a control. <p>
+ * Has <b> OK </b> status if <code>getControl()</code> method returns
+ * the same control as was set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getControl() </code> </li>
+ * </ul>
+ */
+ public void _setControl()
+ throws com.sun.star.uno.Exception
+ {
+ requiredMethod("getControl()") ;
+
+ XInterface oNewControl = FormTools.createControl
+ ((XComponent)tEnv.getObjRelation("xDoc"), "ComboBox") ;
+
+ XControlModel xControl = UnoRuntime.queryInterface
+ (XControlModel.class, oNewControl) ;
+
+ oObj.setControl(xControl) ;
+
+ XControlModel gControl = oObj.getControl() ;
+
+ if (oNewControl.equals(gControl))
+ tRes.tested("setControl()", true) ;
+ else {
+ log.println("Control set is not equal to control get") ;
+ tRes.tested("setControl()", false) ;
+ }
+ }
+
+} // finish class _XControlShape
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XDrawPageDuplicator.java b/qadevOOo/tests/java/ifc/drawing/_XDrawPageDuplicator.java
new file mode 100644
index 000000000..75073765b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XDrawPageDuplicator.java
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPageDuplicator;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Testing <code>com.sun.star.drawing.XDrawPageDuplicator</code>
+* interface methods :
+* <ul>
+* <li><code> duplicate()</code></li>
+* </ul> <p>
+* The object tested <b> must implement </b>
+* <code>XDrawPagesSupplier</code> interface to have access to draw
+* pages collection. <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.drawing.XDrawPageDuplicator
+*/
+public class _XDrawPageDuplicator extends MultiMethodTest {
+ public XDrawPageDuplicator oObj = null;
+
+ /**
+ * First queries object tested for <code>XDrawPagesSupplier</code>
+ * interface and obtains one draw page from document. Then it
+ * tries to duplicate it.<p>
+ * Has <b> OK </b> status if the method returns not null value and
+ * this value is not equal to the page which was duplicated. <p>
+ */
+ public void _duplicate(){
+ boolean result = false;
+ XInterface testobj = tEnv.getTestObject();
+ XDrawPagesSupplier PS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, testobj);
+ XDrawPages DPs = PS.getDrawPages();
+ XDrawPage DP = null;
+ try {
+ DP = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),DPs.getByIndex(0));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while testing: " + e);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while testing: " + e);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while testing: " + e);
+ }
+
+ if (DP != null) {
+ XDrawPage newPage = oObj.duplicate(DP);
+ result = (newPage != null) && !(newPage.equals(DP));
+ }
+ tRes.tested("duplicate()", result);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XDrawPageSupplier.java b/qadevOOo/tests/java/ifc/drawing/_XDrawPageSupplier.java
new file mode 100644
index 000000000..dd4b20601
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XDrawPageSupplier.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.drawing;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPageSupplier;
+import lib.MultiMethodTest;
+
+/**
+ *
+ */
+public class _XDrawPageSupplier extends MultiMethodTest {
+ public XDrawPageSupplier oObj = null;
+
+ public void _getDrawPage() {
+ XDrawPage xPage = oObj.getDrawPage();
+ log.println("xPage: " + util.utils.getImplName(xPage));
+ tRes.tested("getDrawPage()", xPage != null);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/drawing/_XDrawPages.java b/qadevOOo/tests/java/ifc/drawing/_XDrawPages.java
new file mode 100644
index 000000000..a2cf2c3b3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XDrawPages.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+
+/**
+* Testing <code>com.sun.star.drawing.XDrawPages</code>
+* interface methods :
+* <ul>
+* <li><code> insertNewByIndex()</code></li>
+* <li><code> remove()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XDrawPages
+*/
+public class _XDrawPages extends MultiMethodTest {
+ public XDrawPages oObj = null;
+ public XDrawPage DrawPage;
+
+ /**
+ * Inserts a draw page at index 0. Number of pages is obtained
+ * before and after insertion.<p>
+ * Has <b> OK </b> status if the value returned is not null and
+ * number of pages increases by one after insertion. <p>
+ */
+ public void _insertNewByIndex(){
+ boolean result = true;
+ log.println("testing insertNewByIndex() ... ");
+
+ int cntBefore = oObj.getCount();
+ DrawPage = oObj.insertNewByIndex(0);
+ int cntAfter = oObj.getCount();
+ result = DrawPage != null &&
+ cntAfter == cntBefore + 1 ;
+
+ tRes.tested("insertNewByIndex()", result);
+ } // end InsertNewByIndex
+
+ /**
+ * Removes the draw page inserted before. Number of pages is obtained
+ * before and after removing.<p>
+ * Has <b> OK </b> status if the number of pages decreases by one
+ * after removing. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertByIndex() </code> : the page to be removed must
+ * be inserted first.</li>
+ * </ul>
+ */
+ public void _remove(){
+ requiredMethod("insertNewByIndex()") ;
+
+ boolean result = true;
+ log.println("removing DrawPage...");
+
+ int cntBefore = oObj.getCount();
+ oObj.remove(DrawPage);
+ int cntAfter = oObj.getCount();
+ result = cntAfter + 1 == cntBefore ;
+
+ tRes.tested("remove()", result);
+ } // end remove()
+
+} // end XDrawPages
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XDrawPagesSupplier.java b/qadevOOo/tests/java/ifc/drawing/_XDrawPagesSupplier.java
new file mode 100644
index 000000000..8350f665d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XDrawPagesSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+
+/**
+* Testing <code>com.sun.star.drawing.XDrawPagesSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getDrawPages()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XDrawPagesSupplier
+*/
+public class _XDrawPagesSupplier extends MultiMethodTest {
+ public XDrawPagesSupplier oObj = null;
+
+ /**
+ * Gets draw page collection. <p>
+ * Has <b> OK </b> status if the value returned is not null. <p>
+ */
+ public void _getDrawPages(){
+ boolean result = true;
+ XDrawPages DrawPages = null;
+
+ log.println("testing getDrawPages() ... ");
+
+ DrawPages = oObj.getDrawPages();
+ result = DrawPages != null;
+
+ tRes.tested("getDrawPages()", result);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XDrawView.java b/qadevOOo/tests/java/ifc/drawing/_XDrawView.java
new file mode 100644
index 000000000..30f54f67d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XDrawView.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawView;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.drawing.XDrawView</code>
+* interface methods :
+* <ul>
+* <li><code> setCurrentPage()</code></li>
+* <li><code> getCurrentPage()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Pages'</code> (of type <code>XDrawPages</code>):
+* needed to have the access to pages collection.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XDrawView
+*/
+public class _XDrawView extends MultiMethodTest {
+
+ public XDrawView oObj = null;
+ public XDrawPage the_page = null;
+
+ /**
+ * This methods gets the current DrawPage.<p>
+ * Has <b> OK </b> status if the returned DrawPage
+ * isn't empty.
+ */
+ public void _getCurrentPage(){
+ the_page = oObj.getCurrentPage();
+ tRes.tested("getCurrentPage()",the_page != null);
+ } // end getCurrentPage
+
+ /**
+ * This methods sets the current DrawPage<br>
+ * First a new DrawPage is inserted in the document.
+ * Then this DrawPage is set as current Page.
+ * Has <b> OK </b> status if the getCurrentPage() method returns
+ * the DrawPage that was previously set.
+ * @see ifc.drawing._XDrawPages
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getCurrentPage() </code> </li>
+ * </ul>
+ */
+ public void _setCurrentPage(){
+ requiredMethod("getCurrentPage()");
+ try {
+ XDrawPages the_pages = (XDrawPages) tEnv.getObjRelation("Pages");
+ the_pages.insertNewByIndex(0);
+ XDrawPage newPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),the_pages.getByIndex(1));
+ oObj.setCurrentPage(newPage);
+ XDrawPage getting = oObj.getCurrentPage();
+ boolean eq = newPage.equals(getting);
+ if (!eq) {
+ log.println("Getting: "+getting.hasElements());
+ log.println("Expected: "+newPage.hasElements());
+ }
+ //back to the previous page
+ oObj.setCurrentPage(the_page);
+ tRes.tested("setCurrentPage()",eq);
+ } catch (com.sun.star.lang.WrappedTargetException ex) {
+ log.println("Exception occurred while checking 'setCurrentPage()'");
+ ex.printStackTrace(log);
+ tRes.tested("setCurrentPage()",false);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("Exception occurred while checking 'setCurrentPage()'");
+ ex.printStackTrace(log);
+ tRes.tested("setCurrentPage()",false);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while checking 'setCurrentPage()'");
+ ex.printStackTrace(log);
+ tRes.tested("setCurrentPage()",false);
+ }
+ } // end setCurrentPage
+
+} // end DrawView
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XGluePointsSupplier.java b/qadevOOo/tests/java/ifc/drawing/_XGluePointsSupplier.java
new file mode 100644
index 000000000..c29963f5d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XGluePointsSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.drawing.XGluePointsSupplier;
+
+/**
+* Testing <code>com.sun.star.drawing.XGluePointsSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getGluePoints()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XGluePointsSupplier
+*/
+public class _XGluePointsSupplier extends MultiMethodTest {
+ public XGluePointsSupplier oObj = null;
+
+ /**
+ * Gets gluepoints collection. <p>
+ * Has <b> OK </b> status if the value returned is not null. <p>
+ */
+ public void _getGluePoints(){
+ boolean result = true;
+ XIndexContainer points = null;
+
+ log.println("testing getDrawPages() ... ");
+
+ points = oObj.getGluePoints();
+ result = points != null;
+
+ tRes.tested("getGluePoints()", result);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XLayerManager.java b/qadevOOo/tests/java/ifc/drawing/_XLayerManager.java
new file mode 100644
index 000000000..b44ce0fa7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XLayerManager.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+import util.XInstCreator;
+
+import com.sun.star.drawing.XLayer;
+import com.sun.star.drawing.XLayerManager;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.drawing.XLayerManager</code>
+* interface methods :
+* <ul>
+* <li><code> insertNewByIndex()</code></li>
+* <li><code> remove()</code></li>
+* <li><code> attachShapeToLayer()</code></li>
+* <li><code> getLayerForShape()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Shape'</code> (of type <code>util.XInstCreator</code>):
+* instance creator which can create shapes.</li>
+* <li> <code>'Shapes'</code>
+* (of type <code>com.sun.star.drawing.XShapes</code>):
+* The collection of shapes in the document. Is used
+* to add new created shapes.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XLayerManager
+*/
+public class _XLayerManager extends MultiMethodTest {
+
+ public XLayerManager oObj = null; // oObj filled by MultiMethodTest
+ XInstCreator shape = null;
+ public XInterface oShape = null;
+ public XLayer oL = null;
+
+ /**
+ * Inserts a new layer into collection. <p>
+ * Has <b> OK </b> status if the value returned is not null. <p>
+ */
+ public void _insertNewByIndex(){
+ log.println("insertNewByName() ... ");
+ oL = oObj.insertNewByIndex(0);
+ tRes.tested("insertNewByIndex()", oL != null);
+ }
+
+ /**
+ * First a shape created and inserted into the document using
+ * relations retrieved. Attaches this shape to layer created before. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertNewByIndex </code> : to have a layer attach to.</li>
+ * </ul>
+ */
+ public void _attachShapeToLayer() {
+ requiredMethod("insertNewByIndex()");
+ shape = (XInstCreator)tEnv.getObjRelation("Shape");
+ oShape = shape.createInstance();
+ XShape oSh = (XShape) oShape;
+ XShapes oShapes = (XShapes) tEnv.getObjRelation("Shapes");
+ oShapes.add(oSh);
+ boolean result = false;
+
+ log.println("attachShapeToLayer() ... ");
+
+ oObj.attachShapeToLayer((XShape) oShape,oL);
+ result = true;
+
+ tRes.tested("attachShapeToLayer()", result);
+ }
+
+ /**
+ * Gets the layer for shape which was attached before. <p>
+ * Has <b> OK </b> status if the names of layer get and
+ * the layer attached before are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> attachShapeToLayer() </code> </li>
+ * </ul>
+ */
+ public void _getLayerForShape() {
+ requiredMethod("attachShapeToLayer()");
+ log.println("getLayerForShape() ... ");
+ XLayer Lay1 = oL;
+ XLayer Lay2 = oObj.getLayerForShape((XShape)oShape);
+ Object Obj1 = null;
+ Object Obj2 = null;
+
+ try {
+ Obj1 = Lay1.getPropertyValue("Name");
+ Obj2 = Lay2.getPropertyValue("Name");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ }
+
+ tRes.tested("getLayerForShape()",ValueComparer.equalValue(Obj1,Obj2));
+ }
+
+ /**
+ * Test removes the layer added before. Number of layers are get before
+ * and after removing.<p>
+ * Has <b> OK </b> status if number of layers decreases by one. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLayerForShape() </code> </li>
+ * </ul>
+ */
+ public void _remove () {
+ requiredMethod("getLayerForShape()");
+ boolean result = true ;
+ // get the current thread's holder
+ log.println("removing the Layer...");
+
+ int cntBefore = oObj.getCount();
+
+ try {
+ oObj.remove(oL);
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ int cntAfter = oObj.getCount();
+
+ result = cntBefore == cntAfter + 1;
+
+ tRes.tested("remove()", result);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XLayerSupplier.java b/qadevOOo/tests/java/ifc/drawing/_XLayerSupplier.java
new file mode 100644
index 000000000..ced5953ee
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XLayerSupplier.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.drawing.XLayerManager;
+import com.sun.star.drawing.XLayerSupplier;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.XLayerSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getLayerManager()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XLayerSupplier
+*/
+public class _XLayerSupplier extends MultiMethodTest{
+ public XLayerSupplier oObj = null;
+
+ /**
+ * Gets the manager and it is queried for <code>XLayerManager</code>. <p>
+ * Has <b> OK </b> status if returned value is successfully
+ * queried for <code>XLayerManager</code>. <p>
+ */
+ public void _getLayerManager(){
+ XNameAccess oNA =null;
+ XLayerManager oLM = null;
+ boolean result = true;
+
+ log.println("testing getLayerManager() ... ");
+
+ oNA = oObj.getLayerManager();
+ oLM = UnoRuntime.queryInterface ( XLayerManager.class, oNA);
+ result = oLM != null;
+
+ tRes.tested("getLayerManager()", result);
+ } // finished test
+
+} // end XLayerSupplier
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XMasterPageTarget.java b/qadevOOo/tests/java/ifc/drawing/_XMasterPageTarget.java
new file mode 100644
index 000000000..a1716bbe5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XMasterPageTarget.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XMasterPageTarget;
+
+/**
+* Testing <code>com.sun.star.drawing.XMasterPageTarget</code>
+* interface methods :
+* <ul>
+* <li><code> getMasterPage()</code></li>
+* <li><code> setMasterPage()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'MasterPageSupplier'</code>
+* (of type <code>XDrawPages</code>):
+* the relation is used to create a new draw page. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XMasterPageTarget
+*/
+public class _XMasterPageTarget extends MultiMethodTest{
+
+ public XMasterPageTarget oObj = null;
+ public XDrawPage DrawPage = null;
+
+ /**
+ * Gets the master page and stores. <p>
+ * Has <b> OK </b> status if the value returned is not null. <p>
+ */
+ public void _getMasterPage(){
+ boolean result = false;
+ log.println("get the MasterPage");
+
+ DrawPage = oObj.getMasterPage();
+ result = DrawPage != null ;
+
+ tRes.tested("getMasterPage()",result);
+ }
+
+ /**
+ * Gets the pages supplier from relation. Then a new page is created,
+ * inserted and set as master page.<p>
+ * Has <b> OK </b> status if the master page get is equal to page
+ * which was set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getMasterPage() </code> : to get old master page.</li>
+ * </ul>
+ */
+ public void _setMasterPage() {
+ requiredMethod("getMasterPage()") ;
+
+ boolean result = true;
+ XDrawPage oNewPage = null;
+
+ XDrawPages oPages = (XDrawPages) tEnv.getObjRelation("MasterPageSupplier");
+ log.println("inserting new MasterPage");
+ oNewPage = oPages.insertNewByIndex(oPages.getCount());
+
+ // save the old MasterPage
+ XDrawPage oOldPage = DrawPage;
+
+ // set the new Page as MasterPage
+ log.println("set the new MasterPage");
+ oObj.setMasterPage(oNewPage);
+
+ // get the new MasterPage
+ DrawPage = oObj.getMasterPage();
+
+ // test the different MasterPages
+ if (DrawPage.equals(oOldPage)) result = false;
+
+ tRes.tested("setMasterPage()",result);
+ }
+
+} // end of XMasterPageTarget
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XMasterPagesSupplier.java b/qadevOOo/tests/java/ifc/drawing/_XMasterPagesSupplier.java
new file mode 100644
index 000000000..313f0f142
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XMasterPagesSupplier.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XMasterPagesSupplier;
+
+/**
+* Testing <code>com.sun.star.drawing.XMasterPagesSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getMasterPages()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XMasterPagesSupplier
+*/
+public class _XMasterPagesSupplier extends MultiMethodTest{
+ public XMasterPagesSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the value returned is not null.
+ */
+ public void _getMasterPages(){
+ boolean result = false;
+ XDrawPages DrawPages = null;
+
+ log.println("get the MasterPages");
+
+ DrawPages = oObj.getMasterPages();
+ result = DrawPages != null;
+
+ tRes.tested("getMasterPages()",result);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShape.java b/qadevOOo/tests/java/ifc/drawing/_XShape.java
new file mode 100644
index 000000000..8f6b5d791
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShape.java
@@ -0,0 +1,186 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+import com.sun.star.drawing.XShape;
+
+/**
+* Testing <code>com.sun.star.drawing.XShape</code>
+* interface methods :
+* <ul>
+* <li><code> getPosition()</code></li>
+* <li><code> setPosition()</code></li>
+* <li><code> getSize()</code></li>
+* <li><code> setSize()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'NoPos'</code> <b>optional</b>
+* (of type <code>Object</code>):
+* if this relation exists then position setting is
+* not supported by the object.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShape
+*/
+public class _XShape extends MultiMethodTest {
+
+ public XShape oObj = null; //oObj filled by MultiMethodTest
+
+ Size sOld = new Size();
+ Point pOld = new Point();
+ Size sNew = new Size();
+ Point pNew = new Point();
+
+ /**
+ * Gets the size and stores it. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _getSize(){
+
+ boolean result = false;
+
+ log.println("get the size");
+
+ sOld = oObj.getSize();
+ result = true;
+
+ tRes.tested("getSize()", result);
+ }
+
+ /**
+ * Gets the current position and stores it if the object
+ * supports position setting. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown or object doesn't
+ * support position setting. <p>
+ */
+ public void _getPosition(){
+ boolean result = false;
+
+ String obj = (String) tEnv.getObjRelation("NoPos");
+ if (obj != null) {
+ log.println("Can't be used with "+obj);
+ result = true;
+ tRes.tested("getPosition()", result);
+ return;
+ }
+
+ log.println("get the position");
+ pOld = oObj.getPosition();
+ result = true;
+
+ tRes.tested("getPosition()", result);
+ }
+
+ /**
+ * Sets a new size different from the size get before. <p>
+ * Has <b> OK </b> status if the size returned by <code>getSize()</code>
+ * is equal to the size which was set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSize() </code> : to set the original size changed.</li>
+ * </ul>
+ */
+ public void _setSize(){
+ requiredMethod("getSize()");
+
+ boolean result = true;
+
+ String obj = (String) tEnv.getObjRelation("NoSetSize");
+ if (obj != null) {
+ log.println("Can't be used with " + obj);
+ tRes.tested("setSize()", true);
+ return;
+ }
+ // get the current thread's holder
+ sNew = new Size(sOld.Width + 10,sOld.Height + 10) ;
+
+ //set new size
+ log.println("change the size");
+ try {
+ oObj.setSize(sNew);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while calling the method :" + e);
+ result = true ;
+ }
+
+ Size gSize = oObj.getSize() ;
+
+ log.println("Previously: "+sOld.Height+";"+sOld.Width);
+ log.println("Expected: "+sNew.Height+";"+sNew.Width);
+ log.println("Getting: "+gSize.Height+";"+gSize.Width);
+
+ //errors in calculation from points/twips less than 1 are acceptable
+ result &= (sNew.Height-gSize.Height <= 2) && (sNew.Width-gSize.Width <= 2);
+
+ if (result && ((sNew.Height-gSize.Height != 0) || (sNew.Width-gSize.Width != 0))){
+ log.println("NOTE: there is a difference between the expected and the gotten value. " +
+ "This might be ok because of problems in calculation from points <-> twips");
+ }
+ tRes.tested("setSize()", result);
+ }
+
+ /**
+ * If object doesn't support position setting the test does nothing.
+ * Else a new position is created and set.<p>
+ * Has <b> OK </b> status if get position is equal to set position or
+ * if the position setting isn't supported. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPosition() </code> : to change old position. </li>
+ * </ul>
+ */
+ public void _setPosition(){
+ requiredMethod("getPosition()");
+
+ boolean result = true;
+
+ String obj = (String) tEnv.getObjRelation("NoPos");
+ if (obj != null) {
+ log.println("Can't be used with " + obj);
+ tRes.tested("setPosition()", true);
+ return;
+ }
+
+ // get the current thread's holder
+ pNew = new Point(pOld.X + 100, pOld.Y + 100) ;
+ oObj.setPosition(pNew);
+
+ Point gPos = oObj.getPosition() ;
+
+ log.println("Previously: "+pOld.X+";"+pOld.Y);
+ log.println("Expected: "+pNew.X+";"+pNew.Y);
+ log.println("Getting: "+gPos.X+";"+gPos.Y);
+
+ result = !util.ValueComparer.equalValue(pOld, gPos) ;
+
+ tRes.tested("setPosition()", result);
+ }
+
+
+} // finish class _XShape
+
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShapeBinder.java b/qadevOOo/tests/java/ifc/drawing/_XShapeBinder.java
new file mode 100644
index 000000000..5ebe37e1c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShapeBinder.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapeBinder;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.XShapeBinder</code>
+* interface methods :
+* <ul>
+* <li><code> bind()</code></li>
+* <li><code> unbind()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DrawPage'</code> (must implement <code>XShapes</code>):
+* the collection of shapes in a document which used to create a group.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShapeBinder
+*/
+public class _XShapeBinder extends MultiMethodTest {
+
+ public XShapeBinder oObj = null;
+ XShape group = null;
+ int countBeforeBind = 0;
+ XShapes oShapes = null;
+
+ /**
+ * Retrieves draw page collection from relation and binds them. <p>
+ *
+ * Has <b> OK </b> status if the shape group returned is not null
+ * number of shapes in collection is 1 (shapes are bound into a single
+ * shape). <p>
+ */
+ public void _bind () {
+ XDrawPage dp = (XDrawPage) tEnv.getObjRelation("DrawPage");
+ oShapes = UnoRuntime.queryInterface( XShapes.class, dp );
+ boolean result = false;
+ log.println("testing bind() ... ");
+ countBeforeBind = oShapes.getCount();
+ log.println("Count before bind:" + countBeforeBind);
+ group = oObj.bind(oShapes);
+ int countAfterBind = oShapes.getCount();
+ log.println("Count after bind:" + countAfterBind);
+ result = group != null && countAfterBind == 1;
+
+ tRes.tested("bind()", result);
+
+ }
+
+ /**
+ * Unbinds the group created before. <p>
+ *
+ * Has <b> OK </b> status if number of shapes in collection
+ * increases after the method call. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> bind() </code> : to create a shape group </li>
+ * </ul>
+ */
+ public void _unbind () {
+ requiredMethod("bind()");
+ boolean result = false;
+
+ // get the current thread's holder
+ log.println("unbinding the shape...");
+
+ oObj.unbind(group);
+ int countAfterUnbind = oShapes.getCount();
+ log.println("Count after unbind:" + countAfterUnbind);
+ result = countAfterUnbind >= countBeforeBind;
+
+ tRes.tested("unbind()", result);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShapeCombiner.java b/qadevOOo/tests/java/ifc/drawing/_XShapeCombiner.java
new file mode 100644
index 000000000..8cc1cf754
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShapeCombiner.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapeCombiner;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.XShapeCombiner</code>
+* interface methods :
+* <ul>
+* <li><code> combine()</code></li>
+* <li><code> split()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DrawPage'</code> (must implement <code>XShapes</code>):
+* the collection of shapes in a document which used to create a group.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShapeCombiner
+*/
+public class _XShapeCombiner extends MultiMethodTest {
+
+ public XShapeCombiner oObj = null; //filled by MultiMethodTest
+ protected XShape oGroup = null;
+ int countBeforeComb = 0;
+ XShapes oShapes = null;
+
+ /**
+ * Retrieves draw page collection from relation and combines them. <p>
+ * Has <b> OK </b> status if the shape group returned is not null nd
+ * number of shapes in collection is 1 (shapes are combined into a single
+ * shape). <p>
+ */
+ public void _combine () {
+ XDrawPage dp = (XDrawPage) tEnv.getObjRelation("DrawPage");
+ oShapes = UnoRuntime.queryInterface( XShapes.class, dp );
+
+ boolean result = false;
+
+ log.println("testing combine() ... ");
+ countBeforeComb = oShapes.getCount();
+ log.println("Count before combining:" + countBeforeComb);
+ oGroup = oObj.combine(oShapes);
+ int countAfterComb = oShapes.getCount();
+ log.println("Count after combining:" + countAfterComb);
+ result = oGroup != null && countAfterComb == 1;
+
+ tRes.tested("combine()", result);
+ }
+
+ /**
+ * Splits the group created before. <p>
+ *
+ * Has <b> OK </b> status if number of shapes in collection after
+ * <code>split</code> is the same as before <code>combine</code>. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> combine() </code> : to create a shape group </li>
+ * </ul>
+ */
+ public void _split() {
+ requiredMethod("combine()");
+
+ boolean result = false;
+
+ log.println("splitting the shape...");
+
+ oObj.split(oGroup);
+ int countAfterSplit = oShapes.getCount();
+ log.println("Count after split:" + countAfterSplit);
+ result = countAfterSplit == countBeforeComb;
+
+ tRes.tested("split()", result);
+ } // end of split
+
+} // end of XShapeCombiner
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShapeDescriptor.java b/qadevOOo/tests/java/ifc/drawing/_XShapeDescriptor.java
new file mode 100644
index 000000000..ef088b91c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShapeDescriptor.java
@@ -0,0 +1,87 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XShapeDescriptor;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.XShapeDescriptor</code>
+* interface methods :
+* <ul>
+* <li><code> getShapeType()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShapeDescriptor
+*/
+public class _XShapeDescriptor extends MultiMethodTest {
+
+ public XShapeDescriptor oObj = null;
+ boolean result = true;
+
+ /**
+ * Gets the type of shape. This type must be a service name which
+ * is supported by object (except of ChartObject and Frame shapes).
+ * The object is queried for <code>XServiceInfo</code> and
+ * the type is checked to be among supported service names.<p>
+ *
+ * Has <b> OK </b> status if the type is found among supported
+ * services. Or if the object represents a text frame.<p>
+ */
+ public void _getShapeType() {
+ result = false;
+
+ String stype = oObj.getShapeType();
+ log.println("Current Shape Type is " + stype);
+
+ XServiceInfo SI = UnoRuntime.queryInterface(XServiceInfo.class, oObj);
+
+ String[] serviceNames = SI.getSupportedServiceNames();
+
+ log.println("Supported services :");
+ for (int i = 0; i < serviceNames.length; i++) {
+ log.println(" " + serviceNames[i]);
+ if (serviceNames[i].equals(stype))
+ result = true;
+ }
+
+ //remark: we should provide the expected name as ObjRelation
+
+ //Chart has its own behaviour it always return 'ChartObject'
+ if (stype.equals("com.sun.star.chart.ChartObject")) result=true;
+ if (stype.equals("com.sun.star.drawing.ControlShape")) result=true;
+ if (stype.equals("com.sun.star.drawing.ClosedBezierShape")) result=true;
+ if (stype.equals("com.sun.star.drawing.CaptionShape")) result=true;
+
+ //Writer has its own behaviour it returns a 'FrameShape'
+ if (stype.equals("FrameShape")) result=true;
+
+ if (!result) {
+ log.println("Service " + stype + " not supported in the object.");
+ }
+
+ tRes.tested("getShapeType()", result);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShapeGroup.java b/qadevOOo/tests/java/ifc/drawing/_XShapeGroup.java
new file mode 100644
index 000000000..883bd1481
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShapeGroup.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.drawing.XShapeGroup;
+
+/**
+* Testing <code>com.sun.star.drawing.XShapeGroup</code>
+* interface methods :
+* <ul>
+* <li><code> enterGroup()</code></li>
+* <li><code> leaveGroup()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShapeGroup
+*/
+public class _XShapeGroup extends MultiMethodTest {
+ public XShapeGroup oObj = null;
+
+ /**
+ * The method called.
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _enterGroup() {
+ log.println("Testing enterGroup()...");
+ oObj.enterGroup();
+ tRes.tested("enterGroup()", true);
+ }
+
+ /**
+ * The method called.
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _leaveGroup() {
+ log.println("Testing leaveGroup()...");
+ oObj.leaveGroup();
+ tRes.tested("leaveGroup()", true);
+ }
+
+} // end of _XShapeGroup
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShapeGrouper.java b/qadevOOo/tests/java/ifc/drawing/_XShapeGrouper.java
new file mode 100644
index 000000000..26b5045d1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShapeGrouper.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapeGroup;
+import com.sun.star.drawing.XShapeGrouper;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.drawing.XShapeGrouper</code>
+* interface methods :
+* <ul>
+* <li><code> group()</code></li>
+* <li><code> ungroup()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DrawPage'</code> (must implement <code>XShapes</code>):
+* the collection of shapes in a document which used to create a group.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShapeGrouper
+*/
+public class _XShapeGrouper extends MultiMethodTest {
+
+ public XShapeGrouper oObj = null; // oObj filled by MultiMethodTest
+ XShape oGroup = null;
+ int countAfterGr = 0;
+ XShapes oShapes = null;
+
+ /**
+ * Retrieves draw page collection from relation and groups them. <p>
+ * Has <b> OK </b> status if the shape group returned is not null. <p>
+ */
+ public void _group() {
+ Object dp = tEnv.getObjRelation("DrawPage");
+ if (dp == null)
+ throw new StatusException(Status.failed("Relation not found")) ;
+
+ oShapes = UnoRuntime.queryInterface( XShapes.class, dp );
+ boolean result = false;
+ log.println("Grouping " + oShapes.getCount() + " shapes ... ");
+
+ int countBeforeGr = oShapes.getCount();
+ oGroup = oObj.group(oShapes);
+ countAfterGr = oShapes.getCount();
+ log.println("Number of shapes after grouping: " + countAfterGr);
+ result = oGroup != null ;
+ result &= countAfterGr < countBeforeGr;
+
+ tRes.tested("group()", result);
+ }
+
+ /**
+ * Ungroups the group created before. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> group() </code> : to create a shape group </li>
+ * </ul>
+ */
+ public void _ungroup() {
+ requiredMethod("group()");
+ boolean result = false;
+ log.println("ungrouping the shape...");
+
+ oObj.ungroup((XShapeGroup)oGroup);
+ int countAfterUnGr = oShapes.getCount();
+ log.println("Number of shapes after ungrouping: " + countAfterUnGr);
+
+ result = countAfterUnGr != countAfterGr;
+
+ tRes.tested("ungroup()", result);
+ }
+}
+
+
+
diff --git a/qadevOOo/tests/java/ifc/drawing/_XShapes.java b/qadevOOo/tests/java/ifc/drawing/_XShapes.java
new file mode 100644
index 000000000..fc23687b8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/drawing/_XShapes.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.drawing;
+
+import lib.MultiMethodTest;
+import util.XInstCreator;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Testing <code>com.sun.star.drawing.XShapes</code>
+* interface methods :
+* <ul>
+* <li><code> add()</code></li>
+* <li><code> remove()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Shape'</code> (of type <code>XShape</code>):
+* a shape which can be inserted into shape collection. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.drawing.XShapes
+*/
+public class _XShapes extends MultiMethodTest {
+
+ public XShapes oObj = null; // oObj filled by MultiMethodTest
+ XInstCreator shape = null;
+ XInterface oShape = null;
+
+
+ /**
+ * Retrieves a shape from relation and adds it to the collection.
+ * Number of shapes is checked before and after adding.<p>
+ * Has <b> OK </b> status if after adding number of shapes increases by
+ * 1. <p>
+ */
+ public void _add () {
+
+ boolean result = false;
+ shape = (XInstCreator)tEnv.getObjRelation("Shape");
+ oShape = shape.createInstance();
+ XShape oSh = (XShape) oShape;
+
+ log.println("testing add() ... ");
+
+ int cntBefore = oObj.getCount();
+ oObj.add(oSh);
+ int cntAfter = oObj.getCount();
+ result = cntBefore + 1 == cntAfter ;
+
+ tRes.tested("add()", result);
+ }
+
+ /**
+ * Removes the shape added before from the collection.
+ * Number of shapes is checked before and after removing.<p>
+ * Has <b> OK </b> status if after removing number of shapes decreases by
+ * 1. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> add() </code> : a shape added. </li>
+ * </ul>
+ */
+ public void _remove () {
+ requiredMethod("add()");
+ boolean result = false;
+
+ log.println("removing the shape...");
+
+ int cntBefore = oObj.getCount();
+ oObj.remove((XShape) oShape);
+ int cntAfter = oObj.getCount();
+ result = cntBefore == cntAfter + 1;
+
+ tRes.tested("remove()", result);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_DataAwareControlModel.java b/qadevOOo/tests/java/ifc/form/_DataAwareControlModel.java
new file mode 100644
index 000000000..60dcd7f63
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_DataAwareControlModel.java
@@ -0,0 +1,163 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+import com.sun.star.form.XLoadable;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.form.DataAwareControlModel</code>
+* service properties :
+* <ul>
+* <li><code> DataField</code></li>
+* <li><code> BoundField</code></li>
+* <li><code> LabelControl</code></li>
+* </ul> <p>
+* This test need the following object relations :
+* <ul>
+* <li> <code>'FL'</code> as <code>com.sun.star.form.XLoadable</code>
+* implementation : used to connect control to data source. </li>
+* <li> <code>'LC'</code> as <code>com.sun.star.uno.XInterface</code>
+* implementation : as value for LabelControl property (see property
+* documentation). </li>
+* <li> <code>'DataAwareControlModel.NewFieldName'</code> :
+* <b>optional</b> <code>String</code> relation which is used
+* for new value of DataField property.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.form.DataAwareControlModel
+*/
+public class _DataAwareControlModel extends MultiPropertyTest {
+
+ /**
+ * First checks if <code>com.sun.star.form.DataAwareControlModel</code>
+ * service is supported by the object. Then <code>load</code> method
+ * of <code>'FL'</code> relation is called to connect control model
+ * to data source. Because the property is READONLY its value is
+ * just checked to be non null. After that model is disconnected. <p>
+ * Has <b> OK </b> status if the property has non null value. <p>
+ * The following property tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> DataField </code> : to bind the control to some database
+ * field.</li>
+ * </ul>
+ */
+ public void _BoundField() {
+ requiredMethod("DataField") ;
+
+ // This property is TRANSIENT and READONLY.
+ boolean bResult = true;
+ Object gValue = null;
+
+ // get the loader to load the form
+ XLoadable loader = (XLoadable) tEnv.getObjRelation("FL");
+
+ try {
+ if (loader.isLoaded()) {
+ loader.unload() ;
+ }
+ loader.load();
+ gValue = oObj.getPropertyValue("BoundField");
+ loader.unload();
+ bResult &= gValue != null;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log) ;
+ bResult = false;
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log) ;
+ bResult = false;
+ }
+ tRes.tested("BoundField", bResult);
+ }
+
+ /**
+ * Sets the property to a Database field name, and then checks
+ * if it was properly set. If <code>'DataAwareControlModel.NewFieldName'
+ * </code> relation is not found, then new property value is
+ * 'Address'. <p>
+ * Has <b> OK </b> status if the property was properly set
+ * and no exceptions were thrown. If old and new values are equal
+ * the test is OK if no exceptions occurred and the value remains
+ * the same.<p>
+ */
+ public void _DataField() {
+ String relVal = (String) tEnv.getObjRelation
+ ("DataAwareControlModel.NewFieldName") ;
+ final String newVal = relVal == null ? "Address" : relVal ;
+ testProperty("DataField", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object oldVal) {
+ return newVal ;
+ }
+ @Override
+ protected void checkResult(String propName, Object oldValue,
+ Object newValue, Object resValue, Exception exception)
+ throws java.lang.Exception{
+
+ if (exception == null && oldValue.equals(newValue)) {
+ boolean res = true ;
+ if (newValue.equals(resValue)) {
+ log.println("Old value is equal to new value ('" +
+ oldValue + "'). Possibly no other suitable fields found.") ;
+ } else {
+ log.println("The value was '" + oldValue + "', set to the" +
+ " same value, but result is '" + resValue + "' : FAILED") ;
+ res = false ;
+ }
+
+ tRes.tested(propName, res) ;
+ } else {
+ super.checkResult(propName, oldValue, newValue,
+ resValue, exception);
+ }
+ }
+ }) ;
+ }
+
+ /**
+ * Sets the new value (<code>'LC'</code> relation if <code>null</code>
+ * was before, and <code> null </code> otherwise and then checks if
+ * the value have successfully changed. <p>
+ * Has <b>OK</b> status if the value successfully changed.
+ */
+ public void _LabelControl() {
+ final XInterface xTextLabel = (XInterface)tEnv.getObjRelation("LC");
+
+ testProperty("LabelControl", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object oldVal) {
+ if (utils.isVoid(oldVal)) return xTextLabel ;
+ else return super.getNewValue("LabelControl",oldVal);
+ }
+ }) ;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/_FormComponent.java b/qadevOOo/tests/java/ifc/form/_FormComponent.java
new file mode 100644
index 000000000..99cdfc683
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_FormComponent.java
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.FormComponent</code>
+* service properties :
+* <ul>
+* <li><code> Name</code></li>
+* </ul>
+* @see com.sun.star.form.FormComponent
+*/
+public class _FormComponent extends MultiPropertyTest {
+
+} // finish class _FormComponent
+
diff --git a/qadevOOo/tests/java/ifc/form/_FormControlModel.java b/qadevOOo/tests/java/ifc/form/_FormControlModel.java
new file mode 100644
index 000000000..36c48dd30
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_FormControlModel.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.FormControlModel</code>
+* service properties :
+* <ul>
+* <li><code> ClassId</code></li>
+* <li><code> TabIndex</code></li>
+* <li><code> Tag</code></li>
+* </ul>
+* @see com.sun.star.form
+*/
+public class _FormControlModel extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/_XApproveActionBroadcaster.java b/qadevOOo/tests/java/ifc/form/_XApproveActionBroadcaster.java
new file mode 100644
index 000000000..f02f02516
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XApproveActionBroadcaster.java
@@ -0,0 +1,102 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.form.XApproveActionBroadcaster;
+import com.sun.star.form.XApproveActionListener;
+import com.sun.star.lang.EventObject;
+
+/**
+* Testing <code>com.sun.star.form.XApproveActionBroadcaster</code>
+* interface methods:
+* <ul>
+* <li><code> addApproveActionListener() </code></li>
+* <li><code> removeApproveActionListener() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XApproveActionBroadcaster
+*/
+public class _XApproveActionBroadcaster extends MultiMethodTest {
+ public XApproveActionBroadcaster oObj = null;
+
+ /**
+ * Class we need to test methods.
+ */
+ protected class TestListener implements XApproveActionListener {
+ public boolean approve = false ;
+
+ public void init() {
+ approve = false ;
+ }
+ public void disposing(EventObject ev) {}
+ public boolean approveAction(EventObject ev) {
+ log.println("XApproveActionListener: ActionListener was called");
+ return approve ;
+ }
+
+ }
+
+ private final TestListener listener = new TestListener();
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _addApproveActionListener() {
+ oObj.addApproveActionListener(listener) ;
+ tRes.tested("addApproveActionListener()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addApproveActionListener() </code> : adds listener to an
+ * object </li>
+ * </ul>
+ */
+ public void _removeApproveActionListener() {
+ requiredMethod("addApproveActionListener()");
+ listener.init() ;
+ listener.approve = true ;
+ oObj.removeApproveActionListener(listener);
+ tRes.tested("removeApproveActionListener()", true);
+ }
+
+
+ /**
+ * Just log output
+ */
+ @Override
+ protected void after() {
+ log.println("Skipping all XApproveActionBroadcaster methods, since they"
+ + " need user interaction");
+ throw new StatusException(Status.skipped(true));
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_XBoundComponent.java b/qadevOOo/tests/java/ifc/form/_XBoundComponent.java
new file mode 100644
index 000000000..3f38ba689
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XBoundComponent.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XBoundComponent;
+
+/**
+* Testing <code>com.sun.star.form.XBoundComponent</code>
+* interface methods :
+* <ul>
+* <li><code> commit()</code></li>
+* </ul> <p>
+* More deep tests of this interface are made in
+* <code>com.sun.star.form.XUpdateBroadcaster</code> interface
+* test as it is the ancestor of <code>XBoundComponent</code>
+* interface.
+* @see com.sun.star.form.XBoundComponent
+*/
+public class _XBoundComponent extends MultiMethodTest {
+
+ public XBoundComponent oObj = null;
+
+ public void _commit() {
+ oObj.commit() ;
+
+ tRes.tested("commit()",true);
+ }
+
+} //EOF of XBoundComponent
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_XBoundControl.java b/qadevOOo/tests/java/ifc/form/_XBoundControl.java
new file mode 100644
index 000000000..2d6bb8c73
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XBoundControl.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XBoundControl;
+
+/**
+* Testing <code>com.sun.star.form.XBoundControl</code>
+* interface methods:
+* <ul>
+* <li><code> getLock() </code></li>
+* <li><code> setLock() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XBoundControl
+*/
+public class _XBoundControl extends MultiMethodTest {
+ public XBoundControl oObj = null;
+ public boolean defaultState = false;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _getLock() {
+ boolean res = false;
+ defaultState = oObj.getLock();
+ res = true;
+ tRes.tested("getLock()",res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if method locks input (set and gotten values are
+ * equal). <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLock() </code>: determines whether the input is
+ * currently locked or not </li>
+ * </ul>
+ */
+ public void _setLock() {
+ boolean res = false;
+ boolean toSet = !defaultState;
+
+ requiredMethod("getLock()");
+ oObj.setLock(toSet);
+ res = (oObj.getLock() != defaultState);
+ oObj.setLock(defaultState);
+ tRes.tested("setLock()", res);
+ }
+
+} //EOF of XBoundControl
+
diff --git a/qadevOOo/tests/java/ifc/form/_XChangeBroadcaster.java b/qadevOOo/tests/java/ifc/form/_XChangeBroadcaster.java
new file mode 100644
index 000000000..7583ca6ec
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XChangeBroadcaster.java
@@ -0,0 +1,179 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XWindow;
+import com.sun.star.form.XChangeBroadcaster;
+import com.sun.star.form.XChangeListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.form.XChangeBroadcaster</code>
+* interface methods:
+* <ul>
+* <li><code> addChangeListener() </code></li>
+* <li><code> removeChangeListener() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Win1'</code> (of type <code>XWindow</code>):
+* used to change context when testing interface methods</li>
+* <li> <code>'Win2'</code> (of type <code>XWindow</code>):
+* used to change context when testing interface methods </li>
+* <li> <code>'CONTROL'</code> (of type <code>XControl</code> and
+* must implement <code>XTextComponent</code> interface):
+* used to change context when testing interface methods </li>
+* <li> <code>'XChangeBroadcaster.Changer'</code>
+* (of type <code>ifc.form._XChangeBroadcaster.Changer</code>)
+* <b>optional</b> : this relation <b>must be specified</b> when
+* <code>XTextComponent</code> is not supported by the tested
+* component. It is used to change some component content
+* which must cause listener call. </li>
+* </ul> <p>
+*
+* <b>Prerequisites:</b> component must implement <code>XTextComponent</code>
+* interface for changing component's text which must cause listener call.
+* If the component can't support the interface, then the relation
+* <code>'XChangeBroadcaster.Changer'</code> must be passed. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XChangeBroadcaster
+*/
+public class _XChangeBroadcaster extends MultiMethodTest {
+ public static XChangeBroadcaster oObj = null;
+ protected boolean changed = false;
+
+ /**
+ * This interface must be implemented by component and passed
+ * in relation if it doesn't support <code>XTextComponent</code>
+ * interface. It used to change the content of component.
+ */
+ public interface Changer {
+ /**
+ * The method must change the component's content to
+ * cause a listener call.
+ */
+ void change() ;
+ }
+
+ /**
+ * Class we need to test methods
+ */
+ protected class MyChangeListener implements XChangeListener {
+ public void disposing ( EventObject oEvent ) {}
+ public void changed ( EventObject oEvent ) {
+ System.out.println("Listener called");
+ changed = true;
+ }
+ }
+
+ protected XChangeListener listener = new MyChangeListener();
+ protected XTextComponent xText = null ;
+ protected Changer changer = null ;
+
+ /**
+ * Tries to query the tested component for <code>XTextComponent</code>
+ * interface and retrieves a relation
+ * <code>'XChangeBroadcaster.Changer'</code>.
+ * @throw StatusException If neither relation is found nor interface
+ * is queried.
+ */
+ @Override
+ public void before() {
+ xText = UnoRuntime.queryInterface(XTextComponent.class,oObj);
+ changer = (Changer) tEnv.getObjRelation("XChangeBroadcaster.Changer") ;
+
+ if (xText == null && changer == null)
+ throw new StatusException(Status.failed
+ ("Neither 'XChangeBroadcaster.Changer' relation found " +
+ "nor XTextComponent is supported")) ;
+ }
+
+ /**
+ * Test calls the method, then object relations 'Win1', 'Win2', 'CONTROL'
+ * are obtained, and context is changed.<p>
+ * Has <b> OK </b> status if listener was called after context has changed.
+ */
+ public void _addChangeListener() {
+ log.println("Testing addChangeListener ...");
+ oObj.addChangeListener( listener );
+ XWindow win1 = (XWindow) tEnv.getObjRelation("Win1");
+ XWindow win2 = (XWindow) tEnv.getObjRelation("Win2");
+ win1.setFocus();
+
+ changeContent() ;
+ waitForEventIdle();
+
+ win2.setFocus();
+ XTextComponent TC = UnoRuntime.queryInterface
+ (XTextComponent.class,tEnv.getObjRelation("CONTROL"));
+ TC.setText("NOXChangeBroadcaster");
+ waitForEventIdle();
+ tRes.tested("addChangeListener()", changed);
+ }
+
+ /**
+ * Test calls the method, then object relations 'Win1', 'Win2', 'CONTROL'
+ * are obtained, and context is changed.<p>
+ * Has <b> OK </b> status if listener was not called after context has
+ * changed.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addChangeListener() </code> : adds the specified listener
+ * to receive the "changed" event</li>
+ * </ul>
+ */
+ public void _removeChangeListener() {
+ requiredMethod("addChangeListener()");
+ changed = false;
+ log.println("Testing removeChangeListener ...");
+ oObj.addChangeListener( listener );
+ XWindow win2 = (XWindow) tEnv.getObjRelation("Win2");
+ win2.setFocus();
+
+ changeContent() ;
+
+ win2.setFocus();
+ waitForEventIdle();
+ tRes.tested("removeChangeListener()", !changed);
+ }
+
+ /**
+ * Changes the content of the component depending on whether
+ * <code>XTextComponent</code> is supported or not. If yes
+ * then the text is changed, if not the relation <code>change()</code>
+ * method is used.
+ */
+ protected void changeContent() {
+ if (xText != null) {
+ xText.setText("XChangeBroadcaster".equals(xText.getText()) ?
+ "NoXChangeBroadcaster" : "XChangeBroadcaster") ;
+ } else {
+ changer.change();
+ }
+ }
+
+} // finished class _XChangeBroadcaster
+
diff --git a/qadevOOo/tests/java/ifc/form/_XConfirmDeleteBroadcaster.java b/qadevOOo/tests/java/ifc/form/_XConfirmDeleteBroadcaster.java
new file mode 100644
index 000000000..496227c9b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XConfirmDeleteBroadcaster.java
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import com.sun.star.form.XConfirmDeleteBroadcaster;
+import com.sun.star.form.XConfirmDeleteListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.sdb.RowChangeEvent;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.util.XConfirmDeleteBroadcaster</code>
+* interface methods :
+* <ul>
+* <li><code>addConfirmDeleteListener()</code></li>
+* <li><code>removeConfirmDeleteListener()</code></li>
+* </ul> <p>
+*
+* Result checking is not performed. Confirm delete
+* listeners are called only in case of
+* interaction with UI. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.util.XConfirmDeleteBroadcaster
+*/
+public class _XConfirmDeleteBroadcaster extends MultiMethodTest {
+ public XConfirmDeleteBroadcaster oObj = null;
+ protected XConfirmDeleteListener mxConfirmDeleteListener =
+ new ConfirmDeleteImpl();
+
+ private static class ConfirmDeleteImpl implements XConfirmDeleteListener {
+ public boolean confirmDelete(RowChangeEvent rowChangeEvent) {
+ return true;
+ }
+ public void disposing(EventObject eventObject) {
+ }
+ }
+
+ protected void addConfirmDeleteListener() {
+ oObj.addConfirmDeleteListener(mxConfirmDeleteListener);
+ tRes.tested("addConfirmDeleteListener()", true);
+ }
+
+ protected void removeConfirmDeleteListener() {
+ oObj.removeConfirmDeleteListener(mxConfirmDeleteListener);
+ tRes.tested("removeConfirmDeleteListener()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/form/_XDatabaseParameterBroadcaster.java b/qadevOOo/tests/java/ifc/form/_XDatabaseParameterBroadcaster.java
new file mode 100644
index 000000000..384493d58
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XDatabaseParameterBroadcaster.java
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.form;
+
+import com.sun.star.form.XDatabaseParameterBroadcaster;
+import com.sun.star.form.XDatabaseParameterListener;
+import com.sun.star.sdbc.XRowSet;
+import com.sun.star.uno.UnoRuntime;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+
+/**
+ *
+ */
+public class _XDatabaseParameterBroadcaster extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XDatabaseParameterBroadcaster oObj = null ;
+ private CheckParameterListener listenerChecker = null;
+
+ /**
+ * Interface to implement so the call of the listener can be checked.
+ */
+ public interface CheckParameterListener extends XDatabaseParameterListener {
+ /**
+ * Set a log of the listener, so messages of the listener get printed
+ * into the file of the interface
+ */
+ void setLog(PrintWriter log);
+ /**
+ * Return True, when the listener was called correctly.
+ */
+ boolean checkListener();
+ }
+
+ /**
+ * Get the object relation 'ParameterListenerChecker' and
+ * set the log inside of the implementation.
+ */
+ @Override
+ protected void before() {
+ listenerChecker = (CheckParameterListener)
+ tEnv.getObjRelation("ParameterListenerChecker");
+ listenerChecker.setLog(log);
+ }
+
+ /**
+ */
+ public void _addParameterListener() {
+ oObj.addParameterListener(listenerChecker);
+ tRes.tested("addParameterListener()", true);
+ }
+
+ /**
+ */
+ public void _removeParameterListener() {
+ requiredMethod("addParameterListener()");
+
+ // trigger the action.
+ try {
+ XRowSet xRowSet = UnoRuntime.queryInterface(XRowSet.class, oObj);
+ xRowSet.execute();
+ }
+ catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Exception in XDatabaseParameterBroadcaster test.");
+ log.println("This does not let the test fail, but should be inquired.");
+ e.printStackTrace(log);
+ }
+ // was the listener called?
+ oObj.removeParameterListener(listenerChecker);
+ tRes.tested("removeParameterListener()", listenerChecker.checkListener());
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/form/_XFormController.java b/qadevOOo/tests/java/ifc/form/_XFormController.java
new file mode 100644
index 000000000..339610c32
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XFormController.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XWindow;
+import com.sun.star.form.XFormController;
+import com.sun.star.form.XFormControllerListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.form.XFormController</code>
+* interface methods :
+* <ul>
+* <li><code> getCurrentControl()</code></li>
+* <li><code> addActivateListener()</code></li>
+* <li><code> removeActivateListener()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'otherWindow'</code>
+* (of type <code>com.sun.star.awt.XWindow</code>):
+* The another window is used to activate it, causing deactivating
+* of the component tested. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XFormController
+*/
+public class _XFormController extends MultiMethodTest {
+
+ public static XFormController oObj = null;
+
+ /**
+ * Listener which determines and stores events occurred.
+ */
+ protected static class MyListener implements XFormControllerListener {
+ public boolean activated = false ;
+ public boolean deactivated = false ;
+ public void disposing ( EventObject oEvent ) {}
+
+ public void init() {
+ activated = false;
+ deactivated = false;
+ }
+
+ public void formActivated(EventObject ev) {
+ activated = true ;
+ }
+
+ public void formDeactivated(EventObject ev) {
+ deactivated = true ;
+ }
+ }
+
+ MyListener listener = new MyListener() ;
+
+ /**
+ * Adds a listener, then switches focus between two windows.
+ * The current controller must be deactivated and activated.<p>
+ *
+ * Has <b> OK </b> status if listener <code>deactivate</code>
+ * and <code>activate</code> methods was called. <p>
+ */
+ public void _addActivateListener() {
+ requiredMethod("getCurrentControl()");
+ oObj.addActivateListener(listener) ;
+
+ XWindow wind = UnoRuntime.queryInterface(XWindow.class, cntrl);
+ wind.setFocus();
+ waitForEventIdle();
+ XWindow otherWind = (XWindow)tEnv.getObjRelation("otherWindow");
+ otherWind.setFocus();
+ waitForEventIdle();
+ log.println("activated = " + listener.activated +
+ ", deactivated = " + listener.deactivated) ;
+
+ tRes.tested("addActivateListener()",
+ listener.deactivated && listener.activated) ;
+ }
+
+ /**
+ * Removes the listener added before, then switches focus between two windows.
+ *
+ * Has <b> OK </b> status if no listener methods were called. <p>
+ */
+ public void _removeActivateListener() {
+ requiredMethod("addActivateListener()") ;
+
+ oObj.removeActivateListener(listener);
+ log.println("ActiveListener removed");
+ listener.init();
+
+ XWindow wind = UnoRuntime.queryInterface(XWindow.class, cntrl);
+ wind.setFocus();
+ waitForEventIdle();
+ XWindow otherWind = (XWindow)tEnv.getObjRelation("otherWindow");
+ otherWind.setFocus();
+ waitForEventIdle();
+ log.println("activated = " + listener.activated +
+ ", deactivated = " + listener.deactivated) ;
+
+ tRes.tested("removeActivateListener()",
+ !listener.activated && !listener.deactivated);
+ }
+
+ XControl cntrl;
+
+ /**
+ * Retrieves current control and searches for it among child controls.
+ *
+ * Has <b>OK</b> status if the current control was found among component
+ * children.
+ */
+ public void _getCurrentControl() {
+ cntrl = oObj.getCurrentControl();
+ XControl[] children = oObj.getControls() ;
+
+ boolean res = false;
+ for(int i = 0; i < children.length; i++) {
+ if (children[i].equals(cntrl)) {
+ log.println("Current control is equal to the object control" +
+ " #" + i + ":");
+ log.println(cntrl);
+ res = true;
+ break;
+ }
+ }
+
+ tRes.tested("getCurrentControl()", res) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/_XFormsSupplier.java b/qadevOOo/tests/java/ifc/form/_XFormsSupplier.java
new file mode 100644
index 000000000..6a67b0920
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XFormsSupplier.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import com.sun.star.container.XNameContainer;
+
+public class _XFormsSupplier extends lib.MultiMethodTest {
+
+ public com.sun.star.form.XFormsSupplier oObj = null;
+
+ public void _getForms() {
+ XNameContainer forms = oObj.getForms();
+ if (!forms.hasElements()) {
+ log.println("NameContainer doesn't contain forms");
+ }
+ tRes.tested("getForms()",forms.hasElements());
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/_XGrid.java b/qadevOOo/tests/java/ifc/form/_XGrid.java
new file mode 100644
index 000000000..f241af55a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XGrid.java
@@ -0,0 +1,74 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XGrid;
+
+/**
+* Testing <code>com.sun.star.form.XGrid</code>
+* interface methods :
+* <ul>
+* <li><code> getCurrentColumnPosition()</code></li>
+* <li><code> setCurrentColumnPosition(short nPos)</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XGrid
+*/
+public class _XGrid extends MultiMethodTest {
+ public XGrid oObj = null;
+ public short positionValue;
+
+ /**
+ * The method called. Then CurrentColumnPosition is obtained and
+ * compared with previously changed value.
+ * Has <b> OK </b> status if the method successfully returns
+ * and the returned value is correct.
+ */
+ public void _getCurrentColumnPosition() {
+ boolean result;
+
+ requiredMethod("setCurrentColumnPosition()");
+ log.println("Testing getCurrentColumnPosition()...");
+ if (oObj.getCurrentColumnPosition() == positionValue) {
+ result = true;
+ } else {
+ result = false;
+ }
+ tRes.tested("getCurrentColumnPosition()", result);
+ }
+
+ /**
+ * The method called. Then CurrentColumnPosition is obtained, changed
+ * and saved.
+ * Has <b> OK </b> status if no exception has occurred.
+ */
+ public void _setCurrentColumnPosition() {
+ log.println("Testing setCurrentColumnPosition()...");
+ if (oObj.getCurrentColumnPosition() != 0) {
+ positionValue = 0;
+ } else {
+ positionValue = 1;
+ }
+ oObj.setCurrentColumnPosition(positionValue);
+ tRes.tested("setCurrentColumnPosition()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/_XGridColumnFactory.java b/qadevOOo/tests/java/ifc/form/_XGridColumnFactory.java
new file mode 100644
index 000000000..376bdbf8c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XGridColumnFactory.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.form.XGridColumnFactory;
+
+
+/**
+* Testing <code>com.sun.star.form.XGridColumnFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createColumn()</code></li>
+* <li><code> getColumnTypes()</code></li>
+* </ul>
+* Test is multithread compliant. <p>
+* @see com.sun.star.form.XGridColumnFactory
+*/
+public class _XGridColumnFactory extends MultiMethodTest {
+
+ public XGridColumnFactory oObj = null;
+
+
+ /**
+ * Test calls the method and checks return value. <p>
+ * Has <b> OK </b> status if the method returns
+ * non null value.
+ */
+ public void _getColumnTypes() {
+
+ String[] types = oObj.getColumnTypes();
+ tRes.tested("getColumnTypes()",types!=null);
+ }
+
+ /**
+ * Creates column of type 'TextField'. <p>
+ * Has <b>OK</b> status if non null value returned.
+ */
+ public void _createColumn() {
+
+ try {
+ XPropertySet column = oObj.createColumn("TextField");
+ tRes.tested("createColumn()",column!=null);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while creating Column");
+ tRes.tested("createColumn()",false);
+ }
+ }
+} // finish class _XGridColumnFactory
+
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_XGridFieldDataSupplier.java b/qadevOOo/tests/java/ifc/form/_XGridFieldDataSupplier.java
new file mode 100644
index 000000000..af1631be2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XGridFieldDataSupplier.java
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XGridFieldDataSupplier;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.form.XGridFieldDataSupplier</code>
+* interface methods :
+* <ul>
+* <li><code>queryFieldDataType()</code></li>
+* <li><code>queryFieldData()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XGridFieldDataSupplier
+*/
+public class _XGridFieldDataSupplier extends MultiMethodTest {
+ public XGridFieldDataSupplier oObj = null;
+
+ /**
+ * Calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is not null.
+ */
+ public void _queryFieldDataType() {
+ boolean[] dataType = oObj.queryFieldDataType(new Type(String.class));
+ tRes.tested("queryFieldDataType()", dataType != null);
+ }
+
+ /**
+ * Calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is not null.
+ */
+ public void _queryFieldData() {
+ Object[] data = oObj.queryFieldData(0, new Type(String.class));
+ tRes.tested("queryFieldData()", data != null);
+ }
+}// finish class _XGridFieldDataSupplier
+
diff --git a/qadevOOo/tests/java/ifc/form/_XImageProducerSupplier.java b/qadevOOo/tests/java/ifc/form/_XImageProducerSupplier.java
new file mode 100644
index 000000000..86f2eb0b8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XImageProducerSupplier.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.XImageProducer;
+import com.sun.star.form.XImageProducerSupplier;
+
+/**
+* Testing <code>com.sun.star.form.XImageProducerSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getImageProducer()</code></li>
+* </ul>
+* @see com.sun.star.form.XImageProducerSupplier
+*/
+public class _XImageProducerSupplier extends MultiMethodTest {
+
+ public XImageProducerSupplier oObj = null;
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method returns non null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getImageProducer() {
+ boolean bResult = false;
+ XImageProducer ip = oObj.getImageProducer();
+ bResult = ip!=null;
+ tRes.tested("getImageProducer()", bResult);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_XLoadListener.java b/qadevOOo/tests/java/ifc/form/_XLoadListener.java
new file mode 100644
index 000000000..0a6450582
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XLoadListener.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XLoadListener;
+
+/**
+* Testing <code>com.sun.star.form.XLoadListener</code>
+* interface methods :
+* <ul>
+* <li><code> loaded()</code></li>
+* <li><code> unloading()</code></li>
+* <li><code> unloaded()</code></li>
+* <li><code> reloading()</code></li>
+* <li><code> reloaded()</code></li>
+* </ul> <p>
+* This interface methods are not testable, because their
+* behaviour is not documented.
+* @see com.sun.star.form.XLoadListener
+*/
+public class _XLoadListener extends MultiMethodTest {
+
+ public XLoadListener oObj = null;
+
+ /**
+ * Always has <b>OK</b> status.
+ */
+ public void _loaded() {
+ log.println("nothing to test here");
+ tRes.tested("loaded()",true);
+ }
+
+ /**
+ * Always has <b>OK</b> status.
+ */
+ public void _reloaded() {
+ log.println("nothing to test here");
+ tRes.tested("reloaded()",true);
+ }
+
+ /**
+ * Always has <b>OK</b> status.
+ */
+ public void _reloading() {
+ log.println("nothing to test here");
+ tRes.tested("reloading()",true);
+ }
+
+ /**
+ * Always has <b>OK</b> status.
+ */
+ public void _unloaded() {
+ log.println("nothing to test here");
+ tRes.tested("unloaded()",true);
+ }
+
+ /**
+ * Always has <b>OK</b> status.
+ */
+ public void _unloading() {
+ log.println("nothing to test here");
+ tRes.tested("unloading()",true);
+ }
+
+} //EOF of XLoadListener
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_XLoadable.java b/qadevOOo/tests/java/ifc/form/_XLoadable.java
new file mode 100644
index 000000000..a4bf0e78d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XLoadable.java
@@ -0,0 +1,225 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XLoadable;
+
+/**
+* Testing <code>com.sun.star.form.XLoadable</code>
+* interface methods :
+* <ul>
+* <li><code> load()</code></li>
+* <li><code> unload()</code></li>
+* <li><code> reload()</code></li>
+* <li><code> isLoaded()</code></li>
+* <li><code> addLoadListener()</code></li>
+* <li><code> removeLoadListener()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XLoadable
+*/
+public class _XLoadable extends MultiMethodTest {
+
+ public XLoadable oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestLoadListener implements com.sun.star.form.XLoadListener {
+ public boolean loadedCalled = false ;
+ public boolean reloadedCalled = false ;
+ public boolean unloadedCalled = false ;
+ private final java.io.PrintWriter log;
+
+ public TestLoadListener(java.io.PrintWriter log) {
+ this.log = log ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ log.println(" disposing was called.") ;
+ }
+
+ public void loaded(com.sun.star.lang.EventObject e) {
+ loadedCalled = true ;
+ log.println(" loaded was called.") ;
+ }
+
+ public void reloaded(com.sun.star.lang.EventObject e) {
+ reloadedCalled = true ;
+ log.println(" reloaded was called.") ;
+ }
+
+ public void reloading(com.sun.star.lang.EventObject e) {
+ log.println(" reloading was called.") ;
+ }
+
+ public void unloaded(com.sun.star.lang.EventObject e) {
+ unloadedCalled = true ;
+ log.println(" unloaded was called.") ;
+ }
+
+ public void unloading(com.sun.star.lang.EventObject e) {
+ log.println(" unloading was called.") ;
+ }
+ }
+
+ TestLoadListener loadListener = null ;
+
+ /**
+ * Creates new listener.
+ */
+ @Override
+ public void before() {
+ loadListener = new TestLoadListener(log) ;
+ }
+
+ /**
+ * Loads the form. <p>
+ * Has <b> OK </b> status if <code>isLoaded()</code> returns
+ * <code>true</code> and listener method <code>loaded()</code>
+ * is called.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> isLoaded() </code> : to be sure form is not loaded </li>
+ * <li> <code> addLoadListener() </code> : to check if this listener method
+ * is called. </li>
+ * </ul>
+ */
+ public void _load() {
+ requiredMethod("isLoaded()") ;
+ requiredMethod("addLoadListener()") ;
+
+ boolean result = true ;
+ oObj.load() ;
+
+ waitForEventIdle();
+ result = oObj.isLoaded() && loadListener.loadedCalled ;
+
+ tRes.tested("load()", result) ;
+ }
+
+ /**
+ * Unloads the form. <p>
+ * Has <b> OK </b> status if <code>isLoaded()</code> returns
+ * <code>false</code> and listener method <code>unloaded()</code>
+ * is called.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> reload() </code> : to be sure the form is loaded </li>
+ * <li> <code> addLoadListener() </code> : to check if this listener method
+ * is called. </li>
+ * </ul>
+ */
+ public void _unload() {
+ requiredMethod("reload()") ;
+ requiredMethod("addLoadListener()") ;
+
+ boolean result = true ;
+ oObj.unload() ;
+
+ waitForEventIdle();
+ result = !oObj.isLoaded() && loadListener.unloadedCalled ;
+
+ tRes.tested("unload()", result) ;
+ }
+
+ /**
+ * Reloads the form. <p>
+ * Has <b> OK </b> status if <code>isLoaded()</code> returns
+ * <code>true</code> and listener method <code>reloaded()</code>
+ * is called.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> load() </code> : to be sure form is loaded </li>
+ * <li> <code> addLoadListener() </code> : to check if this listener method
+ * is called. </li>
+ * </ul>
+ */
+ public void _reload() {
+ requiredMethod("load()") ;
+ requiredMethod("addLoadListener()") ;
+
+ boolean result = true ;
+ oObj.reload() ;
+
+ waitForEventIdle();
+ result = oObj.isLoaded() && loadListener.reloadedCalled;
+
+ tRes.tested("reload()", result) ;
+ }
+
+ /**
+ * Checks if the component is already loaded. If yes it unloads
+ * it <p>
+ * Has <b> OK </b> status if finally <code>isLoaded()</code> method
+ * returns <code>false</code>.
+ */
+ public void _isLoaded() {
+
+ boolean isLoaded = oObj.isLoaded() ;
+ if (isLoaded) oObj.unload();
+ isLoaded = oObj.isLoaded() ;
+
+ tRes.tested("isLoaded()", !isLoaded) ;
+ }
+
+ /**
+ * Adds a listener. If its methods are called or not is checked
+ * in other object methods. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _addLoadListener() {
+
+ boolean result = true ;
+ oObj.addLoadListener(loadListener) ;
+
+ tRes.tested("addLoadListener()", result) ;
+ }
+
+ /**
+ * Removes the listener added before. <p>
+ * Has <b> OK </b> status if after <code>load()</code> call no
+ * listener methods were called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> unload() </code> : to make this test run finally.</li>
+ * </ul>
+ */
+ public void _removeLoadListener() {
+ requiredMethod("unload()") ;
+
+ boolean result = true ;
+ oObj.removeLoadListener(loadListener) ;
+ loadListener.loadedCalled = false ;
+ oObj.load();
+
+ result = ! loadListener.loadedCalled ;
+
+ tRes.tested("removeLoadListener()", result) ;
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/_XReset.java b/qadevOOo/tests/java/ifc/form/_XReset.java
new file mode 100644
index 000000000..b3afa18df
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XReset.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.form.XReset;
+import com.sun.star.form.XResetListener;
+import com.sun.star.lang.EventObject;
+
+/**
+* Testing <code>com.sun.star.form.XReset</code>
+* interface methods :
+* <ul>
+* <li><code> reset()</code></li>
+* <li><code> addResetListener()</code></li>
+* <li><code> removeResetListener()</code></li>
+* </ul>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XReset
+*/
+public class _XReset extends MultiMethodTest {
+
+ public static XReset oObj = null;
+
+ /**
+ * Indicates if listeners must approve reset requests or not.
+ */
+ protected boolean approve = true;
+ /**
+ * Array of two elements, each of them indicates <code>reset</code>
+ * call of appropriate listener.
+ */
+ protected boolean resetted[] = new boolean[2];
+ /**
+ * Array of two elements, each of them indicates
+ * <code>approveReset</code> call of appropriate listener.
+ */
+ protected boolean approveReset[] = new boolean[2];
+
+ /**
+ * The listener which sets flags (in array elements with index 0)
+ * on <code>reset</code> and
+ * <code>approveReset</code> events. It approves reset request
+ * depending on <code>approve</code> field.
+ */
+ protected class MyResetListener implements XResetListener {
+ public void disposing ( EventObject oEvent ) {}
+ public boolean approveReset ( EventObject oEvent ) {
+ approveReset[0] = true;
+ //cancel the reset action
+ return approve;
+ }
+ public void resetted ( EventObject oEvent ) {
+ resetted[0] = true;
+ }
+ }
+
+
+ /**
+ * The listener which sets flags (in array elements with index 1)
+ * on <code>reset</code> and
+ * <code>approveReset</code> events. It approves reset request
+ * depending on <code>approve</code> field.
+ */
+ protected class MyResetListener2 implements XResetListener {
+ public void disposing ( EventObject oEvent ) {}
+ public boolean approveReset ( EventObject oEvent ) {
+ approveReset[1] = true;
+ //don't cancel the reset action
+ return true;
+ }
+ public void resetted ( EventObject oEvent ) {
+ resetted[1] = true;
+ }
+ }
+
+ /**
+ * Listener which is added in test
+ */
+ protected XResetListener listener1 = new MyResetListener();
+ /**
+ * Listener which is added in test
+ */
+ protected XResetListener listener2 = new MyResetListener2();
+
+ /**
+ * Just adds two reset listeners. <p>
+ * Status for it is set later in <code>reset</code> method test.
+ */
+ public void _addResetListener() {
+
+ log.println("Testing addResetListener ...");
+ oObj.addResetListener( listener2 );
+ oObj.addResetListener( listener1 );
+
+ } // finished _addResetListener()
+
+ /**
+ * First calls <code>reset</code> method without approving
+ * the request, in this case only <code>approveReset</code>
+ * event must be called. Second calls <code>reset</code> with
+ * approving the request. In this case both listener's events
+ * must be called. <p>
+ * Has <b>OK</b> status for <code>reset</code> method if in
+ * the first case only <code>approveReset</code> method was
+ * called. <p>
+ * Has <b>OK</b> status for <code>addResetListener</code> method
+ * if in the second case both listener's methods were called.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addResetListener </code> : to have listeners added.</li>
+ * </ul>
+ */
+ public void _reset() {
+
+ executeMethod("addResetListener()");
+ log.println("Testing reset() ...");
+ approve = false;
+ oObj.reset();
+ waitForEventIdle();
+ tRes.tested("reset()", (approveReset[0] && (! resetted[0])));
+ approve = true;
+ oObj.reset();
+ waitForEventIdle();
+ tRes.tested("addResetListener()", (approveReset[1] && resetted[1]));
+
+ } // finished _reset
+
+ /**
+ * Removes the first listener, clears it's call flags, and
+ * calls <code>reset</code> method.<p>
+ * Has <b> OK </b> status if no methods of the listener removed
+ * were called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> reset </code> : to test this method last. </li>
+ * </ul>
+ */
+ public void _removeResetListener() {
+ requiredMethod("reset()");
+ log.println("Testing removeResetListener ...");
+ approveReset[0] = resetted[0] = false;
+ oObj.removeResetListener(listener1);
+ oObj.reset();
+ waitForEventIdle();
+ tRes.tested("removeResetListener()", !approveReset[0] && !resetted[0]);
+ //removing the second listener here may avoid crashing the office
+ } // finished _removeResetListener()
+
+
+} // finished class _XRefresh
+
+
diff --git a/qadevOOo/tests/java/ifc/form/_XSubmit.java b/qadevOOo/tests/java/ifc/form/_XSubmit.java
new file mode 100644
index 000000000..3b3346900
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XSubmit.java
@@ -0,0 +1,171 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.awt.MouseEvent;
+import com.sun.star.awt.XControl;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.form.XSubmit;
+import com.sun.star.form.XSubmitListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.form.XSubmit</code>
+* interface methods :
+* <ul>
+* <li><code> submit()</code></li>
+* <li><code> addSubmitListener()</code></li>
+* <li><code> removeSubmitListener()</code></li>
+* </ul> <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XSubmit.Control'</code> <b>optional</b>
+* (of type <code>com.sun.star.awt.XControl</code>):
+* is used to pass as parameters to <code>submit</code>
+* method. <code>null</code> is passed if the relation
+* is not found.</li>
+* <ul> <p>
+*
+* Other <b> prerequicity </b> is the object must have
+* <code>TargetURL</code> property. <p>
+*
+* Short description: test adds two listeners, call
+* <code> submit </code> method and checks if both listeners
+* were called. Then one listener is removed and after
+* <code> submit </code> method call it must not be called. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XSubmit
+*/
+public class _XSubmit extends MultiMethodTest {
+
+ public static XSubmit oObj = null;
+
+ public static class MySubmitListener implements XSubmitListener {
+ public int called = 0 ;
+ public void disposing ( EventObject oEvent ) {
+ }
+ public boolean approveSubmit( EventObject oEvent ) {
+ called += 1;
+ System.out.println("Listener called");
+ return true;
+ }
+ }
+
+
+ MySubmitListener listener1 = new MySubmitListener();
+ MySubmitListener listener2 = new MySubmitListener();
+
+ /**
+ * Just adds two submit listeners. <p>
+ * Status of this method test is defined in <code>
+ * submit </code> method test.
+ */
+ public void _addSubmitListener() {
+ log.println("Testing addSubmitListener ...");
+ oObj.addSubmitListener( listener1 );
+ oObj.addSubmitListener( listener2 );
+ }
+
+ /**
+ * Before submission tries to set 'TargetURL' property
+ * of component to some value assuming that component
+ * supports <code>com.sun.star.form.HTMLForm</code>
+ * service.
+ * Then calls the <code> submit </code> method and checks
+ * if listener removed were not called, and other was
+ * called only once.<p>
+ *
+ * Has <b> OK </b> status for <code>submit</code> if
+ * listener was called at least ones, for
+ * <code>addSubmitListener</code> method if the remaining
+ * listener was called only once, for
+ * <code>removeSubmitListener</code> method if the removed
+ * listener was not called. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> removeSubmitListener </code> : to have one listener
+ * added and other removed.</li>
+ * </ul>
+ */
+ public void _submit() {
+ executeMethod("removeSubmitListener()");
+ log.println("Testing submit() ...");
+ XControl cntrl = (XControl) tEnv.getObjRelation("XSubmit.Control") ;
+
+ XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, oObj) ;
+
+ if (xPS != null) {
+ try {
+ xPS.setPropertyValue("TargetURL", "someserver");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+ }
+ } else {
+ log.println("!!! The tested component doesn't support XPropertySet ");
+ }
+
+ oObj.submit(cntrl, new MouseEvent());
+ waitForEventIdle();
+
+ log.println("Listener1 called " + listener1.called + " times");
+ log.println("Listener2 called " + listener2.called + " times");
+
+ tRes.tested("addSubmitListener()", listener2.called == 1);
+ tRes.tested("removeSubmitListener()", listener1.called == 0);
+ tRes.tested("submit()", listener2.called > 0);
+ oObj.removeSubmitListener(listener2);
+ }
+
+ /**
+ * Just removes one of submit listeners. <p>
+ * Status of this method test is defined in <code>
+ * submit </code> method test.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> removeSubmitListener </code> : to have listeners added</li>
+ * </ul>
+ */
+ public void _removeSubmitListener() {
+ requiredMethod("addSubmitListener()");
+ oObj.removeSubmitListener(listener1);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/_XUpdateBroadcaster.java b/qadevOOo/tests/java/ifc/form/_XUpdateBroadcaster.java
new file mode 100644
index 000000000..3df9eecd6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/_XUpdateBroadcaster.java
@@ -0,0 +1,232 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.form.XUpdateBroadcaster;
+import com.sun.star.form.XUpdateListener;
+import com.sun.star.lang.EventObject;
+
+/**
+* Testing <code>com.sun.star.form.XUpdateBroadcaster</code>
+* interface methods :
+* <ul>
+* <li><code> addUpdateListener()</code></li>
+* <li><code> removeUpdateListener()</code></li>
+* </ul>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XUpdateBroadcaster.Checker'</code> : <code>
+* _XUpdateBroadcaster.UpdateChecker</code> interface implementation
+* which can update, commit data and check if the data was successfully
+* committed.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.form.XUpdateBroadcaster
+*/
+public class _XUpdateBroadcaster extends MultiMethodTest {
+
+ public XUpdateBroadcaster oObj = null;
+ UpdateChecker checker = null ;
+
+ /**
+ * Interface for relation. Updating, committing and checking
+ * if data was committed is object dependent behaviour.
+ */
+ public interface UpdateChecker {
+ /**
+ * Method must make some data update in the object tested.
+ */
+ void update() throws com.sun.star.uno.Exception ;
+ /**
+ * Method must commit data change made by method <code>update</code>.
+ */
+ void commit() throws com.sun.star.uno.Exception ;
+ /**
+ * Checks if the data committed by <code>commit</code> method
+ * became permanent in data source.
+ * @return <code>true</code> if data was committed.
+ */
+ boolean wasCommited() throws com.sun.star.uno.Exception ;
+ }
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ checker = (UpdateChecker)
+ tEnv.getObjRelation("XUpdateBroadcaster.Checker") ;
+ if (checker == null) {
+ log.println("Relation not found") ;
+ throw new StatusException("Relation not found",
+ new NullPointerException("Relation not found")) ;
+ }
+ }
+
+ /**
+ * Listener implementation, which can accept or reject update
+ * requests and store event calls.
+ */
+ protected static class TestListener implements XUpdateListener {
+ /**
+ * Indicates must listener approve update requests or not.
+ */
+ public boolean approve = false ;
+ /**
+ * Indicates that <code>approveUpdate</code> method was called.
+ */
+ public boolean approveCalled = false ;
+ /**
+ * Indicates that <code>updated</code> method was called.
+ */
+ public boolean updateCalled = false ;
+
+ /**
+ * Clears all flags.
+ */
+ public void init() {
+ approveCalled = false ;
+ updateCalled = false ;
+ }
+ public void disposing(EventObject ev) {}
+ public boolean approveUpdate(EventObject ev) {
+ approveCalled = true ;
+ return approve ;
+ }
+ public void updated(EventObject ev) {
+ updateCalled = true ;
+ }
+ }
+
+ private final TestListener listener = new TestListener();
+
+ /**
+ * The listener methods calls are checked twice with approving
+ * and rejecting updates. <p>
+ * Has <b>OK</b> status if on update rejected only <code>
+ * approveUpdate</code> listener method was called, and if
+ * on update approved <code>approveUpdate</code> and
+ * <code>updated</code> methods called, and data was committed
+ * to the source.
+ */
+ public void _addUpdateListener() {
+ boolean bResult = true;
+
+ oObj.addUpdateListener(listener) ;
+
+ try {
+ checker.update() ;
+ waitForEventIdle();
+ checker.commit() ;
+ waitForEventIdle();
+ boolean committed = checker.wasCommited() ;
+
+ waitForEventIdle();
+
+ bResult = listener.approveCalled &&
+ ! listener.updateCalled &&
+ ! committed ;
+
+ log.println("Calling with no approving : approveUpdate() was " +
+ (listener.approveCalled ? "":"NOT")+" called, updated() was "+
+ (listener.updateCalled ? "":"NOT")+" called, the value was " +
+ (committed ? "" : "NOT") + " committed.") ;
+
+ waitForEventIdle();
+
+ listener.init() ;
+ listener.approve = true ;
+ waitForEventIdle();
+ checker.update() ;
+ waitForEventIdle();
+ checker.commit() ;
+ waitForEventIdle();
+ committed = checker.wasCommited() ;
+
+ waitForEventIdle();
+
+ log.println("Calling with approving : approveUpdate() was " +
+ (listener.approveCalled ? "":"NOT")+" called, updated() was "+
+ (listener.updateCalled ? "":"NOT")+" called, the value was "+
+ (committed ? "" : "NOT") + " committed.") ;
+
+ bResult = listener.approveCalled &&
+ listener.updateCalled &&
+ committed ;
+ } catch (com.sun.star.uno.Exception e) {
+ bResult = false ;
+ e.printStackTrace(log) ;
+ }
+
+ tRes.tested("addUpdateListener()", bResult);
+ }
+
+ /**
+ * Removes listener, updates data, and checks if no listener
+ * methods were called. <p>
+ * Has <b> OK </b> status if after listener removing no of its methods
+ * were called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addUpdateListener </code> : to have a listener added.</li>
+ * </ul>
+ */
+ public void _removeUpdateListener() {
+ requiredMethod("addUpdateListener()");
+ boolean bResult = true;
+
+ listener.init() ;
+ listener.approve = true ;
+
+ oObj.removeUpdateListener(listener);
+
+ try {
+ checker.update() ;
+ waitForEventIdle();
+ checker.commit() ;
+
+ waitForEventIdle();
+
+ bResult = ! listener.approveCalled &&
+ ! listener.updateCalled ;
+ }
+ catch (com.sun.star.uno.Exception e) {
+ log.println("Exception occurred during removeUpdateListener()");
+ e.printStackTrace(log);
+ bResult = false;
+ }
+
+ tRes.tested("removeUpdateListener()", bResult);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseCheckBox.java b/qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseCheckBox.java
new file mode 100644
index 000000000..23d01c1fe
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseCheckBox.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+package ifc.form.binding;
+
+import lib.MultiPropertyTest;
+
+public class _BindableDatabaseCheckBox extends MultiPropertyTest
+{
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseRadioButton.java b/qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseRadioButton.java
new file mode 100644
index 000000000..dd59dba3f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseRadioButton.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+package ifc.form.binding;
+
+import lib.MultiPropertyTest;
+
+public class _BindableDatabaseRadioButton extends MultiPropertyTest
+{
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/binding/_XBindableValue.java b/qadevOOo/tests/java/ifc/form/binding/_XBindableValue.java
new file mode 100644
index 000000000..e0131bb45
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/binding/_XBindableValue.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.form.binding;
+
+import com.sun.star.form.binding.XBindableValue;
+import com.sun.star.form.binding.XValueBinding;
+import com.sun.star.uno.Type;
+
+import java.util.ArrayList;
+
+import lib.MultiMethodTest;
+
+
+public class _XBindableValue extends MultiMethodTest {
+ public XBindableValue oObj;
+ protected XValueBinding xValueBinding = null;
+
+ public void _getValueBinding() {
+ requiredMethod("setValueBinding");
+
+ boolean res = true;
+ xValueBinding = oObj.getValueBinding();
+ res &= checkValueBinding(xValueBinding);
+ tRes.tested("getValueBinding()", res);
+ }
+
+ public void _setValueBinding() {
+ String rightOne = "";
+
+ try {
+ oObj.setValueBinding(new MyValueBinding());
+ rightOne = (String) oObj.getValueBinding().getValue(null);
+ } catch (com.sun.star.form.binding.IncompatibleTypesException e) {
+ e.printStackTrace();
+ }
+
+ boolean res = rightOne.equals("MyValueBinding");
+
+ if (!res) {
+ log.println("Expected: MyValueBinding");
+ log.println("getting: " + rightOne);
+ }
+
+ tRes.tested("setValueBinding()", res);
+ }
+
+ protected boolean checkValueBinding(XValueBinding xValueBinding) {
+ boolean res = true;
+ Type[] types = xValueBinding.getSupportedValueTypes();
+ log.println("Checking: ");
+
+ for (int i = 0; i < types.length; i++) {
+ log.println("\t" + types[i].getTypeName());
+
+ boolean localRes = xValueBinding.supportsType(types[i]);
+
+ if (!localRes) {
+ log.println("\t\tsupportsType returns false -- FAILED");
+ } else {
+ log.println("\t\tis supported -- OK");
+ }
+
+ res &= localRes;
+ }
+
+ return res;
+ }
+
+ static class MyValueBinding implements XValueBinding {
+ private final ArrayList<Type> types = new ArrayList<Type>();
+
+ public com.sun.star.uno.Type[] getSupportedValueTypes() {
+ return types.toArray(new Type[types.size()]);
+ }
+
+ public Object getValue(com.sun.star.uno.Type type)
+ throws com.sun.star.form.binding.IncompatibleTypesException {
+ return "MyValueBinding";
+ }
+
+ public void setValue(Object obj)
+ throws com.sun.star.form.binding.IncompatibleTypesException,
+ com.sun.star.lang.NoSupportException {
+ }
+
+ public boolean supportsType(com.sun.star.uno.Type type) {
+ types.add(type);
+ return true;
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/form/component/_CheckBox.java b/qadevOOo/tests/java/ifc/form/component/_CheckBox.java
new file mode 100644
index 000000000..9fc401a5a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_CheckBox.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.CheckBox</code>
+* service properties :
+* <ul>
+* <li><code> DefaultState</code></li>
+* <li><code> RefValue</code></li>
+* </ul> <p>
+* @see com.sun.star.form.component.CheckBox
+*/
+public class _CheckBox extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_ComboBox.java b/qadevOOo/tests/java/ifc/form/component/_ComboBox.java
new file mode 100644
index 000000000..84001ce11
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_ComboBox.java
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.ComboBox</code>
+* service properties :
+* <ul>
+* <li><code> DefaultText</code></li>
+* </ul> <p>
+* @see com.sun.star.form.component.ComboBox
+*/
+public class _ComboBox extends MultiPropertyTest {
+ // these properties don't needed in special code.
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_CommandButton.java b/qadevOOo/tests/java/ifc/form/component/_CommandButton.java
new file mode 100644
index 000000000..ac1bfaafd
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_CommandButton.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.CommandButton</code>
+* service properties :
+* <ul>
+* <li><code> ButtonType</code></li>
+* <li><code> TargetFrame</code></li>
+* <li><code> TargetURL</code></li>
+* </ul>
+* @see com.sun.star.form.component.CommandButton
+*/
+public class _CommandButton extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_CurrencyField.java b/qadevOOo/tests/java/ifc/form/component/_CurrencyField.java
new file mode 100644
index 000000000..ae1d7de26
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_CurrencyField.java
@@ -0,0 +1,50 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.form.component.CurrencyField</code>
+* service properties :
+* <ul>
+* <li><code> DefaultValue</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.CurrencyField
+*/
+public class _CurrencyField extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _DefaultValue() {
+ testProperty("DefaultValue", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return util.utils.isVoid(old) ? new Double(17.5) :
+ super.getNewValue(p, old) ;
+ }
+ }) ;
+ }
+} // finish class _CurrencyField
+
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DataForm.java b/qadevOOo/tests/java/ifc/form/component/_DataForm.java
new file mode 100644
index 000000000..4ea3e11ce
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DataForm.java
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.form.TabulatorCycle;
+import com.sun.star.uno.Enum;
+
+/**
+* Testing <code>com.sun.star.form.component.DataForm</code>
+* service properties :
+* <ul>
+* <li><code> MasterFields</code></li>
+* <li><code> DetailFields</code></li>
+* <li><code> Cycle</code></li>
+* <li><code> NavigationBarMode</code></li>
+* <li><code> AllowInserts</code></li>
+* <li><code> AllowUpdates</code></li>
+* <li><code> AllowDeletes</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.DataForm
+*/
+public class _DataForm extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _NavigationBarMode() {
+ testProperty("NavigationBarMode", new PropertyTester() {
+ @Override
+ public String toString(Object obj) {
+ if (util.utils.isVoid(obj)) {
+ return "null";
+ } else {
+ return "(" + obj.getClass().toString() + ")"
+ + ((Enum)obj).getValue();
+ }
+ }
+ });
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _Cycle() {
+ testProperty("Cycle", new PropertyTester() {
+ @Override
+ public Object getNewValue(String propName, Object oldValue) {
+ return TabulatorCycle.CURRENT;
+ }
+ @Override
+ public String toString(Object obj) {
+ if (util.utils.isVoid(obj))
+ return "null";
+ else
+ return "(" + obj.getClass().toString() + ")"
+ + ((Enum)obj).getValue();
+ }
+ });
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabaseComboBox.java b/qadevOOo/tests/java/ifc/form/component/_DatabaseComboBox.java
new file mode 100644
index 000000000..cb72ff5ed
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabaseComboBox.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component ;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.DatabaseComboBox</code>
+* service properties :
+* <ul>
+* <li><code> ConvertEmptyToNull</code></li>
+* <li><code> ListSource</code></li>
+* <li><code> ListSourceType</code></li>
+* </ul> <p>
+* All properties are tested by class <code>MultiPropertyTest</code>
+* @see com.sun.star.form.component.DatabaseComboBox
+*/
+public class _DatabaseComboBox extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabaseForm.java b/qadevOOo/tests/java/ifc/form/component/_DatabaseForm.java
new file mode 100644
index 000000000..887c881a2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabaseForm.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+import util.dbg;
+
+import com.sun.star.form.TabulatorCycle;
+import com.sun.star.uno.Enum;
+import java.io.UnsupportedEncodingException;
+
+/**
+* Testing <code>com.sun.star.form.component.DatabaseForm</code>
+* service properties:
+* <ul>
+* <li><code> MasterFields</code></li>
+* <li><code> DetailFields</code></li>
+* <li><code> Cycle</code></li>
+* <li><code> NavigationBarMode</code></li>
+* <li><code> AllowInserts</code></li>
+* <li><code> AllowUpdates</code></li>
+* <li><code> AllowDeletes</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.DatabaseForm
+*/
+public class _DatabaseForm extends MultiPropertyTest {
+
+ /**
+ * In this property test only debugging information output
+ * is customized.
+ */
+ public void _NavigationBarMode() throws UnsupportedEncodingException {
+ dbg.printPropertyInfo(oObj, "NavigationBarMode");
+ testProperty("NavigationBarMode", new PropertyTester() {
+ @Override
+ public String toString(Object obj) {
+ if (obj == null) {
+ return "null";
+ } else {
+ return "(" + obj.getClass().toString() + ")"
+ + ((Enum)obj).getValue();
+ }
+ }
+ });
+ }
+
+ /**
+ * This property new value is always fixed and debugging
+ * information output is customized.
+ */
+ public void _Cycle() throws UnsupportedEncodingException {
+ dbg.printPropertyInfo(oObj, "Cycle");
+ testProperty("Cycle", new PropertyTester() {
+ @Override
+ public Object getNewValue(String propName, Object oldValue) {
+ return TabulatorCycle.CURRENT;
+ }
+
+ @Override
+ public String toString(Object obj) {
+ if (obj == null) {
+ return "null";
+ } else {
+ return "(" + obj.getClass().toString() + ")"
+ + ((Enum)obj).getValue();
+ }
+ }
+ });
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabaseFormattedField.java b/qadevOOo/tests/java/ifc/form/component/_DatabaseFormattedField.java
new file mode 100644
index 000000000..85b352ef6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabaseFormattedField.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component ;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.DatabaseFormattedField</code>
+* service properties :
+* <ul>
+* <li><code> ConvertEmptyToNull</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.DatabaseFormattedField
+*/
+public class _DatabaseFormattedField extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabaseImageControl.java b/qadevOOo/tests/java/ifc/form/component/_DatabaseImageControl.java
new file mode 100644
index 000000000..ab675911a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabaseImageControl.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.DatabaseImageControl</code>
+* service properties :
+* <ul>
+* <li><code> ReadOnly</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.DatabaseImageControl
+*/
+public class _DatabaseImageControl extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabaseListBox.java b/qadevOOo/tests/java/ifc/form/component/_DatabaseListBox.java
new file mode 100644
index 000000000..ef8299080
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabaseListBox.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/*
+* Testing <code>com.sun.star.form.component.DatabaseListBox</code>
+* service properties :
+* <ul>
+* <li><code> BoundColumn</code></li>
+* <li><code> ListSourceType</code></li>
+* </ul> <p>
+* All properties testing is automated by
+* <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.DatabaseListBox
+*/
+public class _DatabaseListBox extends MultiPropertyTest {
+ // these properties don't needed in special code.
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabasePatternField.java b/qadevOOo/tests/java/ifc/form/component/_DatabasePatternField.java
new file mode 100644
index 000000000..184e92511
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabasePatternField.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.form.component.DatabasePatternField</code>
+* service properties :
+* <ul>
+* <li><code> ConvertEmptyToNull</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.DatabasePatternField
+*/
+public class _DatabasePatternField extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DatabaseTextField.java b/qadevOOo/tests/java/ifc/form/component/_DatabaseTextField.java
new file mode 100644
index 000000000..37ff264c6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DatabaseTextField.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.form.component.DatabaseTextField</code>
+* service properties :
+* <ul>
+* <li><code> ConvertEmptyToNull</code></li>
+* </ul> <p>
+* All properties are tested by class <code>MultiPropertyTest</code>
+* @see com.sun.star.form.component.DatabaseTextField
+*/
+public class _DatabaseTextField extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_DateField.java b/qadevOOo/tests/java/ifc/form/component/_DateField.java
new file mode 100644
index 000000000..4a0688a22
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_DateField.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.DateField</code>
+* service properties :
+* <ul>
+* <li><code> DefaultDate</code></li>
+* </ul>
+* @see com.sun.star.form.component.DateField
+*/
+public class _DateField extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _DefaultDate() {
+ testProperty("DefaultDate", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Integer.valueOf(20010507) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_FileControl.java b/qadevOOo/tests/java/ifc/form/component/_FileControl.java
new file mode 100644
index 000000000..2cc5e5292
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_FileControl.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/*
+* Testing <code>com.sun.star.form.component.FileControl</code>
+* service properties :
+* <ul>
+* <li><code> DefaultText</code></li>
+* </ul>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.FileControl
+*/
+public class _FileControl extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_FormattedField.java b/qadevOOo/tests/java/ifc/form/component/_FormattedField.java
new file mode 100644
index 000000000..37ce620f3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_FormattedField.java
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component ;
+
+import lib.MultiPropertyTest;
+
+public class _FormattedField extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_GridControl.java b/qadevOOo/tests/java/ifc/form/component/_GridControl.java
new file mode 100644
index 000000000..de773f4d2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_GridControl.java
@@ -0,0 +1,96 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.GridControl</code>
+* service properties :
+* <ul>
+* <li><code> Border</code></li>
+* <li><code> Enabled</code></li>
+* <li><code> FontDescriptor</code></li>
+* <li><code> RowHeight</code></li>
+* <li><code> Tabstop</code></li>
+* <li><code> TextColor</code></li>
+* </ul>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.GridControl
+*/
+public class _GridControl extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _RowHeight() {
+ testProperty("RowHeight", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Integer.valueOf(11) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _Tabstop() {
+ testProperty("Tabstop", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Boolean.TRUE :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Integer.valueOf(342) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _BorderColor() {
+ testProperty("BorderColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Integer.valueOf(342) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+} // finish class _GridControl
+
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_HTMLForm.java b/qadevOOo/tests/java/ifc/form/component/_HTMLForm.java
new file mode 100644
index 000000000..a79e2500e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_HTMLForm.java
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.HTMLForm</code>
+* service properties :
+* <ul>
+* <li><code> TargetFrame</code></li>
+* <li><code> TargetURL</code></li>
+* <li><code> SubmitMethod</code></li>
+* <li><code> SubmitEncoding</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.HTMLForm
+*/
+public class _HTMLForm extends MultiPropertyTest {
+
+} // finish class _HTMLForm
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_HiddenControl.java b/qadevOOo/tests/java/ifc/form/component/_HiddenControl.java
new file mode 100644
index 000000000..eb77e1cd5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_HiddenControl.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.HiddenControl</code>
+* service properties :
+* <ul>
+* <li><code> HiddenValue</code></li>
+* </ul>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.HiddenControl
+*/
+public class _HiddenControl extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_ImageButton.java b/qadevOOo/tests/java/ifc/form/component/_ImageButton.java
new file mode 100644
index 000000000..208defc43
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_ImageButton.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.ImageButton</code>
+* service properties :
+* <ul>
+* <li><code> ButtonType</code></li>
+* <li><code> TargetFrame</code></li>
+* <li><code> TargetURL</code></li>
+* </ul>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.ImageButton
+*/
+public class _ImageButton extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_ListBox.java b/qadevOOo/tests/java/ifc/form/component/_ListBox.java
new file mode 100644
index 000000000..bdcdad7f1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_ListBox.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.form.component.ListBox</code>
+* service properties :
+* <ul>
+* <li><code> DefaultSelection</code></li>
+* <li><code> ListSource</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.ListBox
+*/
+public class _ListBox extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_NavigationToolBar.java b/qadevOOo/tests/java/ifc/form/component/_NavigationToolBar.java
new file mode 100644
index 000000000..23e3473c1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_NavigationToolBar.java
@@ -0,0 +1,45 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+public class _NavigationToolBar extends MultiPropertyTest {
+
+ public void _TextColor() {
+ testProperty("TextColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Integer.valueOf(20010507) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+
+ public void _TextLineColor() {
+ testProperty("TextLineColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? Integer.valueOf(20050507) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/form/component/_NumericField.java b/qadevOOo/tests/java/ifc/form/component/_NumericField.java
new file mode 100644
index 000000000..463e780c9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_NumericField.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.form.component.NumericField</code>
+* service properties :
+* <ul>
+* <li><code> DefaultValue</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.NumericField
+*/
+public class _NumericField extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _DefaultValue() {
+ testProperty("DefaultValue", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ return util.utils.isVoid(old) ? new Double(111.11) :
+ super.getNewValue(prop, old) ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_PatternField.java b/qadevOOo/tests/java/ifc/form/component/_PatternField.java
new file mode 100644
index 000000000..67623ddfd
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_PatternField.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.PatternField</code>
+* service properties :
+* <ul>
+* <li><code> DefaultText</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.PatternField
+*/
+public class _PatternField extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_RadioButton.java b/qadevOOo/tests/java/ifc/form/component/_RadioButton.java
new file mode 100644
index 000000000..17a45a46f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_RadioButton.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.form.component.RadioButton</code>
+* service properties :
+* <ul>
+* <li><code> DefaultState</code></li>
+* <li><code> RefValue</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.RadioButton
+*/
+public class _RadioButton extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_RichTextControl.java b/qadevOOo/tests/java/ifc/form/component/_RichTextControl.java
new file mode 100644
index 000000000..4150be3a5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_RichTextControl.java
@@ -0,0 +1,25 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+public class _RichTextControl extends MultiPropertyTest {
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/component/_ScrollBar.java b/qadevOOo/tests/java/ifc/form/component/_ScrollBar.java
new file mode 100644
index 000000000..d6021c73d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_ScrollBar.java
@@ -0,0 +1,25 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+public class _ScrollBar extends MultiPropertyTest{
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/component/_SpinButton.java b/qadevOOo/tests/java/ifc/form/component/_SpinButton.java
new file mode 100644
index 000000000..8d7ae9c11
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_SpinButton.java
@@ -0,0 +1,25 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+public class _SpinButton extends MultiPropertyTest {
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/component/_TextField.java b/qadevOOo/tests/java/ifc/form/component/_TextField.java
new file mode 100644
index 000000000..f6b81a1ea
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_TextField.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.form.component.TextField</code>
+* service properties :
+* <ul>
+* <li><code> DefaultText</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.TextField
+*/
+public class _TextField extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/component/_TimeField.java b/qadevOOo/tests/java/ifc/form/component/_TimeField.java
new file mode 100644
index 000000000..1faa5d959
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/component/_TimeField.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.component;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.form.component.TimeField</code>
+* service properties :
+* <ul>
+* <li><code> DefaultTime</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.form.component.TimeField
+*/
+public class _TimeField extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must defined.
+ */
+ public void _DefaultTime() {
+ testProperty("DefaultTime", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return utils.isVoid(old) ? Integer.valueOf(4321) :
+ super.getNewValue(p, old) ;
+ }
+ }) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/form/submission/_XSubmission.java b/qadevOOo/tests/java/ifc/form/submission/_XSubmission.java
new file mode 100644
index 000000000..ce70afb20
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/submission/_XSubmission.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.form.submission;
+
+import com.sun.star.form.submission.XSubmission;
+import com.sun.star.form.submission.XSubmissionVetoListener;
+
+import lib.MultiMethodTest;
+
+
+public class _XSubmission extends MultiMethodTest {
+ public XSubmission oObj = null;
+
+ public void _addSubmissionVetoListener() {
+ log.println(
+ "submitting with VetoListener ... exception should appear");
+
+ boolean res = true;
+ XSubmissionVetoListener aListener = new MyListener();
+
+ try {
+ oObj.addSubmissionVetoListener(aListener);
+ oObj.submit();
+ res = false;
+ log.println(
+ "the expected exception wasn't thrown ... FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(
+ "Expected exception was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println(
+ "NoSupportExpected exception was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ } catch (com.sun.star.util.VetoException e) {
+ log.println(
+ "VetoException was thrown while calling submit() "
+ + e.getMessage() + "OK");
+ }
+
+ try {
+ oObj.removeSubmissionVetoListener(aListener);
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println(
+ "NoSupportExpected exception was thrown while removing the listener) "
+ + e.getMessage() + "FAILED");
+ res = false;
+ }
+
+ tRes.tested("addSubmissionVetoListener()", res);
+ }
+
+ public void _removeSubmissionVetoListener() {
+ log.println(
+ "submitting with VetoListener ... exception should appear");
+
+ boolean res = true;
+ XSubmissionVetoListener aListener = new MyListener();
+
+ try {
+ oObj.addSubmissionVetoListener(aListener);
+ oObj.submit();
+ res = false;
+ log.println(
+ "the expected exception wasn't thrown ... FAILED");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(
+ "WrappedTargetException exception was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println(
+ "NoSupportExpected exception was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ } catch (com.sun.star.util.VetoException e) {
+ log.println(
+ "VetoException was thrown while calling submit() "
+ + e.getMessage() + "OK");
+ }
+
+ log.println("removing the listener");
+
+ try {
+ oObj.removeSubmissionVetoListener(aListener);
+ } catch (com.sun.star.lang.NoSupportException e) {
+ log.println(
+ "NoSupportExpected exception was thrown while removing the listener) "
+ + e.getMessage() + "FAILED");
+ res = false;
+ }
+
+ log.println("Sleeping 2s");
+
+ waitForEventIdle();
+
+ log.println("... done");
+
+ log.println(
+ "submitting after VetoListener has been removed... no exception should appear");
+
+ try {
+ oObj.submit();
+ log.println("No Exception ... OK");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(
+ "WrappedTargetException was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ } catch (com.sun.star.util.VetoException e) {
+ log.println(
+ "VetoException was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ }
+
+ tRes.tested("removeSubmissionVetoListener()", res);
+ }
+
+ /** Calls submit and returns true if no exception was thrown
+ * then adds a SubmissionVetoListener and checks if the
+ * exception is thrown in case of a veto of this listener.
+ */
+ public void _submit() {
+ boolean res = true;
+ log.println(
+ "submitting without VetoListener ... no exception should appear");
+
+ try {
+ oObj.submit();
+ log.println("No Exception ... OK");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(
+ "Exception was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ } catch (com.sun.star.util.VetoException e) {
+ log.println(
+ "VetoException was thrown while calling submit() "
+ + e.getMessage() + "FAILED");
+ res = false;
+ }
+
+ tRes.tested("submit()", res);
+ }
+
+ public class MyListener implements XSubmissionVetoListener {
+ public void disposing(
+ com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void submitting(
+ com.sun.star.lang.EventObject eventObject)
+ throws com.sun.star.util.VetoException {
+ log.println("MyVetoListener was called");
+ throw new com.sun.star.util.VetoException(
+ "submission isn't allowed ...");
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/submission/_XSubmissionSupplier.java b/qadevOOo/tests/java/ifc/form/submission/_XSubmissionSupplier.java
new file mode 100644
index 000000000..d0fd030af
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/submission/_XSubmissionSupplier.java
@@ -0,0 +1,72 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.form.submission;
+
+import com.sun.star.form.submission.XSubmission;
+import com.sun.star.form.submission.XSubmissionSupplier;
+import com.sun.star.form.submission.XSubmissionVetoListener;
+import com.sun.star.task.XInteractionHandler;
+import lib.MultiMethodTest;
+
+public class _XSubmissionSupplier extends MultiMethodTest
+{
+ public XSubmissionSupplier oObj = null;
+ public boolean submitWasCalled = false;
+
+ public void _Submission() {
+ XSubmission stub = new MyXSubmission();
+ oObj.setSubmission (stub);
+ XSubmission xSubmission = oObj.getSubmission ();
+ try {
+ xSubmission.submit ();
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception during submit "+e.getMessage ());
+ }
+ catch (com.sun.star.util.VetoException e) {
+ log.println("VetoException during submit "+e.getMessage ());
+ }
+ tRes.tested ("Submission()",submitWasCalled);
+ }
+
+ private class MyXSubmission implements XSubmission {
+
+ public void submit () throws com.sun.star.util.VetoException, com.sun.star.lang.WrappedTargetException
+ {
+ submitWasCalled=true;
+ log.println("MyXSubmission: someone called submit :-)");
+ }
+
+ public void submitWithInteraction( XInteractionHandler handler ) throws com.sun.star.util.VetoException, com.sun.star.lang.WrappedTargetException
+ {
+ log.println("MyXSubmission: someone called submitWithInteraction :-)");
+ }
+
+ public void addSubmissionVetoListener( XSubmissionVetoListener listener ) throws com.sun.star.lang.NoSupportException
+ {
+ throw new com.sun.star.lang.NoSupportException();
+ }
+
+ public void removeSubmissionVetoListener( XSubmissionVetoListener listener ) throws com.sun.star.lang.NoSupportException
+ {
+ throw new com.sun.star.lang.NoSupportException();
+ }
+
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/form/validation/_XValidatable.java b/qadevOOo/tests/java/ifc/form/validation/_XValidatable.java
new file mode 100644
index 000000000..eec5315ed
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/validation/_XValidatable.java
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.form.validation;
+
+import com.sun.star.form.validation.XValidatable;
+import com.sun.star.form.validation.XValidator;
+
+import lib.MultiMethodTest;
+
+
+public class _XValidatable extends MultiMethodTest {
+ public XValidatable oObj;
+
+ public void _getValidator() {
+ requiredMethod("setValidator()");
+
+ XValidator xValidator = oObj.getValidator();
+ boolean res = xValidator.isValid(Boolean.FALSE);
+ tRes.tested("getValidator()", res);
+ }
+
+ public void _setValidator() {
+ boolean res = false;
+
+ try {
+ oObj.setValidator(new MyValidator());
+
+ XValidator xValidator = oObj.getValidator();
+ String getting = xValidator.explainInvalid(null);
+ res = getting.equals("explainInvalid");
+
+ if (!res) {
+ log.println("\tExpected: explainInvalid");
+ log.println("\tGetting: " + getting);
+ log.println("FAILED");
+ }
+ } catch (com.sun.star.util.VetoException e) {
+ e.printStackTrace();
+ }
+
+ tRes.tested("setValidator()", res);
+ }
+
+ public static class MyValidator implements XValidator {
+ public void addValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener)
+ throws com.sun.star.lang.NullPointerException {
+ }
+
+ public String explainInvalid(Object obj) {
+ return "explainInvalid";
+ }
+
+ public boolean isValid(Object obj) {
+ return true;
+ }
+
+ public void removeValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener)
+ throws com.sun.star.lang.NullPointerException {
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java b/qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java
new file mode 100644
index 000000000..cb1dd831a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java
@@ -0,0 +1,229 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.form.validation;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XMultiPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.form.validation.XFormComponentValidityListener;
+import com.sun.star.form.validation.XValidatableFormComponent;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiMethodTest;
+
+import util.ValueChanger;
+
+import java.util.StringTokenizer;
+
+
+public class _XValidatableFormComponent extends MultiMethodTest
+{
+ public XValidatableFormComponent oObj;
+ protected XFormComponentValidityListener listener = null;
+ public boolean listenerCalled = false;
+ private String[] testPropsNames = null;
+ private int testPropsAmount = 0;
+
+ public void _addFormComponentValidityListener()
+ {
+ listener = new MyListener();
+
+ boolean res = true;
+
+ try
+ {
+ oObj.addFormComponentValidityListener(listener);
+ }
+ catch (com.sun.star.lang.NullPointerException e)
+ {
+ res = false;
+ e.printStackTrace();
+ }
+
+ changeAllProperties();
+ res &= listenerCalled;
+ tRes.tested("addFormComponentValidityListener()", res);
+ }
+
+ public void _getCurrentValue()
+ {
+ oObj.getCurrentValue();
+ tRes.tested("getCurrentValue()", true);
+ }
+
+ public void _isValid()
+ {
+ boolean res = oObj.isValid();
+ tRes.tested("isValid()", res);
+ }
+
+ public void _removeFormComponentValidityListener()
+ {
+ requiredMethod("isValid()");
+
+ try
+ {
+ oObj.removeFormComponentValidityListener(listener);
+ }
+ catch (com.sun.star.lang.NullPointerException e)
+ {
+ e.printStackTrace();
+ }
+
+ listenerCalled = false;
+ changeAllProperties();
+ tRes.tested("removeFormComponentValidityListener()", true);
+ }
+
+ protected void changeAllProperties()
+ {
+ XMultiPropertySet mProps =
+ UnoRuntime.queryInterface(
+ XMultiPropertySet.class, tEnv.getTestObject()
+ );
+ XPropertySetInfo propertySetInfo = mProps.getPropertySetInfo();
+ Property[] properties = propertySetInfo.getProperties();
+ getPropsToTest(properties);
+ log.println("Changing all properties");
+
+ Object[] gValues = mProps.getPropertyValues(testPropsNames);
+
+ for (int i = 0; i < testPropsAmount; i++)
+ {
+ Object oldValue = gValues[i];
+
+ if (
+ testPropsNames[i].equals("Value")
+ || testPropsNames[i].equals("EffectiveValue")
+ )
+ {
+ oldValue = Integer.valueOf(10);
+ }
+ else if (testPropsNames[i].equals("Time"))
+ {
+ oldValue = new com.sun.star.util.Time(
+ 10, (short) 10, (short) 10, (short) 10, false);
+ }
+
+ Object newValue = ValueChanger.changePValue(oldValue);
+ gValues[i] = newValue;
+ }
+
+ try
+ {
+ mProps.setPropertyValues(testPropsNames, gValues);
+ }
+ catch (com.sun.star.beans.PropertyVetoException e)
+ {
+ log.println("Exception occurred while setting properties");
+ e.printStackTrace(log);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ log.println("Exception occurred while setting properties");
+ e.printStackTrace(log);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("Exception occurred while setting properties");
+ e.printStackTrace(log);
+ }
+ // end of try-catch
+ }
+
+ //Get the properties being tested
+ private void getPropsToTest(Property[] properties)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ for (int i = 0; i < properties.length; i++)
+ {
+ Property property = properties[i];
+ String name = property.Name;
+ boolean isWritable =
+ ((property.Attributes & PropertyAttribute.READONLY) == 0);
+ boolean isNotNull =
+ ((property.Attributes & PropertyAttribute.MAYBEVOID) == 0);
+ //these have values that are interfaces we can't change
+ if (
+ name.equals("TextUserDefinedAttributes")
+ || name.equals("ReferenceDevice")
+ || name.equals("ParaUserDefinedAttributes")
+ )
+ {
+ isWritable = false;
+ }
+
+ if (
+ name.equals("Value") || name.equals("Time")
+ || name.equals("Date")
+ )
+ {
+ sb = new StringBuilder(name + ";");
+ }
+
+ if (
+ isWritable && isNotNull && (name.indexOf("Format") < 0)
+ && !name.equals("Enabled")
+ )
+ {
+ sb.append(name + ";");
+ }
+ }
+
+ String bound = sb.toString();
+ // endfor
+
+ //get an array of bound properties
+ if (bound.equals(""))
+ {
+ bound = "none";
+ }
+
+ if (tEnv.getTestCase().getObjectName().indexOf("Formatted") > 0)
+ {
+ bound = "EffectiveValue;";
+ }
+
+ StringTokenizer ST = new StringTokenizer(bound, ";");
+ int nr = ST.countTokens();
+ testPropsNames = new String[nr];
+
+ for (int i = 0; i < nr; i++)
+ testPropsNames[i] = ST.nextToken();
+
+ testPropsAmount = nr;
+ }
+
+ protected class MyListener implements XFormComponentValidityListener
+ {
+ public void componentValidityChanged(
+ com.sun.star.lang.EventObject eventObject
+ )
+ {
+ System.out.println("componentValidityChanged called");
+ listenerCalled = true;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject eventObject)
+ {
+ System.out.println("Listener Disposed");
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java b/qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java
new file mode 100644
index 000000000..3c4362758
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.form.validation;
+
+import com.sun.star.form.validation.XValidatable;
+import com.sun.star.form.validation.XValidator;
+import com.sun.star.form.validation.XValidityConstraintListener;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiMethodTest;
+
+
+public class _XValidityConstraintListener extends MultiMethodTest {
+ public XValidityConstraintListener oObj;
+ protected boolean ValidatorCalled = false;
+
+ public void _validityConstraintChanged() {
+ boolean res = false;
+ try {
+ XValidatable xValidatable = UnoRuntime.queryInterface(
+ XValidatable.class,
+ tEnv.getTestObject());
+
+ log.println("adding Validator");
+ XValidator xValidator = new MyValidator();
+ xValidatable.setValidator(xValidator);
+ ValidatorCalled = false;
+
+ log.println("calling validityConstraintChanged()");
+ oObj.validityConstraintChanged(
+ new com.sun.star.lang.EventObject());
+ res = ValidatorCalled;
+ } catch (com.sun.star.util.VetoException e) {
+ e.printStackTrace();
+ }
+ tRes.tested("validityConstraintChanged()",res);
+ }
+
+ /*
+ * The validator to add this Listener implementation
+ *
+ */
+ public class MyValidator implements XValidator {
+ public void addValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener)
+ throws com.sun.star.lang.NullPointerException {
+ log.println("\t Validator::addValidityConstraintListener called");
+ }
+
+ public String explainInvalid(Object obj) {
+ log.println("\t Validator::explainInvalid() called");
+
+ return "explainInvalid";
+ }
+
+ public boolean isValid(Object obj) {
+ log.println("\t Validator::isValid() called");
+ ValidatorCalled = true;
+ return false;
+ }
+
+ public void removeValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener)
+ throws com.sun.star.lang.NullPointerException {
+ log.println("\t Validator::removeValidityConstraintListener called");
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/formula/_FormulaProperties.java b/qadevOOo/tests/java/ifc/formula/_FormulaProperties.java
new file mode 100644
index 000000000..62384ae36
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/formula/_FormulaProperties.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.formula;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.formula.FormulaProperties</code>
+* service properties :
+* <ul>
+* <li><code> Alignment</code></li>
+* <li><code> BaseFontHeight</code></li>
+* <li><code> CustomFontNameFixed</code></li>
+* <li><code> FontFixedIsItalic</code></li>
+* <li><code> FontFixedIsBold</code></li>
+* <li><code> CustomFontNameSans</code></li>
+* <li><code> FontSansIsItalic</code></li>
+* <li><code> FontSansIsBold</code></li>
+* <li><code> CustomFontNameSerif</code></li>
+* <li><code> FontSerifIsItalic</code></li>
+* <li><code> FontSerifIsBold</code></li>
+* <li><code> FontNameFunctions</code></li>
+* <li><code> FontFunctionsIsItalic</code></li>
+* <li><code> FontFunctionsIsBold</code></li>
+* <li><code> FontNameNumbers</code></li>
+* <li><code> FontNumbersIsItalic</code></li>
+* <li><code> FontNumbersIsBold</code></li>
+* <li><code> FontNameText</code></li>
+* <li><code> FontTextIsItalic</code></li>
+* <li><code> FontTextIsBold</code></li>
+* <li><code> FontNameVariables</code></li>
+* <li><code> FontVariablesIsItalic</code></li>
+* <li><code> FontVariablesIsBold</code></li>
+* <li><code> Formula</code></li>
+* <li><code> IsScaleAllBrackets</code></li>
+* <li><code> IsTextMode</code></li>
+* <li><code> RelativeFontHeightFunctions</code></li>
+* <li><code> RelativeFontHeightIndices</code></li>
+* <li><code> RelativeFontHeightLimits</code></li>
+* <li><code> RelativeFontHeightOperators</code></li>
+* <li><code> RelativeFontHeightText</code></li>
+* <li><code> RelativeBracketDistance</code></li>
+* <li><code> RelativeBracketExcessSize</code></li>
+* <li><code> RelativeFractionBarExcessLength</code></li>
+* <li><code> RelativeFractionBarLineWeight</code></li>
+* <li><code> RelativeFractionDenominatorDepth</code></li>
+* <li><code> RelativeFractionNumeratorHeight</code></li>
+* <li><code> RelativeIndexSubscript</code></li>
+* <li><code> RelativeIndexSuperscript</code></li>
+* <li><code> RelativeLineSpacing</code></li>
+* <li><code> RelativeLowerLimitDistance</code></li>
+* <li><code> RelativeMatrixColumnSpacing</code></li>
+* <li><code> RelativeMatrixLineSpacing</code></li>
+* <li><code> RelativeOperatorExcessSize</code></li>
+* <li><code> RelativeOperatorSpacing</code></li>
+* <li><code> RelativeRootSpacing</code></li>
+* <li><code> RelativeScaleBracketExcessSize</code></li>
+* <li><code> RelativeSpacing</code></li>
+* <li><code> RelativeSymbolMinimumHeight</code></li>
+* <li><code> RelativeSymbolPrimaryHeight</code></li>
+* <li><code> RelativeUpperLimitDistance</code></li>
+* <li><code> TopMargin</code></li>
+* <li><code> BottomMargin</code></li>
+* <li><code> LeftMargin</code></li>
+* <li><code> RightMargin</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.formula.FormulaProperties
+*/
+public class _FormulaProperties extends MultiPropertyTest {
+
+
+} // finish class _FormulaProperties
+
diff --git a/qadevOOo/tests/java/ifc/frame/_Desktop.java b/qadevOOo/tests/java/ifc/frame/_Desktop.java
new file mode 100644
index 000000000..e43ed9850
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_Desktop.java
@@ -0,0 +1,45 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.frame.Desktop</code>
+* service properties:
+* <ul>
+* <li><code> HasBeamer </code></li>
+* <li><code> HasCommonTaskBar </code></li>
+* <li><code> HasStylist </code></li>
+* <li><code> HasExplorer </code></li>
+* <li><code> HasFunctionBar </code></li>
+* <li><code> HasMacroBar </code></li>
+* <li><code> HasNavigator </code></li>
+* <li><code> HasObjectBar </code></li>
+* <li><code> HasOptionBar </code></li>
+* <li><code> HasStatusBar </code></li>
+* <li><code> HasToolBar </code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.frame.Desktop
+*/
+public class _Desktop extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_Frame.java b/qadevOOo/tests/java/ifc/frame/_Frame.java
new file mode 100644
index 000000000..e20c16817
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_Frame.java
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiPropertyTest;
+
+public class _Frame extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_FrameLoader.java b/qadevOOo/tests/java/ifc/frame/_FrameLoader.java
new file mode 100644
index 000000000..91c57ae18
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_FrameLoader.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.frame.FrameLoader</code>
+* service properties :
+* <ul>
+* <li><code> Types</code></li>
+* <li><code> UIName</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.frame.FrameLoader
+*/
+public class _FrameLoader extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_SynchronousFrameLoader.java b/qadevOOo/tests/java/ifc/frame/_SynchronousFrameLoader.java
new file mode 100644
index 000000000..182612019
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_SynchronousFrameLoader.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.frame.SynchronousFrameLoader</code>
+* service properties :
+* <ul>
+* <li><code> Types</code></li>
+* <li><code> UIName</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.frame.SynchronousFrameLoader
+*/
+public class _SynchronousFrameLoader extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XComponentLoader.java b/qadevOOo/tests/java/ifc/frame/_XComponentLoader.java
new file mode 100644
index 000000000..afda3657a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XComponentLoader.java
@@ -0,0 +1,139 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.PropertyState;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XComponentLoader;
+import com.sun.star.lang.XComponent;
+
+
+/**
+* Testing <code>com.sun.star.frame.XComponentLoader</code>
+* interface methods:
+* <ul>
+* <li><code> loadComponentFromURL() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XComponentLoader
+*/
+public class _XComponentLoader extends MultiMethodTest {
+ public XComponentLoader oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Method which tests the objects ability to load a
+ * component from URL. All available components are loaded by turns. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * @see XComponent
+ */
+ public void _loadComponentFromURL() throws Exception {
+ boolean result = true;
+
+ log.println("testing loadComponentFromURL() ... ");
+ try {
+ PropertyValue [] szEmptyArgs = new PropertyValue [0];
+ String frameName = "_blank";
+ XComponent oDoc = null;
+
+ log.println("load writer doc that contains links");
+ PropertyValue [] szArgs = new PropertyValue [1];
+ PropertyValue Arg = new PropertyValue();
+ Arg.Name = "UpdateDocMode";
+ Arg.Value = Short.valueOf(com.sun.star.document.UpdateDocMode.NO_UPDATE);
+ szArgs[0]=Arg;
+ String url = util.utils.getFullTestURL("Writer_link.sxw");
+ log.println("try to load '" + url + "'");
+ oDoc = oObj.loadComponentFromURL(
+ url, frameName, 0, szArgs);
+
+ waitForEventIdle();
+
+ oDoc.dispose();
+
+ url = util.utils.getFullTestURL("Calc_Link.sxc");
+ log.println("try to load '" + url + "'");
+ oDoc = oObj.loadComponentFromURL(
+ url, frameName, 0, szArgs);
+
+ waitForEventIdle();
+
+ oDoc.dispose();
+
+
+
+ log.println("load a blank impress doc");
+ Arg.Name = "OpenFlags";
+ Arg.Value = "S";
+ Arg.Handle = -1;
+ Arg.State = PropertyState.DEFAULT_VALUE;
+ szArgs[0]=Arg;
+ oDoc = oObj.loadComponentFromURL(
+ "private:factory/simpress", frameName, 0, szArgs );
+
+ log.println("disposing impress doc");
+ oDoc.dispose();
+
+ log.println("load a blank writer doc");
+ oDoc = oObj.loadComponentFromURL(
+ "private:factory/swriter", frameName, 0, szEmptyArgs );
+
+ log.println("disposing writer doc");
+ oDoc.dispose();
+
+ log.println("load a blank calc doc");
+ oDoc = oObj.loadComponentFromURL(
+ "private:factory/scalc", frameName, 0, szEmptyArgs );
+
+ log.println("disposing calc doc");
+ oDoc.dispose();
+
+ log.println("load a blank draw doc");
+ oDoc = oObj.loadComponentFromURL(
+ "private:factory/sdraw", frameName, 0, szEmptyArgs );
+
+ log.println("disposing draw doc");
+ oDoc.dispose();
+
+ log.println("load a blank math doc");
+ oDoc = oObj.loadComponentFromURL(
+ "private:factory/smath", frameName, 0, szEmptyArgs );
+
+ log.println("disposing math doc");
+ oDoc.dispose();
+
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while loading");
+ e.printStackTrace(log);
+ result=false;
+ }
+ catch (com.sun.star.io.IOException e) {
+ log.println("Exception occurred while loading");
+ e.printStackTrace(log);
+ result=false;
+ }
+
+ tRes.tested("loadComponentFromURL()", result);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XController.java b/qadevOOo/tests/java/ifc/frame/_XController.java
new file mode 100644
index 000000000..48ecad772
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XController.java
@@ -0,0 +1,218 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.util.XModifiable;
+
+
+/**
+* Testing <code>com.sun.star.frame.XController</code>
+* interface methods:
+* <ul>
+* <li><code> getFrame() </code></li>
+* <li><code> attachFrame() </code></li>
+* <li><code> getModel() </code></li>
+* <li><code> attachModel() </code></li>
+* <li><code> getViewData() </code></li>
+* <li><code> restoreViewData() </code></li>
+* <li><code> suspend() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Frame'</code> (of type <code>XFrame</code>):
+* any other frame, used for tests</li>
+* <li> <code>'FirstModel'</code> (of type <code>XModel</code>):
+* model of a controller tested</li>
+* <li> <code>'SecondModel'</code> (of type <code>XModel</code>):
+* other model, used for tests </li>
+* <li> <code>'HasViewData'</code> (of type <code>Boolean</code>):
+* (optional relation) if it exists, so controller has no view data</li>
+* <li> <code>'SecondController'</code> (of type <code>XController</code>):
+* other controller, used for tests </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XController
+*/
+public class _XController extends MultiMethodTest {
+ public XController oObj = null;
+ public XModel firstModel = null;
+ public XModel secondModel = null;
+ public XFrame frame = null;
+ public Object ViewData = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns object, that's equal to
+ * previously obtained object relation 'Frame'.
+ * The following method tests are to be completed successfully before:
+ * <ul>
+ * <li> <code> attachFrame() </code> : attaches frame obtained object
+ * relation 'Frame' </li>
+ * </ul>
+ */
+ public void _getFrame() {
+ requiredMethod("attachFrame()");
+ XFrame getting = oObj.getFrame();
+ boolean eq = getting.equals(frame);
+ if ( !eq ) {
+ log.println("Getting: " + getting.toString());
+ log.println("Expected: " + frame.toString());
+ }
+ tRes.tested("getFrame()", eq);
+ }
+
+ /**
+ * After obtaining a corresponding object relation test calls the method.
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _attachFrame() {
+ frame = (XFrame) tEnv.getObjRelation("Frame");
+ oObj.attachFrame(frame);
+ tRes.tested("attachFrame()", true);
+ }
+
+ /**
+ * At first object relation 'FirstModel' is gotten. Then test calls the
+ * method. <p>
+ * Has <b> OK </b> status if string representation of an object, returned by
+ * the method is equal to string representation of corresponding object
+ * relation.
+ */
+ public void _getModel() {
+ firstModel = (XModel) tEnv.getObjRelation("FirstModel");
+ XModel getting = oObj.getModel();
+ String out1 = "";
+ String out2 = "";
+ if ( (firstModel == null) ) out1="none";
+ else out1 = firstModel.toString();
+ if ( (getting == null) ) out2="none"; else out2 = getting.toString();
+ boolean eq = out1.equals(out2);
+ if ( !eq ) {
+ log.println("Getting: " + out2);
+ log.println("Expected: " + out1);
+ }
+ tRes.tested("getModel()", eq);
+ }
+
+ /**
+ * At first, we obtain an object relation 'SecondModel'. Then test calls
+ * the method and check result. <p>
+ * Has <b> OK </b> status if method returns true and attached model is
+ * equal to a model 'SecondModel' obtained before.
+ * <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getModel() </code> : returns model (XModel) of the
+ * XController object</li>
+ * </ul>
+ */
+ public void _attachModel() {
+ boolean result = false;
+
+ requiredMethod("getModel()");
+ secondModel = (XModel) tEnv.getObjRelation("SecondModel");
+ XModel gotBefore = oObj.getModel();
+ boolean attached = oObj.attachModel(secondModel);
+ XModel gotAfter = oObj.getModel();
+ if ( attached ) {
+ if ( ! gotBefore.equals(gotAfter) ) {
+ if ( gotAfter.equals(secondModel) ) {
+ result = true;
+ } else {
+ log.println("Attached and gotten models are not equal");
+ log.println("Getting: " + gotAfter.toString());
+ log.println("Expected: " + secondModel.toString());
+ }
+ } else {
+ log.println("method did not change model");
+ }
+ } else {
+ result=true;
+ log.println("attachModel() returns false");
+ log.println("as expected, see #82938");
+ }
+ tRes.tested("attachModel()", result);
+ boolean bResult = oObj.attachModel(firstModel);
+ log.println("attachModel() --> " + bResult);
+ }
+
+ /**
+ * At first gotten object relation 'HasViewData' is checked. Then if
+ * 'HasViewData' is null, test calls the method. <p>
+ * Has <b> OK </b> status if obtained object relation is not null, or if
+ * the method does not return null.
+ */
+ public void _getViewData() {
+ if (tEnv.getObjRelation("HasViewData") != null) {
+ log.println("This Object has no View Data");
+ tRes.tested("getViewData()", true);
+ return;
+ }
+ ViewData = oObj.getViewData();
+ tRes.tested( "getViewData()", ViewData != null );
+ }
+
+ /**
+ * If obtained object relation 'HasViewData' is null, test calls the method.
+ * <p>Has <b> OK </b> status if obtained object relation is not null, or
+ * if no exceptions were thrown while method call.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getViewData() </code> : gets view data of an object. </li>
+ * </ul>
+ */
+ public void _restoreViewData() {
+ requiredMethod("getViewData()");
+ if (tEnv.getObjRelation("HasViewData") != null) {
+ log.println("This Object has no View Data");
+ tRes.tested("restoreViewData()", true);
+ return;
+ }
+ oObj.restoreViewData(ViewData);
+ tRes.tested( "restoreViewData()", true );
+ }
+
+ /**
+ * Has <b> OK </b> status if the method returns true.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> restoreViewData() </code> : restores view status of an
+ * object </li>
+ * </ul>
+ */
+ public void _suspend() {
+ requiredMethod("restoreViewData()");
+ XModifiable modify = (XModifiable) tEnv.getObjRelation("Modifiable");
+ if (modify != null) {
+ try {
+ modify.setModified(false);
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("PropertyVetoException, couldn't change Modify flag");
+ }
+ }
+ tRes.tested( "suspend()", oObj.suspend(true) );
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XDesktop.java b/qadevOOo/tests/java/ifc/frame/_XDesktop.java
new file mode 100644
index 000000000..ac1457197
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDesktop.java
@@ -0,0 +1,120 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.frame.XDesktop</code>
+* interface methods:
+* <ul>
+* <li><code> getComponents() </code></li>
+* <li><code> terminate() </code></li>
+* <li><code> addTerminateListener() </code></li>
+* <li><code> removeTerminateListener() </code></li>
+* <li><code> getCurrentComponent() </code></li>
+* <li><code> getCurrentFrame() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XDesktop
+*/
+public class _XDesktop extends MultiMethodTest {
+ public XDesktop oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Test calls the method. Then elements enumeration is created and tested.<p>
+ * Has <b> OK </b> status if no exceptions were thrown.
+ */
+ public void _getComponents() {
+ XEnumerationAccess xComps = oObj.getComponents();
+ XEnumeration xEnum = xComps.createEnumeration();
+ boolean result = false;
+
+ try {
+ while (xEnum.hasMoreElements()) {
+ try {
+ AnyConverter.toObject(
+ new Type(XInterface.class), xEnum.nextElement());
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Can't convert any");
+ }
+ }
+ result = true;
+ } catch (WrappedTargetException e) {
+ log.println("Couldn't get a component : " + e.getMessage());
+ e.printStackTrace();
+ } catch (NoSuchElementException e) {
+ log.println("Couldn't get a component : " + e.getMessage());
+ e.printStackTrace();
+ }
+ tRes.tested("getComponents()", result);
+ }
+
+ /**
+ * Cannot test the method because it requires
+ * terminating StarOffice. Will add real test later.
+ */
+ public void _terminate() {
+ tRes.tested("terminate()", true);
+ }
+
+ /**
+ * Cannot test the method because of terminate().
+ * Will add real test later.
+ */
+ public void _addTerminateListener() {
+ tRes.tested("addTerminateListener()", true);
+ }
+
+ /**
+ * Cannot test the method because of terminate().
+ * Will add real test later.
+ */
+ public void _removeTerminateListener() {
+ tRes.tested("removeTerminateListener()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getCurrentComponent() {
+ tRes.tested("getCurrentComponent()",
+ oObj.getCurrentComponent() != null);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getCurrentFrame() {
+ tRes.tested("getCurrentFrame()", oObj.getCurrentFrame() != null);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XDispatch.java b/qadevOOo/tests/java/ifc/frame/_XDispatch.java
new file mode 100644
index 000000000..3cc536f7a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDispatch.java
@@ -0,0 +1,221 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.util.URL;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import com.sun.star.frame.XNotifyingDispatch;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.frame.DispatchResultEvent;
+
+/**
+* Testing <code>com.sun.star.frame.XDispatch</code>
+* interface methods :
+* <ul>
+* <li><code> dispatch()</code></li>
+* <li><code> addStatusListener()</code></li>
+* <li><code> removeStatusListener()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XDispatch.URL'</code> (of type <code>com.sun.star.util.URL
+* </code>): URL for passing to <code>dispatch()</code> method. </li>
+* <ul> <p>
+* @see com.sun.star.frame.XDispatch
+* @see com.sun.star.frame.XNotifyingDispatch
+* @see ifc.frame._XDispatch
+* @see ifc.frame._XNotifyingDispatch
+*/
+
+public class _XDispatch extends MultiMethodTest {
+
+ public XDispatch oObj = null;
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestStatusListener implements
+ com.sun.star.frame.XStatusListener {
+ public boolean statusChangedCalled = false ;
+ private final java.io.PrintWriter log;
+
+ public TestStatusListener(java.io.PrintWriter log) {
+ this.log = log ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ log.println(" disposing was called.") ;
+ }
+
+ public void statusChanged(com.sun.star.frame.FeatureStateEvent e) {
+ statusChangedCalled = true ;
+ log.println(" statusChanged was called.") ;
+ log.println(" FeatureURL = '" + e.FeatureURL + "'");
+ log.println(" FeatureDescriptor = '" + e.FeatureDescriptor + "'");
+ log.println(" IsEnabled = " + e.IsEnabled);
+ log.println(" Requery = " + e.Requery);
+ log.println(" State = '" + e.State.toString() + "'");
+ }
+
+ }
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestNotificationListener implements
+ com.sun.star.frame.XDispatchResultListener {
+ public boolean finishedDispatch = false ;
+ private final java.io.PrintWriter log;
+
+ public TestNotificationListener(java.io.PrintWriter log) {
+ this.log = log ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ log.println(" disposing was called.") ;
+ }
+
+ public void dispatchFinished( DispatchResultEvent e) {
+ finishedDispatch = true ;
+ log.println(" dispatchFinished was called.") ;
+ }
+
+ }
+
+ TestStatusListener listener = null ;
+ TestNotificationListener notificationListener = null;
+ URL url = null ;
+
+ /**
+ * Not all implementations could call the
+ * <code>com.sun.star.frame.XStatusListener</code>. For this purposes the
+ * <code>com.sun.star.frame.XDispatchWithNotification</code> was designed.
+ * If <code>com.sun.star.frame.XStatusListener</code> was not called and
+ * <code>com.sun.star.frame.XStatusListener</code> is present, it was used
+ * to check listeners.
+ */
+ private boolean checkXDispatchWithNotification()
+ {
+ XNotifyingDispatch xND = UnoRuntime.queryInterface(XNotifyingDispatch.class, oObj);
+ if ( xND != null) {
+ log.println(" XNotifyingDispatch found:");
+ PropertyValue[] arguments = (PropertyValue[])
+ tEnv.getObjRelation("XNotifyingDispatchArgument");
+
+ notificationListener = new TestNotificationListener(log) ;
+ xND.dispatchWithNotification(url, arguments, notificationListener);
+
+ waitForEventIdle();
+
+ log.println(" Listener called: "+ notificationListener.finishedDispatch);
+
+ return notificationListener.finishedDispatch;
+ } else {
+ return false;
+ }
+
+ }
+ /**
+ * Retrieves object relations and creates new listeners.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ listener = new TestStatusListener(log) ;
+ url = (URL) tEnv.getObjRelation("XDispatch.URL") ;
+
+ if (url == null) throw new StatusException
+ (Status.failed("Relation not found.")) ;
+ }
+
+ /**
+ * Calls the method using URL from relation. <p>
+ * Has <b> OK </b> status if one listener (not removed) is called, and
+ * another (removed) is not.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>addStatusListener</code> :
+ * to check that the listener is called
+ * </li>
+ * </ul>
+ */
+ public void _dispatch() {
+ requiredMethod("addStatusListener()") ;
+
+ boolean result = true ;
+
+ oObj.dispatch(url, new PropertyValue[0]) ;
+
+ waitForEventIdle();
+
+ log.println("Listener called: "+ listener.statusChangedCalled);
+
+ result = listener.statusChangedCalled;
+
+ if (!result) {
+ result = checkXDispatchWithNotification();
+ }
+
+ tRes.tested("dispatch()", result) ;
+ }
+
+ /**
+ * Adds two listeners. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _addStatusListener() {
+
+ boolean result = true ;
+ oObj.addStatusListener(listener, url) ;
+
+ tRes.tested("addStatusListener()", result) ;
+ }
+
+ /**
+ * Removes the listener added before. <p>
+ * Has <b> OK </b> status if the dispatch call doesn't call the listener.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> dispatch() </code> : to have a listener to remove
+ * </li>
+ * </ul>
+ */
+ public void _removeStatusListener() {
+ requiredMethod("dispatch()") ;
+ listener.statusChangedCalled = false;
+ boolean result = true ;
+ oObj.removeStatusListener(listener, url) ;
+
+ oObj.dispatch(url, new PropertyValue[0]) ;
+
+ waitForEventIdle();
+
+ System.out.println("Listener called: "+ listener.statusChangedCalled);
+
+ result = ! listener.statusChangedCalled;
+
+ tRes.tested("removeStatusListener()", result) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XDispatchProvider.java b/qadevOOo/tests/java/ifc/frame/_XDispatchProvider.java
new file mode 100644
index 000000000..3cc7c1718
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDispatchProvider.java
@@ -0,0 +1,155 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.FrameSearchFlag;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+* Testing <code>com.sun.star.frame.XDispatchProvider</code>
+* interface methods:
+* <ul>
+* <li><code> queryDispatch() </code></li>
+* <li><code> queryDispatches() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XDispatchProvider.URL'</code> (of type <code>String</code>):
+* used to obtain unparsed url of DispatchProvider </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XDispatchProvider
+*/
+public class _XDispatchProvider extends MultiMethodTest {
+ public static XDispatchProvider oObj = null;
+ private String dispatchUrl = null ;
+
+ /**
+ * Retrieves object relation.
+ */
+ @Override
+ public void before() {
+ dispatchUrl = (String) tEnv.getObjRelation("XDispatchProvider.URL") ;
+ if (dispatchUrl == null) {
+ dispatchUrl = utils.getFullTestDocName("index.html");
+ }
+ log.println("Using URL: '" + dispatchUrl + "'");
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _queryDispatch() {
+ URL url = new URL();
+ String frameName = "_top";
+
+ url.Complete = dispatchUrl;
+ try {
+ XURLTransformer xParser=UnoRuntime.queryInterface(XURLTransformer.class,
+ tParam.getMSF().createInstance
+ ("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of
+ // URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = dispatchUrl;
+ xParser.parseStrict(aParseURL);
+ url = aParseURL[0];
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't parse URL");
+ }
+ XDispatch xDispatch = oObj.queryDispatch(url,
+ frameName, FrameSearchFlag.ALL);
+ tRes.tested("queryDispatch()", xDispatch != null);
+ }
+
+ /**
+ * Before test calls the method, DispatchDescriptor sequence is defined.<p>
+ * Has <b> OK </b> status if the method does not return null, returned
+ * sequence length is equal to a number of DispatchDescriptors
+ * and returned sequence consists of non-null elements.
+ */
+ public void _queryDispatches() {
+ String name1 = "_self";
+ String name2 = "_top";
+ URL url1 = new URL();
+ URL url2 = new URL();
+
+ url1.Complete = dispatchUrl;
+ url2.Complete = dispatchUrl;
+ try {
+ log.println("Parsing URL");
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ tParam.getMSF().createInstance
+ ("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of
+ // URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = dispatchUrl;
+ xParser.parseStrict(aParseURL);
+ url1 = aParseURL[0];
+ url2 = aParseURL[0];
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't parse URL");
+ }
+ DispatchDescriptor descs[] = new DispatchDescriptor[] {
+ new DispatchDescriptor(url1, name1, FrameSearchFlag.ALL),
+ new DispatchDescriptor(url2, name2, FrameSearchFlag.ALL)
+ };
+ XDispatch[] xDispatches = oObj.queryDispatches(descs);
+
+ if (xDispatches == null) {
+ log.println("queryDispatches() returned null");
+ tRes.tested("queryDispatches()", false);
+ return;
+ }
+
+ if (xDispatches.length != descs.length) {
+ log.println("queryDispatches() returned "
+ + xDispatches.length
+ + " amount of XDispatch instead of "
+ + descs.length);
+ tRes.tested("queryDispatches()", false);
+ return;
+ }
+
+ for (int i = 0; i < xDispatches.length; i++) {
+ if (xDispatches[i] == null) {
+ log.println("queryDispatches() result contains"
+ + " null object");
+ tRes.tested("queryDispatches()", false);
+ return;
+ }
+ }
+
+ tRes.tested("queryDispatches()", true);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XDispatchProviderInterception.java b/qadevOOo/tests/java/ifc/frame/_XDispatchProviderInterception.java
new file mode 100644
index 000000000..ada2a936c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDispatchProviderInterception.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import java.io.PrintWriter;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.frame.DispatchDescriptor;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XDispatchProviderInterception;
+import com.sun.star.frame.XDispatchProviderInterceptor;
+import com.sun.star.util.URL;
+
+/**
+* Testing <code>com.sun.star.frame.XDispatchProviderInterception</code>
+* interface methods :
+* <ul>
+* <li><code> registerDispatchProviderInterceptor()</code></li>
+* <li><code> releaseDispatchProviderInterceptor()</code></li>
+* </ul> <p>
+* @see com.sun.star.frame.XDispatchProviderInterception
+*/
+public class _XDispatchProviderInterception extends MultiMethodTest {
+
+ public XDispatchProviderInterception oObj = null;
+
+ /**
+ * Implementation of <code>XDispatchProviderInterceptor</code> interface
+ * which writes info about method calls to log, stores master and
+ * slave interceptors, and redirect all dispatch queries to the master
+ * provider.
+ */
+ public static class TestInterceptor implements XDispatchProviderInterceptor {
+ private final PrintWriter log;
+ public XDispatchProvider master = null, slave = null ;
+
+ public TestInterceptor(PrintWriter log) {
+ this.log = log ;
+ }
+
+ public XDispatchProvider getSlaveDispatchProvider() {
+ log.println("getSlaveDispatchProvider() called.") ;
+ return slave;
+ }
+ public XDispatchProvider getMasterDispatchProvider() {
+ log.println("getMasterDispatchProvider() called.") ;
+ return master;
+ }
+ public void setSlaveDispatchProvider(XDispatchProvider prov) {
+ log.println("setSlaveDispatchProvider(" + prov + ") called.") ;
+ slave = prov ;
+ }
+ public void setMasterDispatchProvider(XDispatchProvider prov) {
+ log.println("setMasterDispatchProvider(" + prov + ") called.") ;
+ master = prov ;
+ }
+
+ public XDispatch queryDispatch(URL url, String frame, int flags) {
+ log.println("my queryDispatch('" + url.Complete + "', '" +
+ frame + "', " + flags + ") called.") ;
+ return slave.queryDispatch(url, frame, flags) ;
+ }
+ public XDispatch[] queryDispatches(DispatchDescriptor[] desc) {
+ log.println("my queryDispatches() called.") ;
+ return slave.queryDispatches(desc) ;
+ }
+ }
+
+
+ TestInterceptor interceptor = null ;
+ /**
+ * Creates new interceptor implementation.
+ */
+ @Override
+ public void before() {
+ interceptor = new TestInterceptor(log) ;
+ }
+
+ /**
+ * Registers new interceptor implementation. <p>
+ * Has <b> OK </b> status if during registering interceptor's
+ * <code>setMasterDispatchProvider</code> method with non null
+ * parameter was called. <p>
+ */
+ public void _registerDispatchProviderInterceptor() {
+
+ boolean result = true ;
+ oObj.registerDispatchProviderInterceptor(interceptor) ;
+
+ result = interceptor.master != null ;
+
+ tRes.tested("registerDispatchProviderInterceptor()", result) ;
+ }
+
+ /**
+ * Releases interceptor. <p>
+ * Has <b> OK </b> status if during method call interceptor's
+ * <code>setMasterDispatchProvider</code> method with <code>null</code>
+ * parameter was called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerDispatchProviderInterceptor </code> </li>
+ * </ul>
+ */
+ public void _releaseDispatchProviderInterceptor() {
+ requiredMethod("registerDispatchProviderInterceptor()") ;
+
+ boolean result = true ;
+ oObj.releaseDispatchProviderInterceptor(interceptor) ;
+
+ result = interceptor.master == null ;
+
+ tRes.tested("releaseDispatchProviderInterceptor()", result) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XDispatchRecorder.java b/qadevOOo/tests/java/ifc/frame/_XDispatchRecorder.java
new file mode 100644
index 000000000..b48d11ff8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDispatchRecorder.java
@@ -0,0 +1,208 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XDispatchRecorder;
+import com.sun.star.frame.XFrame;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+
+/**
+* Testing <code>com.sun.star.frame.XDispatchRecorder</code>
+* interface methods:
+* <ul>
+* <li><code> startRecording() </code></li>
+* <li><code> recordDispatch() </code></li>
+* <li><code> recordDispatchAsComment() </code></li>
+* <li><code> endRecording() </code></li>
+* <li><code> getRecordedMacro() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XDispatchRecorder
+*/
+public class _XDispatchRecorder extends MultiMethodTest {
+ public static XDispatchRecorder oObj = null;
+
+ XFrame xFrame = null;
+ URL dispURL = null;
+ PropertyValue[] dispArgs = new PropertyValue[0];
+
+ @Override
+ protected void before() {
+ xFrame = (XFrame) tEnv.getObjRelation("XDispatchRecorder.Frame");
+
+ if (xFrame == null) {
+ throw new StatusException(Status.failed("Relation not found"));
+ }
+ }
+
+ public void _startRecording() {
+
+ oObj.startRecording(xFrame);
+ oObj.endRecording();
+ tRes.tested("startRecording()", true);
+ }
+
+ public void _getRecordedMacro() throws Exception {
+
+ clearBuffer();
+
+ oObj.startRecording(xFrame);
+
+ log.println("dispatch calls via API must be recorded");
+ dispURL = utils.parseURL(tParam.getMSF(), ".uno:InsertText");
+
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "Text";
+ prop.Value = "XDispatchRecorder.endRecording()";
+ dispArgs = new PropertyValue[] {prop};
+
+ log.println("Dispatching event for frame ...");
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xFrame);
+ XDispatch xDisp = xDispProv.queryDispatch(dispURL, "", 0);
+ xDisp.dispatch(dispURL, dispArgs);
+
+ waitForEventIdle();
+
+ log.println("Getting macro ... :");
+ String macro = oObj.getRecordedMacro();
+ log.println(macro);
+
+ log.println("Ending record ...");
+ oObj.endRecording();
+
+ boolean res = macro != null
+ && macro.indexOf(dispURL.Complete) > -1;
+ if (!res) log.println("Dispatch URL '" + dispURL.Complete
+ + "' was NOT found in macro - FAILED");
+
+ tRes.tested("getRecordedMacro()", res);
+ }
+
+ public void _endRecording() {
+
+ oObj.startRecording(xFrame);
+ oObj.endRecording();
+ String macro = oObj.getRecordedMacro();
+ boolean res = true;
+ if (macro.length() != 0){
+ log.println("'endRecording()' was called but macro buffer is not cleared: FALSE");
+ log.println(macro);
+ res = false;
+ }
+
+ tRes.tested("endRecording()", res);
+ }
+
+ public void _recordDispatch() {
+ clearBuffer();
+
+ oObj.startRecording(xFrame);
+
+ // positive test
+ dispURL = utils.parseURL(tParam.getMSF(), ".uno:InsertText");
+
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "Text";
+ prop.Value = "XDispatchRecorder.recordDispatch()";
+ dispArgs = new PropertyValue[] {prop};
+
+ log.println("Recording dispatch ...");
+ oObj.recordDispatch(dispURL, dispArgs);
+
+ log.println("Getting macro ... :");
+ String macro = oObj.getRecordedMacro();
+ log.println(macro);
+
+ oObj.endRecording();
+
+ boolean res = macro != null
+ && macro.indexOf(dispURL.Complete) > -1
+ && macro.indexOf((String)dispArgs[0].Value) > -1;
+ if (!res) log.println("Dispatch URL '" + dispURL.Complete
+ + "' or its argument '" + dispArgs[0].Value
+ + "' was not found in macro returned - FAILED");
+
+ tRes.tested("recordDispatch()", res);
+ }
+
+ public void _recordDispatchAsComment() {
+ clearBuffer();
+
+ oObj.startRecording(xFrame);
+
+ dispURL = utils.parseURL(tParam.getMSF(), ".uno:InsertText");
+
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "Text";
+ prop.Value = "XDispatchRecorder.recordDispatchAsComment()";
+ dispArgs = new PropertyValue[] {prop};
+
+ log.println("Recording dispatch ...");
+ oObj.recordDispatchAsComment(dispURL, dispArgs);
+
+ log.println("Getting macro ... :");
+ String macro = oObj.getRecordedMacro();
+ log.println(macro);
+
+ oObj.endRecording();
+
+ boolean res = macro != null
+ && macro.indexOf(dispURL.Complete) > -1
+ && macro.indexOf((String)dispArgs[0].Value) > -1;
+ if (!res) log.println("Dispatch URL '" + dispURL.Complete
+ + "' or its argument '" + dispArgs[0].Value
+ + "' was not found in macro returned - FAILED");
+
+ log.println("Checking if macro is commented ...");
+ int idx = macro.indexOf((String)dispArgs[0].Value);
+ int lineStartIdx = macro.lastIndexOf("\n", idx);
+ String lineStart = macro.substring(lineStartIdx + 1, idx).toLowerCase();
+ log.println("Line start is '" + lineStart + "'");
+
+ if (lineStart.startsWith("'") || lineStart.startsWith("rem")) {
+ log.println("Line is commented : OK");
+ } else {
+ log.println("Line is not commented : FAILED");
+ res =false;
+ }
+
+ tRes.tested("recordDispatchAsComment()", res);
+ }
+
+
+ private void clearBuffer() {
+ oObj.startRecording(xFrame);
+ oObj.endRecording();
+ String macro = oObj.getRecordedMacro();
+ if (macro.length() != 0){
+ log.println("ERROR: 'endRecording()' was called but macro buffer is not cleared!");
+ log.println(macro);
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XDispatchRecorderSupplier.java b/qadevOOo/tests/java/ifc/frame/_XDispatchRecorderSupplier.java
new file mode 100644
index 000000000..00e8f6ba4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDispatchRecorderSupplier.java
@@ -0,0 +1,224 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XDispatchRecorder;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XDispatchRecorderSupplier;
+import com.sun.star.frame.XFrame;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import lib.MultiMethodTest;
+import lib.StatusException;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.frame.XDispatchRecorderSupplier</code>
+* interface methods:
+* <ul>
+* <li><code> setDispatchRecorder() </code></li>
+* <li><code> getDispatchRecorder() </code></li>
+* <li><code> dispatchAndRecord() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XDispatchRecorderSupplier
+*/
+public class _XDispatchRecorderSupplier extends MultiMethodTest {
+ public static XDispatchRecorderSupplier oObj = null;
+
+ XComponent xTextDoc = null;
+ XDispatchRecorder recorder = null;
+
+ /**
+ * Simple <code>XDispatchRecorder</code> implementation
+ * which method <code>getRecordedMacro</code> returns a fixed
+ * string.
+ */
+ private static class MyRecorder implements XDispatchRecorder {
+ public void startRecording(XFrame p0) {}
+ public void recordDispatch(URL p0, PropertyValue[] p1) {}
+ public void recordDispatchAsComment(URL p0, PropertyValue[] p1) {}
+ public void endRecording(){}
+ public String getRecordedMacro() {
+ return "MyRecorder implementation";
+ }
+ }
+
+ /**
+ * Creates a new document which supplies a frame.
+ * Also a <code>com.sun.star.frame.Desktop</code>
+ * service created for obtaining document's frame.
+ */
+ @Override
+ protected void before() throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ Object inst = tParam.getMSF().createInstance
+ ("com.sun.star.frame.Desktop");
+ UnoRuntime.queryInterface(XDesktop.class, inst);
+ }
+
+ /**
+ * Creates an instance of <code>MyRecorder</code> and set if,
+ * then get the current recorder. Second case is setting
+ * recorder to null. Finally restores the old macro recorder. <p>
+ *
+ * Has <b>OK</b> status if in the first case custom recorder
+ * was successfully returned, and in second case current
+ * recorder is null.
+ */
+ public void _setDispatchRecorder() {
+ requiredMethod("getDispatchRecorder()");
+
+ boolean res = true,
+ locRes = true;
+ log.print("Setting custom macro recorder ...");
+ oObj.setDispatchRecorder(new MyRecorder());
+ XDispatchRecorder rec = oObj.getDispatchRecorder();
+
+ locRes = rec != null &&
+ "MyRecorder implementation".equals(rec.getRecordedMacro());
+ if (locRes) log.println("OK");
+ else log.println("FAILED");
+ res &= locRes;
+
+ log.print("Setting null dispatch recorder ...");
+ oObj.setDispatchRecorder(null);
+ locRes = oObj.getDispatchRecorder() == null;
+ if (locRes) log.println("OK");
+ else log.println("FAILED");
+ res &= locRes;
+
+ log.println("Setting old macro recorder ...");
+ oObj.setDispatchRecorder(recorder);
+
+ tRes.tested("setDispatchRecorder()", res);
+ }
+
+ /**
+ * Just gets the current recorder and stores it.
+ *
+ * Has <b>OK</b> status.
+ */
+ public void _getDispatchRecorder() {
+ recorder = oObj.getDispatchRecorder();
+ tRes.tested("getDispatchRecorder()", true);
+ }
+
+ /**
+ * First sets the current dispatch recorder to new
+ * <code>DispatchRecorder</code> instance if the current one
+ * is null. The a <code>Dispatch</code> instance is created
+ * which inserts some text into text document.
+ * A number of cases is checked :
+ * <ul>
+ * <li> A valid call : here the recorded macro must contain
+ * inserted string and URL </li>
+ * <li> Call with invalid URL : the macro recorded must not
+ * contain this URL </li>
+ * <li> Call with null dispatcher : checking for GPF </li>
+ * <li> Call with the current recorder set to null :
+ * checking for GPF </li>
+ * </ul>
+ *
+ * Has <b>OK</b> status if all cases are OK.
+ */
+ public void _dispatchAndRecord() throws Exception {
+ requiredMethod("getDispatchRecorder()");
+
+ boolean res = true;
+ if (recorder == null) {
+ try {
+ Object inst = tParam.getMSF().createInstance
+ ("com.sun.star.comp.framework.DispatchRecorder");
+ recorder = UnoRuntime.queryInterface
+ (XDispatchRecorder.class, inst);
+ oObj.setDispatchRecorder(recorder);
+ } catch (com.sun.star.uno.Exception e) {
+ throw new StatusException("Couldn't create recorder", e);
+ }
+ }
+
+ waitForEventIdle();
+
+ XModel model = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+ XFrame fr = model.getCurrentController().getFrame();
+
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, fr);
+
+ URL dispURL = utils.parseURL(tParam.getMSF(), ".uno:InsertText");
+
+ XDispatch xDisp = xDispProv.queryDispatch(dispURL,"",0);
+
+ PropertyValue[] args = new PropertyValue[1];
+ args[0] = new PropertyValue();
+ args[0].Name = "Text";
+ args[0].Value = "XDispatchRecorderSupplier";
+
+ log.print("Dispatching and recording ...");
+ oObj.dispatchAndRecord(dispURL, args, xDisp);
+
+ String macro = recorder.getRecordedMacro();
+ boolean locRes = macro != null &&
+ macro.indexOf("XDispatchRecorderSupplier")>-1 &&
+ macro.indexOf(".uno:InsertText")>-1;
+ if (locRes) log.println("OK");
+ else log.println("FAILED");
+ res &= locRes;
+ log.println("Recorder macro :\n" + macro);
+
+ log.print("Trying to set dispatch with null Dispatcher ...");
+ try {
+ oObj.dispatchAndRecord(dispURL, args, null);
+ log.println("OK");
+ } catch (java.lang.Exception e){
+ log.println("Exception is OK: " + e);
+ }
+
+ log.print("Trying to set dispatch recorder to null and record ...");
+ oObj.setDispatchRecorder(null);
+ try {
+ oObj.dispatchAndRecord(dispURL, args, xDisp);
+ log.println("OK");
+ } catch (java.lang.Exception e){
+ log.println("Exception is OK: " + e);
+ }
+
+ oObj.setDispatchRecorder(recorder);
+
+ tRes.tested("dispatchAndRecord()", res);
+ }
+
+ /**
+ * Disposes the document created in <code>before()</code>
+ */
+ @Override
+ protected void after() {
+ xTextDoc.dispose();
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/frame/_XDocumentTemplates.java b/qadevOOo/tests/java/ifc/frame/_XDocumentTemplates.java
new file mode 100644
index 000000000..0a7f7f8bb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XDocumentTemplates.java
@@ -0,0 +1,267 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.beans.Property;
+import com.sun.star.frame.XDocumentTemplates;
+import com.sun.star.frame.XStorable;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentAccess;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+/**
+* Testing <code>com.sun.star.frame.XDesktop</code>
+* interface methods:
+* <ul>
+* <li><code> getContent() </code></li>
+* <li><code> storeTemplate() </code></li>
+* <li><code> addTemplate() </code></li>
+* <li><code> removeTemplate() </code></li>
+* <li><code> renameTemplate() </code></li>
+* <li><code> addGroup() </code></li>
+* <li><code> removeGroup() </code></li>
+* <li><code> renameGroup() </code></li>
+* <li><code> update() </code></li>
+* </ul><p>
+*/
+public class _XDocumentTemplates extends MultiMethodTest {
+ public XDocumentTemplates oObj = null; // oObj filled by MultiMethodTest
+ protected XContent content = null;
+ /**
+ * Test calls the method and prints contents list to log.<p>
+ * Has <b> OK </b> status if the XContent isn't empty.
+ */
+ public void _getContent() {
+ content = oObj.getContent();
+ log.println("Content list:" + getContentList(content));
+ tRes.tested("getContent()", content != null);
+ }
+
+ /**
+ * Test calls the method and checks that new group was added. <p>
+ * Has <b> OK </b> status if method returns true and new group was added.
+ */
+ public void _addGroup() {
+ requiredMethod("getContent()");
+ if (getSubContent(content, "XDocumentTemplatesTemp") != null ) {
+ oObj.removeGroup("XDocumentTemplatesTemp");
+ }
+ if (getSubContent(content, "XDocumentTemplates") != null ) {
+ oObj.removeGroup("XDocumentTemplates");
+ }
+ boolean res = oObj.addGroup("XDocumentTemplatesTemp");
+ log.println("Method returned: " + res);
+ res &= getSubContent(content, "XDocumentTemplatesTemp") != null;
+ tRes.tested("addGroup()", res);
+ }
+
+ XContent groupContent = null;
+ /**
+ * Test calls the method and checks that content has no group with old name
+ * and that content has group with new name. <p>
+ * Has <b> OK </b> status if method returns true, content has no group with
+ * old name and content has group with new name.<p>
+ */
+ public void _renameGroup() {
+ requiredMethod("addGroup()");
+ boolean res = oObj.renameGroup("XDocumentTemplatesTemp",
+ "XDocumentTemplates");
+ log.println("Method returned: " + res);
+ groupContent = getSubContent(content, "XDocumentTemplates");
+ res &= getSubContent(content, "XDocumentTemplatesTemp") == null;
+ res &= groupContent != null;
+ tRes.tested("renameGroup()", res);
+ }
+
+ /**
+ * Test calls the method and checks that group content has new template. <p>
+ * Has <b> OK </b> status if method returns true and group content has new
+ * template.<p>
+ */
+ public void _addTemplate() {
+ requiredMethod("renameGroup()");
+ String testDoc = utils.getFullTestURL("report.stw");
+ log.println("Adding template from " + testDoc);
+ boolean res = oObj.addTemplate("XDocumentTemplates",
+ "ANewTemplateTemp",testDoc);
+ log.println("Method returned: " + res);
+ res &= getSubContent(groupContent, "ANewTemplateTemp") != null;
+ tRes.tested("addTemplate()", res);
+ }
+
+ /**
+ * Test calls the method and checks that group content has no template with
+ * old name and that group content has template with new name. <p>
+ * Has <b> OK </b> status if method returns true, group content has no
+ * template with old name and group content has template with new name.<p>
+ */
+ public void _renameTemplate() {
+ requiredMethod("addTemplate()");
+ boolean res = oObj.renameTemplate("XDocumentTemplates",
+ "ANewTemplateTemp",
+ "ANewTemplate");
+ log.println("Method returned: " + res);
+ res &= getSubContent(groupContent, "ANewTemplateTemp") == null;
+ res &= getSubContent(groupContent, "ANewTemplate") != null;
+
+ tRes.tested("renameTemplate()", res);
+ }
+
+ /**
+ * Test calls the method and checks that group content has new template. <p>
+ * Has <b> OK </b> status if method returns true and new template was created.<p>
+ */
+ public void _storeTemplate() {
+ requiredMethod("renameGroup()");
+ XStorable store = (XStorable) tEnv.getObjRelation("Store");
+ boolean res = oObj.storeTemplate("XDocumentTemplates",
+ "NewStoreTemplate",
+ store);
+ log.println("Method returned: " + res);
+ res &= getSubContent(groupContent, "NewStoreTemplate") != null;
+ tRes.tested("storeTemplate()", res);
+ }
+
+ /**
+ * Test calls the method and checks that group content has no deleted template. <p>
+ * Has <b> OK </b> status if method returns true and group content has no
+ * deleted template.<p>
+ */
+ public void _removeTemplate() {
+ requiredMethod("renameTemplate()");
+ boolean res = oObj.removeTemplate("XDocumentTemplates", "ANewTemplate");
+ log.println("Method returned: " + res);
+ res &= getSubContent(groupContent, "ANewTemplate") == null;
+ tRes.tested("removeTemplate()", res);
+ }
+
+ /**
+ * Test calls the method and checks that content has no deleted group. <p>
+ * Has <b> OK </b> status if method returns true and content has no deleted
+ * group.<p>
+ */
+ public void _removeGroup() {
+ requiredMethod("renameGroup()");
+ executeMethod("renameTemplate()");
+ boolean res = oObj.removeGroup("XDocumentTemplates");
+ log.println("Method returned: " + res);
+ res &= getSubContent(content, "XDocumentTemplates") == null;
+ tRes.tested("removeGroup()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if no exception occurs.<p>
+ */
+ public void _update() {
+ oObj.update();
+ tRes.tested("update()",true);
+ }
+
+ /**
+ * Returns the string representation of content passed as parameter.
+ */
+ protected String getContentList(XContent content) {
+ StringBuilder ret = new StringBuilder();
+ XResultSet statRes = getStatResultSet(content);
+ if (statRes != null) {
+ try {
+ statRes.first();
+ XRow row = UnoRuntime.queryInterface(XRow.class, statRes);
+ while(! statRes.isAfterLast()) {
+ ret.append("\n ").append(row.getString(1));
+ statRes.next();
+ }
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Exception occurred:" + e);
+ }
+ }
+ return ret.toString();
+ }
+
+ protected XResultSet getStatResultSet(XContent content) {
+ XResultSet statResSet = null;
+ try {
+ statResSet = getDynaResultSet(content).getStaticResultSet();
+ } catch(com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("Exception occurred:" + e);
+ }
+ return statResSet;
+ }
+
+ protected XDynamicResultSet getDynaResultSet(XContent content) {
+ Command command = new Command();
+ OpenCommandArgument2 comArg = new OpenCommandArgument2();
+ Property[] comProps = new Property[1];
+ comArg.Mode = com.sun.star.ucb.OpenMode.ALL;
+ comProps[0] = new Property();
+ comProps[0].Name = "Title";
+ comArg.Properties = comProps;
+
+ command.Name = "open";
+ command.Handle = -1;
+ command.Argument = comArg;
+
+ XCommandProcessor comProc = UnoRuntime.queryInterface(XCommandProcessor.class, content);
+
+ XDynamicResultSet DynResSet = null;
+ try {
+ DynResSet = (XDynamicResultSet) AnyConverter.toObject(
+ new Type(XDynamicResultSet.class),comProc.execute(command, 0, null));
+ } catch(com.sun.star.ucb.CommandAbortedException e) {
+ log.println("Couldn't execute command:" + e);
+ } catch(com.sun.star.uno.Exception e) {
+ log.println("Couldn't execute command:" + e);
+ }
+
+ return DynResSet;
+ }
+
+ protected XContent getSubContent(XContent content, String subName) {
+ XResultSet statRes = getStatResultSet(content);
+ XRow row = UnoRuntime.queryInterface(XRow.class, statRes);
+ XContentAccess contAcc = UnoRuntime.queryInterface(XContentAccess.class, statRes);
+ XContent subContent = null;
+ if (statRes != null) {
+ try {
+ statRes.first();
+ while(!statRes.isAfterLast()) {
+ if ( subName.equals(row.getString(1)) ) {
+ subContent = contAcc.queryContent();
+ }
+ statRes.next();
+ }
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Exception occurred:" + e);
+ }
+ }
+ return subContent;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XFrame.java b/qadevOOo/tests/java/ifc/frame/_XFrame.java
new file mode 100644
index 000000000..9536cdb2b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XFrame.java
@@ -0,0 +1,571 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.FrameAction;
+import com.sun.star.frame.FrameActionEvent;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XFrameActionListener;
+import com.sun.star.frame.XFramesSupplier;
+import com.sun.star.lang.EventObject;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+import lib.TestEnvironment;
+
+/**
+* Testing <code>com.sun.star.frame.XFrame</code>
+* interface methods:
+* <ul>
+* <li><code> getName() </code></li>
+* <li><code> setName() </code></li>
+* <li><code> activate() </code></li>
+* <li><code> deactivate() </code></li>
+* <li><code> isActive() </code></li>
+* <li><code> addFrameActionListener() </code></li>
+* <li><code> removeFrameActionListener() </code></li>
+* <li><code> getCreator() </code></li>
+* <li><code> getComponentWindow() </code></li>
+* <li><code> getContainerWindow() </code></li>
+* <li><code> getController() </code></li>
+* <li><code> isTop() </code></li>
+* <li><code> findFrame() </code></li>
+* <li><code> contextChanged() </code></li>
+* <li><code> setCreator() </code></li>
+* <li><code> setComponent() </code></li>
+* <li><code> initialize() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XFrame'</code> (of type <code>XFrame</code>)
+* <b>optional</b>: any frame named 'XFrame'.
+* Could be used by <code>findFrame</code> method to try
+* to find other frame than itself.</li>
+*
+* <li> <code>'Desktop'</code> (of type <code>Object</code>):
+* if exists, then desktop component is tested</li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XFrame
+*/
+public class _XFrame extends MultiMethodTest {
+ final FrameAction[] actionEvent = new FrameAction[1] ;
+ final boolean[] listenerCalled = new boolean[] {false} ;
+ final boolean[] activatedCalled = new boolean[] {false} ;
+ final boolean[] deactivatedCalled = new boolean[] {false} ;
+ final TestFrameActionListener listener =
+ new TestFrameActionListener() ;
+ public static XFrame oObj = null;
+
+ /**
+ * Class used to test listeners.
+ */
+ private class TestFrameActionListener
+ implements XFrameActionListener {
+
+ public void frameAction(FrameActionEvent e) {
+ listenerCalled[0] = true ;
+ activatedCalled[0] |= e.Action == FrameAction.FRAME_ACTIVATED;
+ deactivatedCalled[0] |= e.Action == FrameAction.FRAME_DEACTIVATING;
+ actionEvent[0] = e.Action;
+ }
+
+ public void disposing(EventObject e) {}
+
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getName() {
+ String name = oObj.getName() ;
+ if (name == null)
+ log.println("getName() returned null: FAILED") ;
+
+ tRes.tested("getName()", name!=null) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if set and gotten names are equal.
+ */
+ public void _setName() {
+ String sName = "XFrame" ;
+
+ oObj.setName(sName);
+ String gName = oObj.getName();
+ boolean res = sName.equals(gName);
+ if (! res)
+ log.println("setName('" + sName +
+ "'), but getName() return '" + gName + "'") ;
+ tRes.tested("setName()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _activate() {
+ oObj.activate() ;
+ tRes.tested("activate()", true) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _deactivate() {
+ oObj.deactivate() ;
+ oObj.activate() ;
+ tRes.tested("deactivate()", true) ;
+ }
+
+ /**
+ * Test calls the method. Then frame is deactivated and method called
+ * again. <p>
+ * Has <b> OK </b> status if isDesktop() returns true or if the method
+ * always display real status of a frame during activation/deactivation.
+ */
+ public void _isActive() {
+ boolean result = true;
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop is always active");
+ tRes.tested("isActive()", oObj.isActive()) ;
+ return;
+ }
+
+ oObj.deactivate();
+ result &= !oObj.isActive();
+ if (oObj.isActive())
+ log.println("after deactivate() method call, isActive() returned true");
+ oObj.activate();
+ result &= oObj.isActive();
+ if (!oObj.isActive())
+ log.println("after activate() method call, isActive() returned false") ;
+ boolean res = isDesktop(log,tEnv,"isActive()");
+ if (res) result=res;
+
+ tRes.tested("isActive()", result) ;
+ }
+
+ /**
+ * Test calls the method. Then frame status (activated/deactivated) is
+ * changed, and the listener is checked.<p>
+ * Has <b> OK </b> status if isDesktop() method returns true, or if the
+ * listener was called and frame was activated.
+ */
+ public void _addFrameActionListener() throws Exception {
+ boolean result = true ;
+
+ oObj.addFrameActionListener(listener) ;
+ oObj.activate() ;
+ oObj.deactivate() ;
+ oObj.activate() ;
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("No actions supported by Desktop");
+ tRes.tested("addFrameActionListener()", true) ;
+ return;
+ }
+
+ waitForEventIdle();
+
+ if (!listenerCalled[0]) {
+ log.println("listener was not called.") ;
+ result = false ;
+ } else {
+ if (!activatedCalled[0]) {
+ log.println("Listener was called, FRAME_ACTIVATED was not") ;
+ result = false ;
+ }
+ if (!deactivatedCalled[0]) {
+ log.println("Listener was called, FRAME_DEACTIVATING was not") ;
+ result = false ;
+ }
+ }
+
+ boolean res = isDesktop(log, tEnv, "addFrameActionListener()");
+ if (res) result=res;
+
+ tRes.tested("addFrameActionListener()", result) ;
+ }
+
+ /**
+ * Test calls the method. Then frame status (activated/deactivated) is
+ * changed, and the listener is checked.<p>
+ * Has <b> OK </b> status if isDesktop() method returns true, or if the
+ * method actually removes listener so it does not react on
+ * activate/deactivate events. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addFrameActionListener() </code>: adds action listener
+ * to a frame </li>
+ * </ul>
+ */
+ public void _removeFrameActionListener() {
+ boolean result = true;
+
+ requiredMethod("addFrameActionListener()");
+ listenerCalled[0] = false;
+ oObj.removeFrameActionListener(listener);
+ oObj.activate();
+ oObj.deactivate();
+ oObj.activate();
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("No actions supported by Desktop");
+ tRes.tested("removeFrameActionListener()", true) ;
+ return;
+ }
+
+ if (listenerCalled[0])
+ log.println("Listener wasn't removed, and was called");
+ boolean res = isDesktop(log, tEnv, "removeFrameActionListener()");
+ if (res) result=res; else result = (!listenerCalled[0]);
+
+ tRes.tested("removeFrameActionListener()", result);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if isDesktop() method returns true or if the method
+ * does not return null.
+ */
+ public void _getCreator() {
+ boolean result = true;
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop has no creator");
+ tRes.tested("getCreator()", true) ;
+ return;
+ }
+
+ XFramesSupplier creator = oObj.getCreator() ;
+ if (creator == null)
+ log.println("getCreator() returns null") ;
+ boolean res = isDesktop(log,tEnv,"getCreator()");
+ if (res) result=res; else result = (creator != null);
+ tRes.tested("getCreator()", result) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if isDesktop() method returns true or if the method
+ * does not return null.
+ */
+ public void _getComponentWindow() {
+ boolean result = true;
+
+ XWindow win = oObj.getComponentWindow() ;
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop has no component window");
+ tRes.tested("getComponentWindow()", true) ;
+ return;
+ }
+
+ if (win == null)
+ log.println("getComponentWindow() returns null") ;
+ boolean res = isDesktop(log,tEnv,"getComponentWindow()");
+ if (res) result=res; else result = (win != null);
+ tRes.tested("getComponentWindow()", result) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if isDesktop() method returns true or if the method
+ * does not return null.
+ */
+ public void _getContainerWindow() {
+ boolean result = true;
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop has no container window");
+ tRes.tested("getContainerWindow()", true) ;
+ return;
+ }
+
+ XWindow win = oObj.getContainerWindow() ;
+ if (win == null)
+ log.println("getContainerWindow() returns null") ;
+ boolean res = isDesktop(log,tEnv,"getContainerWindow()");
+ if (res) result=res; else result = (win != null);
+ tRes.tested("getContainerWindow()", result) ;
+ }
+
+ /**
+ * Test calls the method. Then returned controller is checked. <p>
+ * Has <b> OK </b> status if isDesktop() method returns true or
+ * if the method returns non-null controller, having frame that's equal to
+ * a (XFrame) oObj.
+ */
+ public void _getController() {
+ boolean result = true;
+ XController ctrl = oObj.getController();
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop has no controller");
+ tRes.tested("getController()", true) ;
+ return;
+ }
+
+ if (ctrl == null) {
+ log.println("getController() returns null");
+ result = false;
+ } else {
+ XFrame frm = ctrl.getFrame();
+ if (!oObj.equals(frm)) {
+ log.println("Frame returned by controller not " +
+ "equals to frame testing");
+ result = false;
+ }
+ }
+ boolean res = isDesktop(log, tEnv, "getController()");
+ if (res) result=res;
+ tRes.tested("getController()", result) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _isTop() {
+ log.println("isTop() = " + oObj.isTop());
+ tRes.tested("isTop()", true) ;
+ }
+
+ /**
+ * After obtaining an object relation 'XFrame', test tries to find a frame
+ * named 'XFrame'. <p>
+ * Has <b> OK </b> status if the method returns non-null object that's equal
+ * to previously obtained object relation.
+ */
+ public void _findFrame() {
+ boolean result = true ;
+
+ XFrame aFrame = (XFrame) tEnv.getObjRelation("XFrame");
+
+ if (aFrame != null) {
+ log.println("Trying to find a frame with name 'XFrame' ...");
+ XFrame frame = oObj.findFrame("XFrame",
+ com.sun.star.frame.FrameSearchFlag.GLOBAL) ;
+ if (frame == null) {
+ log.println("findFrame(\"XFrame,com.sun.star.frame.FrameSearchFlag.GLOBAL\") returns null") ;
+ result = false ;
+ } else if ( !aFrame.equals(frame) ) {
+ log.println("findFrame(\"XFrame,com.sun.star.frame.FrameSearchFlag.GLOBAL\") "
+ + " returns frame which is not equal to passed in relation") ;
+ result = false ;
+ }
+ }
+
+ log.println("Trying to find a frame with name '_self' ...");
+ XFrame frame = oObj.findFrame("_self",
+ com.sun.star.frame.FrameSearchFlag.AUTO) ;
+ if (frame == null) {
+ log.println("findFrame(\"_self\") returns null") ;
+ result = false ;
+ } else if ( !oObj.equals(frame) ) {
+ log.println("findFrame(\"_self\") "
+ + " returns frame which is not equal to tested") ;
+ result = false ;
+ }
+
+ tRes.tested("findFrame()", result) ;
+ }
+
+ /**
+ * At first new listener is added, then test calls the method and result
+ * is checked. <p>
+ * Has <b> OK </b> status if isDesktop() method returns true or if the
+ * listener was called and proper event past to listener.
+ */
+ public void _contextChanged() {
+ boolean result = true;
+ TestFrameActionListener listener = new TestFrameActionListener();
+
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop can't change context");
+ tRes.tested("contextChanged()", true) ;
+ return;
+ }
+
+ listenerCalled[0] = false;
+ oObj.addFrameActionListener(listener);
+ try {
+ oObj.contextChanged();
+ if ( !listenerCalled[0] ) {
+ log.println("listener was not called on contextChanged() call.") ;
+ result = false;
+ } else if (actionEvent[0] != FrameAction.CONTEXT_CHANGED) {
+ log.println("listener was called, but Action != CONTEXT_CHANGED") ;
+ result = false;
+ }
+ } finally {
+ oObj.removeFrameActionListener(listener);
+ }
+
+ boolean res = isDesktop(log, tEnv, "contextChanged()");
+ if (res) result = res;
+ tRes.tested("contextChanged()", result);
+ }
+
+
+ /**
+ * Test calls the method. Remembered old creator is restored at the end. <p>
+ * Has <b> OK </b> status if the method successfully set new value to (XFrame)
+ * oObj object.
+ */
+ public void _setCreator() {
+ if (tEnv.getTestCase().getObjectName().equals("Desktop")) {
+ log.println("Desktop has no creator");
+ tRes.tested("setCreator()", true) ;
+ return;
+ }
+
+ XFramesSupplier oldCreator = oObj.getCreator() ;
+ oObj.setCreator(null) ;
+ tRes.tested("setCreator()", oObj.getCreator() == null) ;
+ oObj.setCreator(oldCreator) ;
+ }
+
+ /**
+ * Test calls the method, then result is checked.<p>
+ * Has <b> OK </b> status if method returns true, and values, set by the
+ * method are nulls, or if method returns false, and values are not changed.
+ * This method destroy the object. Therefore all other methods have to be
+ * executed before :
+ * <ul>
+ * <li> <code> getName() </code>
+ * <li> <code> setName() </code>
+ * <li> <code> activate() </code>
+ * <li> <code> deactivate() </code>
+ * <li> <code> isActive() </code>
+ * <li> <code> addFrameActionListener() </code>
+ * <li> <code> getComponentWindow() </code>
+ * <li> <code> getContainerWindow() </code>
+ * <li> <code> getController() </code>
+ * <li> <code> isTop() </code>
+ * <li> <code> findFrame() </code>
+ * <li> <code> contextChanged() </code>
+ * <li> <code> setCreator() </code>
+ * object</li>
+ * </ul>
+ */
+ public void _setComponent() {
+ // setComponent() destr
+ requiredMethod("getName()") ;
+ requiredMethod("setName()") ;
+ requiredMethod("activate()") ;
+ requiredMethod("deactivate()") ;
+ requiredMethod("isActive()") ;
+ requiredMethod("addFrameActionListener()") ;
+ requiredMethod("getComponentWindow()") ;
+ requiredMethod("getContainerWindow()") ;
+ requiredMethod("getController()") ;
+ requiredMethod("isTop()") ;
+ requiredMethod("findFrame()") ;
+ requiredMethod("contextChanged()") ;
+ requiredMethod("setCreator()") ;
+
+ boolean result = true;
+
+ XWindow oldWindow = oObj.getComponentWindow();
+ XController oldController = oObj.getController();
+ boolean rs = oObj.setComponent(null, null);
+ if (rs) { // component must be changed
+ result &= oObj.getComponentWindow() == null;
+ result &= oObj.getController() == null;
+ if (!result)
+ log.println("setComponent() returns true, but component is " +
+ "not changed.");
+ } else { // frame is not allowed to change component
+ result &= oObj.getComponentWindow() == oldWindow ;
+ result &= oObj.getController() == oldController ;
+ if (!result)
+ log.println("setComponent() returns false, but component is" +
+ "changed.");
+ }
+ tRes.tested("setComponent()", result);
+
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns.
+ * In case a frame should initialised twice, a
+ * <CODE>com.sun.star.uno.RuntimeException</CODE> was thrown. This is ok. But since
+ * a com.sun.star.uno.RuntimeException could thrown in any state the message of
+ * the exception must contain a defined string. In this case the test get an
+ * <CODE>OK</CODE> status.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setComponent() </code> : sets window and controller to the
+ * object</li>
+ * </ul>
+ */
+ public void _initialize() {
+ requiredMethod("setComponent()") ;
+ XWindow win = oObj.getContainerWindow() ;
+ boolean bOK = true;
+ try {
+ oObj.initialize(win) ;
+ } catch (com.sun.star.uno.RuntimeException e){
+ String message="Frame::initialized() is called more than once, which is not useful nor allowed.";
+ if (e.toString().indexOf(message) != -1){
+ log.println(e.toString());
+ log.println("methods throws exception, but it's OK");
+ }else{
+ log.println(e.toString());
+ bOK=false;
+ }
+
+ }
+ tRes.tested("initialize()", bOK) ;
+ }
+
+ /**
+ * Checks does relation 'Desktop' exist. Returns true if exist.
+ */
+ public static boolean isDesktop(PrintWriter log,
+ TestEnvironment env, String method) {
+ Object isD = env.getObjRelation("Desktop");
+ if (isD != null) {
+ log.println("The Desktop doesn't support the method " + method);
+ log.println("It will always return true");
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XFrameActionListener.java b/qadevOOo/tests/java/ifc/frame/_XFrameActionListener.java
new file mode 100644
index 000000000..d225e86f7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XFrameActionListener.java
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.frame.FrameActionEvent;
+import com.sun.star.frame.XFrameActionListener;
+import lib.MultiMethodTest;
+
+public class _XFrameActionListener extends MultiMethodTest {
+
+ public XFrameActionListener oObj = null;
+
+
+ public void _frameAction() {
+ FrameActionEvent event = new FrameActionEvent();
+ oObj.frameAction(event);
+ tRes.tested("frameAction()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XFrameLoader.java b/qadevOOo/tests/java/ifc/frame/_XFrameLoader.java
new file mode 100644
index 000000000..987605480
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XFrameLoader.java
@@ -0,0 +1,192 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XFrameLoader;
+import com.sun.star.frame.XLoadEventListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Testing <code>com.sun.star.frame.XFrameLoader</code>
+* interface methods :
+* <ul>
+* <li><code> load()</code></li>
+* <li><code> cancel()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'FrameLoader.URL'</code> (of type <code>String</code>):
+* a url or component to be loaded </li>
+* <li> <code>'FrameLoader.Frame'</code> <b>(optional)</b>
+* (of type <code>com.sun.star.frame.XFrame</code>):
+* a target frame where component to be loaded. If this
+* relation is omitted then a text document created and its
+* frame is used. </li>
+* <li> <code>'FrameLoader.args'</code> <b>(optional)</b>
+* (of type <code>Object[]</code>):
+* necessary arguments for loading a component. If omitted
+* then zero length array is passed as parameter</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XFrameLoader
+*/
+public class _XFrameLoader extends MultiMethodTest {
+
+ public XFrameLoader oObj = null; // oObj filled by MultiMethodTest
+ private String url = null ;
+ private XFrame frame = null ;
+ private PropertyValue[] args = new PropertyValue[0] ;
+
+ /**
+ * Implementation of load listener which registers all its calls.
+ */
+ protected static class TestListener implements XLoadEventListener {
+ public boolean finished = false ;
+ public boolean cancelled = false ;
+
+ public void loadFinished(XFrameLoader l) {
+ finished = true ;
+ }
+ public void loadCancelled(XFrameLoader l) {
+ cancelled = true ;
+ }
+ public void disposing(EventObject e) {}
+ }
+
+ TestListener listener = new TestListener() ;
+ XComponent frameSup = null ;
+
+ /**
+ * Retrieves all relations. If optional ones are not found
+ * creates their default values. <p>
+ * @throws StatusException If one of required relations not found.
+ */
+ @Override
+ public void before() {
+ url = (String) tEnv.getObjRelation("FrameLoader.URL") ;
+ frame = (XFrame) tEnv.getObjRelation("FrameLoader.Frame") ;
+
+ if (frame == null) {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ try {
+ log.println( "creating a textdocument" );
+ frameSup = SOF.createTextDoc( null );
+
+ Object oDsk = tParam.getMSF()
+ .createInstance("com.sun.star.frame.Desktop") ;
+ XDesktop dsk = UnoRuntime.queryInterface(XDesktop.class, oDsk) ;
+
+ util.utils.shortWait();
+ frame = dsk.getCurrentFrame() ;
+ } catch ( com.sun.star.uno.Exception e ) {
+ // Some exception occurs.FAILED
+ e.printStackTrace( log );
+ throw new StatusException( "Couldn't create a frame.", e );
+ }
+ }
+
+ Object args = tEnv.getObjRelation("FrameLoader.args") ;
+ if (args != null) this.args = (PropertyValue[]) args ;
+
+ if (url == null /*|| frame == null*/) {
+ throw new StatusException
+ (Status.failed("Some relations not found")) ;
+ }
+ }
+
+ private boolean loaded = false ;
+
+ /**
+ * First <code>cancel</code> method test is called.
+ * If in that test loading process was interrupted by
+ * <code>cancel</code> call then <code>load</code> test
+ * executes. It loads a component, waits some moment to
+ * listener have a chance to be called and then checks
+ * if the load listener was called.<p>
+ * Has <b>OK</b> status if <code>cancel</code> method test
+ * didn't interrupt loading and it was successful, or
+ * if in this method it loads successful and listener's
+ * <code>finished</code> method was called.
+ * The following method tests are to be executed before:
+ * <ul>
+ * <li> <code> cancel() </code> </li>
+ * </ul>
+ */
+ public void _load() throws Exception {
+ executeMethod("cancel()") ;
+
+ if (!loaded) {
+ oObj.load(frame, url, args, listener) ;
+
+ waitForEventIdle();
+
+ loaded = listener.finished ;
+ }
+
+ tRes.tested("load()", loaded) ;
+ }
+
+ /**
+ * Starts to load a component and then immediately tries to
+ * cancel the process. <p>
+ * Has <b>OK</b> status if the process was cancelled or
+ * finished (appropriate listener methods were called).
+ */
+ public void _cancel() throws Exception {
+ boolean result = true ;
+
+ oObj.load(frame, url, args, listener) ;
+ oObj.cancel() ;
+
+ waitForEventIdle();
+
+ if (listener.cancelled) {
+ log.println("Loading was canceled.") ;
+ }
+ if (listener.finished) {
+ log.println("Loading was finished.") ;
+ loaded = true ;
+ }
+ if (!listener.cancelled && !listener.finished) {
+ log.println("Loading was not canceled and not finished") ;
+ result = false ;
+ }
+
+ tRes.tested("cancel()", result) ;
+ }
+
+ @Override
+ public void after() {
+ if (frameSup != null) frameSup.dispose() ;
+ frame.dispose();
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XFramesSupplier.java b/qadevOOo/tests/java/ifc/frame/_XFramesSupplier.java
new file mode 100644
index 000000000..a54718b70
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XFramesSupplier.java
@@ -0,0 +1,204 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XFramesSupplier;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.frame.XFramesSupplier</code>
+* interface methods:
+* <ul>
+* <li><code> getActiveFrame() </code></li>
+* <li><code> getFrames() </code></li>
+* <li><code> setActiveFrame() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XFramesSupplier
+*/
+public class _XFramesSupplier extends MultiMethodTest {
+ public static XFramesSupplier oObj = null;
+ protected XIndexAccess frames = null ;
+ protected XFrame active = null ;
+ protected int activeIdx = -1 ;
+
+ /**
+ * Test calls the method, then result is checked. Also active frame index
+ * is saved in activeIdx variable.<p>
+ *
+ * Has <b> OK </b> status if the method does not return null and the object
+ * contains returned frame. Or if no frames available and the method
+ * returns null.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getFrames() </code> : obtains frames from the object </li>
+ * </ul>
+ */
+ public void _getActiveFrame() {
+ boolean result = true ;
+
+ requiredMethod("getFrames()") ;
+ active = oObj.getActiveFrame() ;
+ if (active == null) {
+ // if no child frames then no active frame could be
+ result = oObj.getFrames().getCount() == 0;
+ log.println("getActiveFrame() returned null") ;
+ }
+ else {
+ boolean hasActiveFrame = false ;
+ for (int i = 0; i < frames.getCount(); i++) {
+ XFrame fr = null ;
+ try {
+ try {
+ fr = (XFrame) AnyConverter.toObject(
+ new Type(XFrame.class),frames.getByIndex(i));
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Can't convert any");
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while calling getByIndex() method :") ;
+ e.printStackTrace(log) ;
+ return;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while calling getByIndex() method :") ;
+ e.printStackTrace(log) ;
+ return;
+ }
+ if (active.equals(fr)) {
+ hasActiveFrame = true ;
+ activeIdx = i ;
+ }
+ }
+ if (!hasActiveFrame) {
+ log.println("getActiveFrame() isn't contained " +
+ "in getFrames() collection") ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getActiveFrame()", result) ;
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method does not return null,
+ * number of returned frames is not zero and each of them is not null too.
+ */
+ public void _getFrames() {
+ boolean result = true ;
+ int cnt = 0;
+
+ frames = oObj.getFrames() ;
+ if (frames != null) {
+ cnt = frames.getCount() ;
+ log.println("There are " + cnt + " frames.") ;
+ } else {
+ log.println("getFrames() returned null !!!") ;
+ result = false ;
+ }
+ for (int i = 0; i < cnt; i++) {
+ try {
+ if (frames.getByIndex(i) == null) {
+ log.println("Frame(" + i + ") == null") ;
+ result = false ;
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while calling getByIndex() method :") ;
+ e.printStackTrace(log) ;
+ return;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while calling getByIndex() method :") ;
+ e.printStackTrace(log) ;
+ return;
+ }
+ }
+
+ tRes.tested("getFrames()", result) ;
+ }
+
+ /**
+ * After selecting frame to be activated, test calls the method. <p>
+ *
+ * Has <b> OK </b> status if set and gotten active frames are equal.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getActiveFrame() </code> : gets active frame </li>
+ * </ul>
+ */
+ public void _setActiveFrame() {
+ XFrame sFrame = null ;
+
+ requiredMethod("getActiveFrame()") ;
+ if (frames.getCount() > 1) {
+ try {
+ if (activeIdx != 0)
+ try {
+ sFrame = (XFrame) AnyConverter.toObject(
+ new Type(XFrame.class),frames.getByIndex(0));
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Can't convert any");
+ }
+ else
+ try {
+ sFrame = (XFrame) AnyConverter.toObject(
+ new Type(XFrame.class),frames.getByIndex(1));
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Can't convert any");
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while calling getByIndex() method :") ;
+ e.printStackTrace(log) ;
+ return;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while calling getByIndex() method :") ;
+ e.printStackTrace(log) ;
+ return;
+ }
+ } else if (frames.getCount() > 0) {
+ sFrame = active ;
+ }
+
+ oObj.setActiveFrame(sFrame) ;
+ XFrame gFrame = oObj.getActiveFrame() ;
+
+ boolean result;
+ if (gFrame == null && sFrame == null)
+ result = true;
+ else if (gFrame != null && sFrame != null)
+ result = sFrame.equals(gFrame);
+ else
+ result = false;
+
+ if (!result) {
+ log.println("Active frame set is not equal frame get: FAILED");
+ result = false ;
+ }
+
+ tRes.tested("setActiveFrame()", result) ;
+ }
+
+} // finished class _XFramesSupplier
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XLayoutManager.java b/qadevOOo/tests/java/ifc/frame/_XLayoutManager.java
new file mode 100644
index 000000000..7f2a40c6b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XLayoutManager.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.awt.Point;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XLayoutManager;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.Size;
+import com.sun.star.ui.DockingArea;
+import com.sun.star.ui.XUIElement;
+import lib.MultiMethodTest;
+import util.utils;
+
+public class _XLayoutManager extends MultiMethodTest {
+ public XLayoutManager oObj = null;
+
+ private XFrame xFrame = null;
+ private static final String sElementName = "private:resource/menubar/myMenu";
+
+ @Override
+ public void before() {
+ xFrame = (XFrame)tEnv.getObjRelation("XLayoutManager.Frame");
+ }
+
+ public void _attachFrame() {
+ oObj.attachFrame(xFrame);
+ tRes.tested("attachFrame()", true);
+ }
+
+ public void _createElement() {
+ requiredMethod("attachFrame()");
+ oObj.createElement(sElementName);
+ tRes.tested("createElement()", true);
+ }
+
+ public void _destroyElement() {
+ requiredMethod("getElement()");
+ requiredMethod("getElements()");
+ oObj.destroyElement(sElementName);
+ tRes.tested("destroyElement()", true);
+ }
+
+ public void _doLayout() {
+ oObj.doLayout();
+ tRes.tested("doLayout()", true);
+ }
+
+ public void _dockWindow() {
+ requiredMethod("createElement()");
+ Point p = new Point();
+ p.X = 0;
+ p.Y = 0;
+ oObj.dockWindow(sElementName, DockingArea.DOCKINGAREA_TOP, p);
+ tRes.tested("dockWindow()", true);
+ }
+
+ public void _floatWindow() {
+ requiredMethod("createElement()");
+ oObj.floatWindow(sElementName);
+ tRes.tested("floatWindow()", true);
+ }
+
+ public void _getCurrentDockingArea() {
+ requiredMethod("attachFrame()");
+ Rectangle rect = oObj.getCurrentDockingArea();
+ tRes.tested("getCurrentDockingArea()", rect != null);
+ }
+
+ public void _getElement() {
+ requiredMethod("createElement()");
+ oObj.getElement(sElementName);
+ tRes.tested("getElement()", true);
+ }
+
+ public void _getElementPos() {
+ Point p = oObj.getElementPos(sElementName);
+ tRes.tested("getElementPos()", p != null);
+ }
+
+ public void _getElementSize() {
+ Size s = oObj.getElementSize(sElementName);
+ tRes.tested("getElementSize()", s != null);
+ }
+
+ public void _getElements() {
+ requiredMethod("createElement()");
+ XUIElement[] xElements = oObj.getElements();
+ for (int i=0; i<xElements.length; i++) {
+ Object o = xElements[i].getRealInterface();
+ log.println("Element " + i + ": " + o.toString() + " " + utils.getImplName(o));
+ }
+ tRes.tested("getElements()", true);
+ }
+
+ public void _hideElement() {
+ oObj.hideElement(sElementName);
+ tRes.tested("hideElement()", true);
+ }
+
+ public void _isElementDocked() {
+ oObj.isElementDocked(sElementName);
+ tRes.tested("isElementDocked()", true);
+ }
+
+ public void _isElementFloating() {
+ oObj.isElementFloating(sElementName);
+ tRes.tested("isElementFloating()", true);
+ }
+
+ public void _isElementVisible() {
+ oObj.isElementVisible(sElementName);
+ tRes.tested("isElementVisible()", true);
+ }
+
+ public void _lock() {
+ oObj.lock();
+ tRes.tested("lock()", true);
+ }
+
+ public void _reset() {
+ oObj.reset();
+ tRes.tested("reset()", true);
+ }
+
+ public void _setDockingAreaAcceptor() {
+ oObj.setDockingAreaAcceptor(null);
+ tRes.tested("setDockingAreaAcceptor()", true);
+ }
+
+ public void _setElementPos() {
+ requiredMethod("createElement()");
+ Point p = new Point();
+ p.X = 0;
+ p.Y = 150;
+ oObj.setElementPos(sElementName, p);
+ tRes.tested("setElementPos()", true);
+ }
+
+ public void _setElementPosSize() {
+ requiredMethod("createElement()");
+ Point p = new Point();
+ p.X = 150;
+ p.Y = 0;
+ Size size = new Size();
+ size.Height = 50;
+ size.Width = 80;
+ oObj.setElementPosSize(sElementName, p, size);
+ tRes.tested("setElementPosSize()", true);
+ }
+
+ public void _setElementSize() {
+ requiredMethod("createElement()");
+ Size size = new Size();
+ size.Height = 80;
+ size.Width = 50;
+ oObj.setElementSize(sElementName, size);
+ tRes.tested("setElementSize()", true);
+ }
+
+ public void _showElement() {
+ requiredMethod("createElement()");
+ oObj.showElement(sElementName);
+ tRes.tested("showElement()", true);
+
+ }
+
+ public void _unlock() {
+ requiredMethod("lock()");
+ oObj.unlock();
+ tRes.tested("unlock()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XModel.java b/qadevOOo/tests/java/ifc/frame/_XModel.java
new file mode 100644
index 000000000..320570b5f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XModel.java
@@ -0,0 +1,249 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.frame;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.view.XSelectionSupplier;
+
+import lib.MultiMethodTest;
+
+
+/**
+* Testing <code>com.sun.star.frame.XModel</code>
+* interface methods:
+* <ul>
+* <li><code> attachResource() </code></li>
+* <li><code> connectController() </code></li>
+* <li><code> disconnectController() </code></li>
+* <li><code> getArgs() </code></li>
+* <li><code> getCurrentController() </code></li>
+* <li><code> getCurrentSelection() </code></li>
+* <li><code> getURL() </code></li>
+* <li><code> hasControllersLocked() </code></li>
+* <li><code> lockControllers() </code></li>
+* <li><code> setCurrentController() </code></li>
+* <li><code> unlockControllers() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CONT2'</code> (of type <code>XController</code>):
+* a controller used as an argument for several test methods </li>
+* <li> <code>'TOSELECT'</code> (of type <code>Object</code>):
+* something, we want to select from document </li>
+* <li> <code>'SELSUPP'</code> (of type <code>XSelectionSupplier</code>):
+* supplier, we use to select something in a document </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XModel
+*/
+public class _XModel extends MultiMethodTest {
+ public XModel oObj = null;
+ boolean result = true;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns true.
+ */
+ public void _attachResource() {
+ log.println("opening DataSourceBrowser");
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ result = oObj.attachResource(".component:DB/DataSourceBrowser", noArgs);
+ tRes.tested("attachResource()", result);
+ }
+
+ /**
+ * After obtaining object relation 'CONT2' and storing old controller,
+ * test calls the method, then result is checked.<p>
+ * Has <b> OK </b> status if controller, gotten after method call is not
+ * equal to a previous controller.
+ */
+ public void _connectController() {
+ XController cont2 = (XController) tEnv.getObjRelation("CONT2");
+ XController old = oObj.getCurrentController();
+ result = false;
+
+ if (cont2 == null) {
+ log.println("No controller no show");
+ } else {
+ oObj.connectController(cont2);
+
+ String oldFrame = old.getFrame().getName();
+ String newFrame = cont2.getFrame().getName();
+ result = (!oldFrame.equals(newFrame));
+ }
+
+ tRes.tested("connectController()", result);
+ }
+
+ /**
+ * After obtaining object relation 'CONT2', test calls the method,
+ * then result is checked.<p>
+ * Has <b> OK </b> status if controller, gotten after method call is not
+ * equal to a controller we use as an argument to method.
+ */
+ public void _disconnectController() {
+ XController cont2 = (XController) tEnv.getObjRelation("CONT2");
+ result = false;
+
+ if (cont2 == null) {
+ log.println("No controller no show");
+ } else {
+ oObj.disconnectController(cont2);
+ result = (oObj.getCurrentController() != cont2);
+ }
+
+ tRes.tested("disconnectController()", result);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getArgs() {
+ tRes.tested("getArgs()", oObj.getArgs() != null);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getCurrentController() {
+ XController ctrl = oObj.getCurrentController();
+ tRes.tested("getCurrentController()", ctrl != null);
+ }
+
+ /**
+ * After obtaining object relations 'SELSUPP' and 'TOSELECT', test prepares
+ * selection and calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getCurrentSelection() {
+ XSelectionSupplier selsupp = (XSelectionSupplier) tEnv.getObjRelation(
+ "SELSUPP");
+ Object toSelect = tEnv.getObjRelation("TOSELECT");
+ result = false;
+
+ if (selsupp == null) {
+ log.println("No Selection Supplier no show");
+ } else {
+ try {
+ selsupp.select(toSelect);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while select:");
+ e.printStackTrace(log);
+
+ return;
+ }
+
+ Object sel = oObj.getCurrentSelection();
+ result = (sel != null);
+ }
+
+ tRes.tested("getCurrentSelection()", result);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method does not return null.
+ */
+ public void _getURL() {
+ String url = oObj.getURL();
+ log.println("The url: " + url);
+ tRes.tested("getURL()", url != null);
+ }
+
+ /**
+ * if controller is not locked, test calls the method. <p>
+ * Has <b> OK </b> status if the method returns true. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> lockControllers() </code> : locks controllers </li>
+ * </ul>
+ */
+ public void _hasControllersLocked() {
+ requiredMethod("lockControllers()");
+ tRes.tested("hasControllersLocked()", oObj.hasControllersLocked());
+ }
+
+ /**
+ * Test calls the method, then result is checked.<p>
+ * Has <b> OK </b> status if method locks controllers.
+ */
+ public void _lockControllers() {
+ oObj.lockControllers();
+ result = oObj.hasControllersLocked();
+ tRes.tested("lockControllers()", result);
+ }
+
+ /**
+ * After obtaining object relation 'CONT2' and storing old controller,
+ * controller cont2 is connected, then this controller is
+ * setting as current.
+ * Sets the old controller as current.
+ * <p>Has <b> OK </b> status if set and gotten controllers are not equal.
+ */
+ public void _setCurrentController() {
+ XController cont2 = (XController) tEnv.getObjRelation("CONT2");
+ XController old = oObj.getCurrentController();
+ result = false;
+
+ if (cont2 == null) {
+ log.println("No controller no show");
+ } else {
+ oObj.connectController(cont2);
+
+ try {
+ oObj.setCurrentController(cont2);
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.print("Cannot set current controller:");
+ e.printStackTrace(log);
+ }
+
+ result = (oObj.getCurrentController() != old);
+
+ try {
+ oObj.setCurrentController(old);
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.print("Cannot set current controller:");
+ e.printStackTrace(log);
+ }
+ }
+
+ tRes.tested("setCurrentController()", result);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if method unlocks controllers.
+ * <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> hasControllersLocked() </code> : checks if controllers are
+ * locked </li>
+ * </ul>
+ */
+ public void _unlockControllers() {
+ requiredMethod("hasControllersLocked()");
+ oObj.unlockControllers();
+ result = !oObj.hasControllersLocked();
+ tRes.tested("unlockControllers()", result);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XModuleManager.java b/qadevOOo/tests/java/ifc/frame/_XModuleManager.java
new file mode 100644
index 000000000..d870589c3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XModuleManager.java
@@ -0,0 +1,153 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.beans.PropertyValue;
+
+import com.sun.star.frame.XModuleManager;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.frame.UnknownModuleException;
+
+
+/**
+* Testing <code>com.sun.star.frame.XModuleManager</code>
+* interface methods:
+* <ul>
+* <li><code> identify() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XModuleManager.XFrame'</code> (of type <code>PropertyValue[]</code>):
+* PropertyValue[n].Value : a XFrame
+* PropertyValue[n].Name : the expected return value of <code>identify()</code></li>
+* <li> <code>'XModuleManager.XController'</code> (of type <code>PropertyValue[]</code>):
+* PropertyValue[n].Value : a XController
+* PropertyValue[n].Name : the expected return value of <code>identify()</code></li>
+* <li> <code>'XModuleManager.XModel'</code> (of type <code>PropertyValue[]</code>):
+* PropertyValue[n].Value : a XFrame
+* PropertyValue[n].Name : the expected return value of <code>identify()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XModuleManager
+*/
+public class _XModuleManager extends MultiMethodTest {
+ /** Test calls the method. <p>
+ * The object relations <CODE>XModuleManager.XFrame</CODE>,
+ * <CODE>XModuleManager.XController</CODE> and <CODE>XModuleManager.XModel</CODE>
+ * are sequences of <CODE>PropertyValue</CODE>. The value of a PropertyValue
+ * contains a <CODE>XFrame</CODE>, <CODE>XController</CODE> or a
+ * <CODE>XModel</CODE>. The name of the PropertyValue contains the expected return
+ * value of method <CODE>indetify()</CODE> if the method was called with
+ * corresponding value.<p>
+ * As enhancement the method <CODE>identify()</CODE> was called with invalid
+ * parameter. In this case the thrown exceptions were caught.
+ */
+ public XModuleManager oObj = null;
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns expected values, that's equal to
+ * previously obtained object relation 'Frame'.
+ * The following method tests are to be completed successfully before:
+ * <ul>
+ * <li> <code> attachFrame() </code> : attaches frame obtained object
+ * relation 'Frame' </li>
+ * </ul>
+ */
+
+ private PropertyValue[] xFrameSeq = null;
+ private PropertyValue[] xControllerSeq = null;
+ private PropertyValue[] xModelSeq = null;
+ /** Retrieves object relations. */
+
+ @Override
+ public void before() {
+
+ xFrameSeq = (PropertyValue[]) tEnv.getObjRelation("XModuleManager.XFrame") ;
+
+ if (xFrameSeq == null) throw new StatusException
+ (Status.failed("Relation 'xFrameSeq' not found.")) ;
+
+
+ xControllerSeq = (PropertyValue[]) tEnv.getObjRelation("XModuleManager.XController") ;
+
+ if (xControllerSeq == null) throw new StatusException
+ (Status.failed("Relation 'xControllerSeq' not found.")) ;
+
+
+ xModelSeq = (PropertyValue[]) tEnv.getObjRelation("XModuleManager.XModel") ;
+
+ if (xModelSeq == null) throw new StatusException
+ (Status.failed("Relation 'xModelSeq' not found.")) ;
+ }
+
+ /* The method <CODE>identify()</CODE> was used for every entry in sequence of
+ * object relations.
+ */
+ public void _identify() {
+ boolean ok = true;
+ log.println("testing frame sequence...");
+ ok &= testSequence(xFrameSeq);
+ log.println("testing controller sequence...");
+ ok &= testSequence(xControllerSeq);
+ log.println("testing model sequence...");
+ ok &= testSequence(xModelSeq);
+ tRes.tested("identify()", ok);
+
+ log.println("testing invalid objects...");
+ try{
+ oObj.identify(oObj);
+ } catch (IllegalArgumentException e){
+ log.println("expected exception.");
+ } catch (UnknownModuleException e){
+ log.println("expected exception.");
+ }
+ }
+
+ private boolean testSequence(PropertyValue[] sequence){
+ boolean ok = true;
+ for (int i = 0 ; i < sequence.length; i++){
+ try{
+ log.println("testing '" + sequence[i].Name + "'");
+ if (!oObj.identify(sequence[i].Value).equals(
+ sequence[i].Name)) {
+ log.println("failure: returned value: '" +
+ oObj.identify(sequence[i].Value) +
+ "' ,expected value: '" + sequence[i].Name + "'");
+ ok = false;
+ }
+ } catch (IllegalArgumentException e){
+ log.println("Could not get value of sequence '" +
+ sequence[i].Name + "'");
+ return false;
+
+ } catch (UnknownModuleException e){
+ log.println("Could not indetify value of sequence '" +
+ sequence[i].Name + "'");
+ return false;
+ }
+ }
+ return ok;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XNotifyingDispatch.java b/qadevOOo/tests/java/ifc/frame/_XNotifyingDispatch.java
new file mode 100644
index 000000000..b214364f0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XNotifyingDispatch.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.util.URL;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import com.sun.star.frame.XNotifyingDispatch;
+import com.sun.star.frame.DispatchResultEvent;
+
+/**
+* Testing <code>com.sun.star.frame.XNotifyingDispatch</code>
+* interface methods :
+* <ul>
+* <li><code> dispatchWithNotification()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XDispatch.URL'</code> (of type <code>com.sun.star.util.URL
+* </code>): URL for passing to <code>dispatch()</code> method. </li>
+* <li> <code>[OPTIONAL] 'XNotifyingDispatchArgument'</code>
+* (of type sequence<code>com::sun::star::beans::PropertyValue
+* </code>): arguments for <code>dispatchWithNotification()</code> method. </li>
+* <ul> <p>
+* @see com.sun.star.frame.XDispatch
+* @see com.sun.star.frame.XNotifyingDispatch
+* @see ifc.frame._XDispatch
+*/
+public class _XNotifyingDispatch extends MultiMethodTest {
+
+ public XNotifyingDispatch oObj = null;
+
+
+ /**
+ * Listener implementation which sets flags on appropriate method calls
+ */
+ protected static class TestNotificationListener implements
+ com.sun.star.frame.XDispatchResultListener {
+ public boolean finishedDispatch = false ;
+ private final java.io.PrintWriter log;
+
+ public TestNotificationListener(java.io.PrintWriter log) {
+ this.log = log ;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject e) {
+ log.println(" disposing was called.") ;
+ }
+
+ public void dispatchFinished( DispatchResultEvent e) {
+ finishedDispatch = true ;
+ log.println(" dispatchFinished was called.") ;
+ }
+
+ }
+
+ TestNotificationListener notificationListener = null;
+ PropertyValue[] arguments = null;
+ URL url = null ;
+
+ /**
+ * Retrieves object relations and creates new listeners.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ notificationListener = new TestNotificationListener(log) ;
+ url = (URL) tEnv.getObjRelation("XDispatch.URL") ;
+
+ if (url == null) throw new StatusException
+ (Status.failed("Relation not found.")) ;
+
+ arguments = (PropertyValue[])
+ tEnv.getObjRelation("XNotifyingDispatchArgument");
+ }
+
+ /**
+ * Calls the method using URL and arguments from relation. <p>
+ * Has <b> OK </b> status if listener is called.
+ * The following method tests are to be completed successfully before :
+ */
+ public void _dispatchWithNotification() {
+
+ boolean result = true ;
+
+ oObj.dispatchWithNotification(url, arguments, notificationListener);
+
+ waitForEventIdle();
+
+ log.println("Listener called: "+ notificationListener.finishedDispatch);
+
+ result = notificationListener.finishedDispatch;
+
+
+ tRes.tested("dispatchWithNotification()", result) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XPopupMenuController.java b/qadevOOo/tests/java/ifc/frame/_XPopupMenuController.java
new file mode 100644
index 000000000..8a6d0e397
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XPopupMenuController.java
@@ -0,0 +1,218 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.graphic.XGraphic;
+import com.sun.star.awt.XPopupMenu;
+import com.sun.star.awt.KeyEvent;
+import com.sun.star.frame.XPopupMenuController;
+import lib.MultiMethodTest;
+
+public class _XPopupMenuController extends MultiMethodTest {
+ public XPopupMenuController oObj = null;
+
+ @Override
+ public void before() {
+
+ }
+
+ public void _setPopupMenu() {
+ XPopupMenu xMenu = new PopupMenuImpl();
+ oObj.setPopupMenu(xMenu);
+ tRes.tested("setPopupMenu()", true);
+ }
+
+ public void _updatePopupMenu() {
+ oObj.updatePopupMenu();
+ tRes.tested("updatePopupMenu()", true);
+ }
+
+ private static class PopupMenuImpl implements XPopupMenu {
+
+ public void addMenuListener(com.sun.star.awt.XMenuListener xMenuListener) {
+ System.out.println("addMenuListener called.");
+ }
+
+ public void checkItem(short param, boolean param1) {
+ System.out.println("checkItemListener called.");
+ }
+
+ public void enableItem(short param, boolean param1) {
+ System.out.println("enableItem called.");
+ }
+
+ public short execute(com.sun.star.awt.XWindowPeer xWindowPeer, com.sun.star.awt.Rectangle pos, short param) {
+ System.out.println("execute called.");
+ return 0;
+ }
+
+ public short getDefaultItem() {
+ System.out.println("getDefaultItem called.");
+ return 0;
+ }
+
+ public short getItemCount() {
+ System.out.println("getItemCount called.");
+ return 0;
+ }
+
+ public short getItemId(short param) {
+ System.out.println("getItemId called.");
+ return 0;
+ }
+
+ public short getItemPos(short param) {
+ System.out.println("getItemPos called.");
+ return 0;
+ }
+
+ public String getItemText(short param) {
+ System.out.println("getItemText called.");
+ return "Hi.";
+ }
+
+ public com.sun.star.awt.XPopupMenu getPopupMenu(short param) {
+ System.out.println("getPopupMenu called.");
+ return this;
+ }
+
+ public void insertItem(short param, String str, short param2, short param3) {
+ System.out.println("insertItem called.");
+ }
+
+ public void insertSeparator(short param) {
+ System.out.println("insertSeparator called.");
+ }
+
+ public boolean isItemChecked(short param) {
+ System.out.println("isItemChecked called.");
+ return false;
+ }
+
+ public boolean isItemEnabled(short param) {
+ System.out.println("isItemEnabled called.");
+ return false;
+ }
+
+ public void removeItem(short param, short param1) {
+ System.out.println("removeItem called.");
+ }
+
+ public void removeMenuListener(com.sun.star.awt.XMenuListener xMenuListener) {
+ System.out.println("removeMenuListener called.");
+ }
+
+ public void setDefaultItem(short param) {
+ System.out.println("setDefaultItem called.");
+ }
+
+ public void setItemText(short param, String str) {
+ System.out.println("setItemText called.");
+ }
+
+ public void setPopupMenu(short param, com.sun.star.awt.XPopupMenu xPopupMenu) {
+ System.out.println("setPopupMenu called.");
+ }
+
+ public XGraphic getItemImage(short param ) {
+ System.out.println("getItemImage called.");
+ return null;
+ }
+
+ public void setItemImage(short param, XGraphic param1, boolean param2 ) {
+ System.out.println("setItemImage called.");
+ }
+
+ public KeyEvent getAcceleratorKeyEvent(short param ) {
+ System.out.println("getAcceleratorKeyEvent called.");
+ return new KeyEvent();
+ }
+
+ public void setAcceleratorKeyEvent(short param, KeyEvent param1 ) {
+ System.out.println("setAcceleratorKeyEvent called.");
+ }
+
+ public void endExecute() {
+ System.out.println("endExecute called.");
+ }
+
+ public boolean isInExecute() {
+ System.out.println("isInExecute called.");
+ return false;
+ }
+
+ public boolean isPopupMenu() {
+ System.out.println("isPopupMenu called.");
+ return true;
+ }
+
+ public String getTipHelpText(short param ) {
+ System.out.println("getTipHelpText called.");
+ return null;
+ }
+
+ public void setTipHelpText(short param, String param1 ) {
+ System.out.println("setTipHelpText called.");
+ }
+
+ public String getHelpText(short param ) {
+ System.out.println("getHelpText called.");
+ return null;
+ }
+
+ public void setHelpText(short param, String param1 ) {
+ System.out.println("setHelpText called.");
+ }
+
+ public String getHelpCommand(short param ) {
+ System.out.println("getHelpCommand called.");
+ return null;
+ }
+
+ public void setHelpCommand(short param, String param1 ) {
+ System.out.println("setHelpCommand called.");
+ }
+
+ public String getCommand(short param ) {
+ System.out.println("getCommand called.");
+ return null;
+ }
+
+ public void setCommand(short param, String param1 ) {
+ System.out.println("setCommand called.");
+ }
+
+ public void enableAutoMnemonics(boolean param ) {
+ System.out.println("enableAutoMnemonics called.");
+ }
+
+ public void hideDisabledEntries(boolean param ) {
+ System.out.println("hideDisabledEntries called.");
+ }
+
+ public com.sun.star.awt.MenuItemType getItemType(short param ) {
+ System.out.println("getItemType called.");
+ return com.sun.star.awt.MenuItemType.DONTKNOW;
+ }
+
+ public void clear() {
+ System.out.println("clear called.");
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XStatusListener.java b/qadevOOo/tests/java/ifc/frame/_XStatusListener.java
new file mode 100644
index 000000000..393c0a205
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XStatusListener.java
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.frame.FeatureStateEvent;
+import com.sun.star.frame.XStatusListener;
+import lib.MultiMethodTest;
+
+public class _XStatusListener extends MultiMethodTest {
+ public XStatusListener oObj = null;
+
+
+ @Override
+ public void before() {
+
+ }
+
+ public void _statusChanged() {
+ FeatureStateEvent event = new FeatureStateEvent();
+ oObj.statusChanged(event);
+ tRes.tested("statusChanged()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/frame/_XStorable.java b/qadevOOo/tests/java/ifc/frame/_XStorable.java
new file mode 100644
index 000000000..c61a43802
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XStorable.java
@@ -0,0 +1,218 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XStorable;
+import com.sun.star.io.IOException;
+
+/**
+* Testing <code>com.sun.star.frame.XStorable</code>
+* interface methods:
+* <ul>
+* <li><code> getLocation() </code></li>
+* <li><code> hasLocation() </code></li>
+* <li><code> isReadonly() </code></li>
+* <li><code> storeAsURL() </code></li>
+* <li><code> storeToURL() </code></li>
+* <li><code> store() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XStorable
+*/
+public class _XStorable extends MultiMethodTest {
+ public XStorable oObj = null; // oObj filled by MultiMethodTest
+ String storeUrl;
+ boolean stored;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status in three cases:
+ * <ol>
+ * <li>An object has location stored in. Then if method does not return
+ * null, it has <b> OK </b> status</li>
+ * <li>An object has no location stored in. Then method storeAsURL() is
+ * called, and if url is not null and equals to a url where component
+ * was stored, method has <b> OK </b> status</li>
+ * <li>An object has no location stored in. Then method storeAsURL() is
+ * called, and if url is null and method returns null too, method
+ * has <b> OK </b> status </li>
+ * </ol><p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> storeAsURL() </code> : stores the object's persistent data
+ * to a URL and lets the object become the representation of this new
+ * URL</li>
+ * </ul>
+ */
+ public void _getLocation() {
+ if (oObj.hasLocation()) {
+ // if it has location it should know it
+ tRes.tested("getLocation()", oObj.getLocation() != null);
+ } else {
+ // else try to obtain location
+ requiredMethod("storeAsURL()");
+ if (storeUrl != null) {
+ // if stored successfully - check location
+ log.println(oObj.getLocation() + "--" + storeUrl);
+ tRes.tested("getLocation()",
+ storeUrl.equals(oObj.getLocation()));
+ } else {
+ // if not - it should not have a location
+ tRes.tested("getLocation()", oObj.getLocation() == null);
+ }
+ }
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if stored url is not null and method does not
+ * return null or if stored url is null and the method returns null.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> storeAsURL() </code>: stores the object's persistent data
+ * to a URL and lets the object become the representation of this new
+ * URL</li>
+ * </ul>
+ */
+ public void _hasLocation() {
+ requiredMethod("storeAsURL()");
+ if (storeUrl != null) {
+ // if stored successfully - it should have a location
+ tRes.tested("hasLocation()", oObj.hasLocation());
+ } else {
+ // if not - it should not
+ tRes.tested("hasLocation()", !oObj.hasLocation());
+ }
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if value, returned by the method is not equal to
+ * 'stored' variable. ( If it's readonly it should not have been stored. )
+ * <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> store() </code> : stores data to the URL from which it
+ * was loaded </li>
+ * </ul>
+ */
+ public void _isReadonly() {
+ requiredMethod("store()");
+ tRes.tested("isReadonly()", oObj.isReadonly() != stored);
+ }
+
+ /**
+ * Object is stored into temporary directory. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _storeAsURL() {
+ // getting a url to store
+ String url = utils.getOfficeTemp(
+ tParam.getMSF());
+
+ if (url != null) {
+ url += "xstorable.store.as.test";
+ log.println("store as '" + url + "'");
+ try {
+ oObj.storeAsURL(url, new PropertyValue[0]);
+ storeUrl = url;
+ tRes.tested("storeAsURL()", true);
+ } catch (IOException e) {
+ log.println("Couldn't store as "+url+" : "+e.getMessage());
+ e.printStackTrace(log);
+ storeUrl = null;
+ tRes.tested("storeAsURL()", false);
+ }
+ } else {
+ log.println("a url to store is not found");
+ }
+ }
+
+ /**
+ * Object is stored into temporary directory. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _storeToURL() {
+ // getting a url to store
+ String url = utils.getOfficeTemp(
+ tParam.getMSF());
+
+ if (url != null) {
+ url += "xstorable.store.as.test";
+ log.println("store to '" + url + "'");
+ try {
+ oObj.storeToURL(url, new PropertyValue[0]);
+ tRes.tested("storeToURL()", true);
+ } catch (IOException e) {
+ log.println("Couldn't store to "+url+" : "+e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("storeToURL()", false);
+ }
+ } else {
+ log.println("a url to store is not found");
+ }
+ }
+
+ /**
+ * Test calls the method. Then result is checked.<p>
+ * Has <b> OK </b> status if:
+ * <ol>
+ * <li>component was stored, object is not readonly and has location</li>
+ * <li>exception occurred because of component is readonly
+ * and wasn't stored</li>
+ * </ol>
+ */
+ public void _store() {
+ IOException ioE = null;
+
+ try {
+ oObj.store();
+ stored = true;
+ } catch (IOException e) {
+ stored = false;
+ ioE = e;
+ }
+ if (oObj.hasLocation() && !oObj.isReadonly()) {
+ tRes.tested("store()", stored);
+ if (!stored) {
+ log.println("Couldn't store : " + ioE.getMessage());
+ ioE.printStackTrace(log);
+ }
+ } else {
+ tRes.tested("store()", !stored);
+ if (stored) {
+ if (!oObj.hasLocation()) {
+ log.println("Shouldn't store successfully"
+ + " a document without location");
+ } else {
+ log.println("Shouldn't store successfully"
+ + " a read-only document");
+ }
+ }
+ }
+ }
+
+}// finished class _XStorable
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XSynchronousFrameLoader.java b/qadevOOo/tests/java/ifc/frame/_XSynchronousFrameLoader.java
new file mode 100644
index 000000000..b56d9d89d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XSynchronousFrameLoader.java
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XSynchronousFrameLoader;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Testing <code>com.sun.star.frame.XSynchronousFrameLoader</code>
+ * interface methods :
+ * <ul>
+ * <li><code> load()</code></li>
+ * <li><code> cancel()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'FrameLoader.URL'</code> (of type <code>String</code>):
+ * a url of component to be loaded </li>
+ * <li> <code>'FrameLoader.Frame'</code> <b>(optional)</b>
+ * (of type <code>com.sun.star.frame.XFrame</code>):
+ * a target frame where component to be loaded. If this
+ * relation is omitted then a text document created and its
+ * frame is used. </li>
+ * <ul> <p>
+ *
+ * @see com.sun.star.frame.XSynchronousFrameLoader
+ */
+public class _XSynchronousFrameLoader extends MultiMethodTest {
+
+ public XSynchronousFrameLoader oObj = null; // oObj filled by MultiMethodTest
+ private XFrame frame = null ;
+ private XComponent frameSup = null ;
+ private PropertyValue[] descr = null;
+
+ /**
+ * Retrieves all relations. If optional relation
+ * <code>FrameLoader.Frame</code> not found
+ * creates a new document and obtains its frame for loading. <p>
+ *
+ * Also <code>MediaDescriptor</code> is created using
+ * URL from <code>FrameLoader.URL</code> relation.
+ *
+ * @throws StatusException If one of required relations not found.
+ */
+ @Override
+ public void before() {
+ String url = (String) tEnv.getObjRelation("FrameLoader.URL") ;
+ frame = (XFrame) tEnv.getObjRelation("FrameLoader.Frame") ;
+
+ if (url == null) {
+ throw new StatusException(Status.failed("Some relations not found")) ;
+ }
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF() );
+
+ XURLTransformer xURLTrans = null;
+
+ // if frame is not contained in relations the writer frame will be used.
+ if (frame == null) {
+ try {
+ log.println( "creating a textdocument" );
+ frameSup = SOF.createTextDoc( null );
+
+ Object oDsk = tParam.getMSF().createInstance
+ ("com.sun.star.frame.Desktop") ;
+ XDesktop dsk = UnoRuntime.queryInterface
+ (XDesktop.class, oDsk) ;
+ frame = dsk.getCurrentFrame() ;
+
+ Object o = tParam.getMSF().createInstance
+ ("com.sun.star.util.URLTransformer") ;
+ xURLTrans = UnoRuntime.queryInterface
+ (XURLTransformer.class, o) ;
+
+ } catch ( com.sun.star.uno.Exception e ) {
+ // Some exception occurs.FAILED
+ e.printStackTrace( log );
+ throw new StatusException( "Couldn't create a document.", e );
+ }
+ }
+
+ URL[] urlS = new URL[1];
+ urlS[0] = new URL();
+ urlS[0].Complete = url;
+ if (xURLTrans == null)
+ throw new IllegalStateException("xURLTrans unexpected null");
+ boolean res = xURLTrans.parseStrict(urlS);
+ log.println("Parsing URL '" + url + "': " + res);
+ descr = new PropertyValue[1] ;
+ descr[0] = new PropertyValue();
+ descr[0].Name = "URL" ;
+ descr[0].Value = urlS[0] ;
+ }
+
+
+ /**
+ * Tries to load component to a frame. <p>
+ * Has <b> OK </b> status if <code>true</code> is returned.
+ */
+ public void _load() {
+ boolean result = oObj.load(descr, frame) ;
+
+ tRes.tested("load()", result) ;
+ }
+
+ /**
+ * Tries to load component to a frame in separate thread to
+ * avoid blocking of the current thread and immediately
+ * cancels loading. <p>
+ *
+ * Has <b> OK </b> status if <code>flase</code> is returned,
+ * i.e. loading was not completed.
+ */
+ public void _cancel() {
+ requiredMethod("load()") ;
+
+ final boolean[] result = new boolean[1] ;
+
+ (new Thread() {
+ @Override
+ public void run() {
+ result[0] = oObj.load(descr, frame);
+ }
+ }).start();
+
+ oObj.cancel() ;
+
+ waitForEventIdle();
+
+ tRes.tested("cancel()", !result[0]) ;
+ }
+
+ /**
+ * Disposes document if it was created for frame supplying.
+ */
+ @Override
+ protected void after() {
+ if (frameSup != null) {
+ frameSup.dispose();
+ }
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XTasksSupplier.java b/qadevOOo/tests/java/ifc/frame/_XTasksSupplier.java
new file mode 100644
index 000000000..9409cf36c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XTasksSupplier.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.frame.XTasksSupplier;
+
+
+/**
+* Testing <code>com.sun.star.frame.XTasksSupplier</code>
+* interface methods:
+* <ul>
+* <li><code> getActiveTask() </code></li>
+* <li><code> getTasks() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.frame.XTasksSupplier
+*/
+public class _XTasksSupplier extends MultiMethodTest {
+ public static XTasksSupplier oObj = null;
+
+ /**
+ * DEPRECATED. <p>
+ * Has <b> OK </b> status .
+ */
+ public void _getActiveTask() {
+ log.println("DEPRECATED");
+
+ tRes.tested("getActiveTask()", true) ;
+ } // finished _getTasks()
+
+ /**
+ * DEPRECATED. <p>
+ * Has <b> OK </b> status.
+ */
+ @Deprecated
+ public void _getTasks() {
+ log.println("DEPRECATED");
+
+ tRes.tested("getTasks()", true);
+
+ } // finished _removeResetListener()
+
+} // finished class _XTaskSupplier
+
diff --git a/qadevOOo/tests/java/ifc/frame/_XUIControllerRegistration.java b/qadevOOo/tests/java/ifc/frame/_XUIControllerRegistration.java
new file mode 100644
index 000000000..e42b9be24
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/frame/_XUIControllerRegistration.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.frame;
+
+import com.sun.star.frame.XUIControllerRegistration;
+import lib.MultiMethodTest;
+
+public class _XUIControllerRegistration extends MultiMethodTest {
+ public XUIControllerRegistration oObj = null;
+ private String aRegisteredController = null;
+ private static final String aController = ".uno:MySecondController";
+
+ @Override
+ public void before() {
+ aRegisteredController = (String)tEnv.getObjRelation("XUIControllerRegistration.RegisteredController");
+ }
+
+
+ public void _registerController() {
+ oObj.registerController(aController, "", "com.sun.star.comp.framework.FooterMenuController");
+ oObj.registerController(aRegisteredController, "", "com.sun.star.comp.framework.HeaderMenuController");
+ tRes.tested("registerController()", true);
+ }
+
+ public void _deregisterController() {
+ requiredMethod("registerController()");
+ oObj.deregisterController(aController, "");
+ tRes.tested("deregisterController()", true);
+ }
+
+ public void _hasController() {
+ requiredMethod("registerController()");
+ requiredMethod("deregisterController()");
+ boolean res = oObj.hasController(aRegisteredController, "");
+ res &= !oObj.hasController(aController, "");
+ tRes.tested("hasController()", res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/i18n/_XBreakIterator.java b/qadevOOo/tests/java/ifc/i18n/_XBreakIterator.java
new file mode 100644
index 000000000..d33165fd7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XBreakIterator.java
@@ -0,0 +1,679 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import java.util.ArrayList;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.i18n.Boundary;
+import com.sun.star.i18n.LineBreakHyphenationOptions;
+import com.sun.star.i18n.LineBreakResults;
+import com.sun.star.i18n.LineBreakUserOptions;
+import com.sun.star.i18n.ScriptType;
+import com.sun.star.i18n.WordType;
+import com.sun.star.i18n.XBreakIterator;
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.i18n.XBreakIterator</code>
+* interface methods :
+* <ul>
+* <li><code> nextCharacters()</code></li>
+* <li><code> previousCharacters()</code></li>
+* <li><code> nextWord()</code></li>
+* <li><code> previousWord()</code></li>
+* <li><code> getWordBoundary()</code></li>
+* <li><code> getWordType()</code></li>
+* <li><code> isBeginWord()</code></li>
+* <li><code> isEndWord()</code></li>
+* <li><code> beginOfSentence()</code></li>
+* <li><code> endOfSentence()</code></li>
+* <li><code> getLineBreak()</code></li>
+* <li><code> beginOfScript()</code></li>
+* <li><code> endOfScript()</code></li>
+* <li><code> nextScript()</code></li>
+* <li><code> previousScript()</code></li>
+* <li><code> getScriptType()</code></li>
+* <li><code> beginOfCharBlock()</code></li>
+* <li><code> endOfCharBlock()</code></li>
+* <li><code> nextCharBlock()</code></li>
+* <li><code> previousCharBlock()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Locale'</code>
+* (of type <code>com.sun.star.lang.Locale</code>):
+* this locale is used as locale argument for tested methods.
+* </li>
+* <li> <code>'UnicodeString'</code>
+* (of type <code>String</code>): Unicode string which is passed
+* to methods except 'CharacterBlock' methods.
+* </li>
+* <ul> <p>
+* @see com.sun.star.i18n.XBreakIterator
+*/
+public class _XBreakIterator extends MultiMethodTest {
+
+ public XBreakIterator oObj = null;
+
+ Locale locale = null;
+ String UnicodeString = null;
+
+ short wordType = WordType.ANYWORD_IGNOREWHITESPACES;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ protected void before() {
+ locale = (Locale)tEnv.getObjRelation("Locale");
+ if (locale == null) {
+ throw new StatusException
+ (Status.failed("Relation 'Locale' not found")) ;
+ }
+
+ UnicodeString = (String)tEnv.getObjRelation("UnicodeString");
+ if (UnicodeString == null) {
+ throw new StatusException(Status.failed
+ ("Relation 'UnicodeString' not found")) ;
+ }
+ }
+
+ /**
+ * Compares returned next character positions with expected values. <p>
+ *
+ * Has <b>OK</b> status if position after travel and traveled length
+ * has expected values.
+ */
+ public void _nextCharacters() {
+ short nCharacterIteratorMode =
+ com.sun.star.i18n.CharacterIteratorMode.SKIPCHARACTER;
+
+ int strLength = UnicodeString.length();
+
+ //Start from position : Travel ... chars :
+ // Actual position after : How many chars traveled
+ int[][] nextCharacters = {
+ { 1, 5000, strLength , strLength - 1 },
+ { 10, 6, 16, 6}};
+
+ boolean bRes = true;
+
+ for(int i = 0; i < nextCharacters.length; i++) {
+ int[] lDone = new int[1];
+ long lRes = oObj.nextCharacters(UnicodeString, nextCharacters[i][0],
+ locale, nCharacterIteratorMode, nextCharacters[i][1], lDone);
+ log.println("Expected result is: lRes = " + nextCharacters[i][2] +
+ "; lDone = " + nextCharacters[i][3] );
+ log.println("Actual result is: lRes = " + lRes +
+ "; lDone = " + lDone[0] );
+
+ bRes = bRes && lRes == nextCharacters[i][2];
+ bRes = bRes && lDone[0] == nextCharacters[i][3];
+ }
+
+ tRes.tested("nextCharacters()", bRes);
+ }
+
+ /**
+ * Compares returned previous character positions with expected values. <p>
+ *
+ * Has <b>OK</b> status if position after travel and traveled length
+ * has expected values.
+ */
+ public void _previousCharacters() {
+ short nCharacterIteratorMode =
+ com.sun.star.i18n.CharacterIteratorMode.SKIPCHARACTER;
+
+
+ //Start from position : Travel ... chars : Actual position after :
+ //How many chars traveled
+ int[][] previousCharacters = {
+ {5, 5000, 0, 5},
+ {10, 6, 4, 6}};
+
+ boolean bRes = true;
+ for(int i = 0; i < previousCharacters.length; i++) {
+ int[] lDone = new int[1];
+ int lRes = oObj.previousCharacters(UnicodeString,
+ previousCharacters[i][0],
+ locale, nCharacterIteratorMode,
+ previousCharacters[i][1], lDone);
+ log.println("Expected result is: lRes = " + previousCharacters[i][2]
+ + "; lDone = " + previousCharacters[i][3] );
+ log.println("Actual result is: lRes = " + lRes
+ + "; lDone = " + lDone[0]);
+
+ bRes = bRes && lRes == previousCharacters[i][2];
+ bRes = bRes && lDone[0] == previousCharacters[i][3];
+ }
+
+ tRes.tested("previousCharacters()", bRes);
+ }
+
+ ArrayList<Boundary> vBounds = new ArrayList<Boundary>();
+
+ /**
+ * Saves bounds of all returned words for the future tests. <p>
+ * Has <b>OK</b> status.
+ */
+ public void _nextWord() {
+ int i = 0;
+
+ while( i < UnicodeString.length() - 1 ) {
+ Boundary bounds = oObj.nextWord
+ (UnicodeString, i, locale, wordType);
+ if (bounds.endPos - bounds.startPos > 3) {
+ vBounds.add( bounds );
+ log.println("Word " + vBounds.size() + "("
+ + bounds.startPos + "," + bounds.endPos + "): '" +
+ UnicodeString.substring(bounds.startPos,
+ bounds.endPos) + "'");
+ }
+ i = bounds.endPos - 1;
+ }
+ log.println("In text there are " + vBounds.size()
+ + " words, if count from left to right");
+ tRes.tested("nextWord()", true);
+ }
+
+ /**
+ * Compares number of word bounds with number of word bounds saved
+ * by the method _nextWord().<p>
+ * Has <b>OK</b> status if number of word bounds are equal.
+ */
+ public void _previousWord() {
+ requiredMethod("nextWord()");
+
+ int i = UnicodeString.length() - 1;
+ ArrayList<Boundary> vPrevBounds = new ArrayList<Boundary>();
+ while( i > 0 ) {
+ Boundary bounds =
+ oObj.previousWord(UnicodeString, i, locale, wordType);
+ if (bounds.endPos - bounds.startPos > 3) {
+ vPrevBounds.add( bounds );
+ log.println("Word " + vPrevBounds.size() + "("
+ + bounds.startPos + "," + bounds.endPos + "): '"
+ + UnicodeString.substring(bounds.startPos, bounds.endPos)
+ + "'");
+ }
+ i = bounds.startPos;
+ }
+ log.println("In text there are " + vPrevBounds.size()
+ + " words, if count from right to left");
+ tRes.tested("previousWord()", vPrevBounds.size() == vBounds.size() );
+ }
+
+ /**
+ * For every word in array obtained by <code>nextWord</code> method test
+ * computes bounds of the word, passing its internal character position.<p>
+ *
+ * Has <b>OK</b> status if bounds calculated by <code>getWordBoundary()</code>
+ * method are the same as bounds obtained by <code>nextWord</code> method.
+ */
+ public void _getWordBoundary() {
+ requiredMethod("nextWord()");
+
+ boolean bRes = true;
+
+ for(int i = 0; i < vBounds.size(); i++) {
+ // calculate middle of the word
+ Boundary iBounds = vBounds.get(i);
+ int iPos = (iBounds.endPos - iBounds.startPos) / 2
+ + iBounds.startPos;
+ Boundary bounds = oObj.getWordBoundary(UnicodeString, iPos,
+ locale, wordType, true);
+ log.println("Expected result is: startPos = " + iBounds.startPos +
+ "; endPos = " + iBounds.endPos);
+ log.println("Actual result is: startPos = " + bounds.startPos
+ + "; endPos = " + bounds.endPos + " Word is: '"
+ + UnicodeString.substring(bounds.startPos, bounds.endPos) + "'");
+
+ bRes = bRes && iBounds.startPos == bounds.startPos;
+ bRes = bRes && iBounds.endPos == bounds.endPos;
+ }
+
+ tRes.tested("getWordBoundary()", bRes);
+ }
+
+ /**
+ * For every word in array obtained by <code>nextWord</code> method test
+ * get its type, passing its internal character position.<p>
+ *
+ * Has <b>OK</b> status if every word has type <code>WordType.ANY_WORD</code>
+ */
+ public void _getWordType() {
+ requiredMethod("nextWord()");
+
+ boolean bRes = true;
+
+ for(int i = 0; i < vBounds.size(); i++) {
+ // calculate middle of the word
+ Boundary iBounds = vBounds.get(i);
+ int iPos = (iBounds.endPos - iBounds.startPos) / 2
+ + iBounds.startPos;
+
+ short type = oObj.getWordType(UnicodeString, iPos, locale);
+
+ bRes = bRes && type == WordType.ANY_WORD;
+ }
+
+ tRes.tested("getWordType()", bRes);
+ }
+
+ /**
+ * For every word in array obtained by <code>nextWord</code> method test
+ * tries to determine if the character at a position starts a word.
+ * First word starting position is passed, then internal character
+ * position is passed. <p>
+ * Has <b>OK</b> status if in the first case <code>true</code>
+ * returned and in the second - <code>false</code> for every word.
+ */
+ public void _isBeginWord() {
+ requiredMethod("nextWord()");
+
+ boolean bRes = true;
+
+ for(int i = 0; i < vBounds.size(); i++) {
+ Boundary iBounds = vBounds.get(i);
+ boolean isBegin = oObj.isBeginWord(UnicodeString, iBounds.startPos,
+ locale, WordType.ANY_WORD);
+ bRes = bRes && isBegin;
+ boolean isNotBegin = !oObj.isBeginWord(UnicodeString,
+ iBounds.startPos + 1, locale, WordType.ANY_WORD);
+ bRes = bRes && isNotBegin;
+
+ log.println("At position + " + iBounds.startPos
+ + " isBeginWord? " + isBegin);
+ log.println("At position + " + (iBounds.startPos + 1)
+ + " isBeginWord? " + !isNotBegin);
+ }
+
+ tRes.tested("isBeginWord()", bRes);
+ }
+
+ /**
+ * For every word in array obtained by <code>nextWord</code> method test
+ * tries to determine if the character at a position ends a word.
+ * First word ending position is passed, then internal character
+ * position is passed. <p>
+ *
+ * Has <b>OK</b> status if in the first case <code>true</code>
+ * returned and in the second - <code>false</code> for every word.
+ */
+ public void _isEndWord() {
+ requiredMethod("nextWord()");
+
+ boolean bRes = true;
+
+ for(int i = 0; i < vBounds.size(); i++) {
+ Boundary iBounds = vBounds.get(i);
+ boolean isEnd = oObj.isEndWord(UnicodeString, iBounds.endPos,
+ locale, WordType.ANY_WORD);
+ bRes = bRes && isEnd;
+ boolean isNotEnd = !oObj.isEndWord(UnicodeString,
+ iBounds.endPos - 1, locale, WordType.ANY_WORD);
+ bRes = bRes && isNotEnd;
+
+ log.println("At position + " + iBounds.endPos
+ + " isEndWord? " + isEnd);
+ log.println("At position + " + (iBounds.endPos - 1)
+ + " isEndWord? " + !isNotEnd);
+ }
+
+ tRes.tested("isEndWord()", bRes);
+ }
+
+ ArrayList<Integer> vSentenceStart = new ArrayList<Integer>();
+ /**
+ * Tries to find all sentences starting positions passing every character
+ * as position parameter and stores them. Then tries to pass invalid
+ * position parameters.
+ *
+ * Has <b>OK</b> status if -1 is returned for wrong position arguments.
+ */
+ public void _beginOfSentence() {
+ int iPos = 0;
+ while( iPos < UnicodeString.length() ) {
+ Integer start = Integer.valueOf( oObj.beginOfSentence(UnicodeString,
+ iPos, locale) );
+ if (start.intValue() >= 0 && !vSentenceStart.contains(start) ) {
+ vSentenceStart.add( start );
+ log.println("Sentence " + vSentenceStart.size()
+ + " : start from position " + start);
+ }
+ iPos++;
+ }
+
+ //test for invalid nStartPosition
+ boolean bRes = oObj.beginOfSentence(UnicodeString, -10, locale) == -1;
+ bRes &= oObj.beginOfSentence(UnicodeString,
+ UnicodeString.length() + 1, locale) == -1;
+
+ if (!bRes) {
+ log.println("When invalid position, returned value isn't equal to -1");
+ }
+
+ tRes.tested("beginOfSentence()", bRes);
+ }
+
+ /**
+ * For every sentence starting position found in
+ * <code>beginOfSentence()</code> test tries to compute end
+ * position of a sentence and checks that the end position is
+ * greater than starting.
+ * Then wrong position arguments are passed.
+ *
+ * Has <b>OK</b> status if the end position of every sentence
+ * greater than starting and -1 returned for invalid arguments.
+ */
+ public void _endOfSentence() {
+ boolean bRes = true;
+ for(int i = 0; i < vSentenceStart.size(); i++) {
+ int start = vSentenceStart.get(i).intValue();
+ int end = oObj.endOfSentence(UnicodeString, start, locale);
+ bRes &= end > start;
+ log.println("Sentence " + i + " range is [" + start + ", "
+ + end + "]");
+ }
+
+ //test for invalid nStartPosition
+ boolean bInvRes = oObj.endOfSentence(UnicodeString, -10, locale) == -1;
+ bInvRes &= oObj.endOfSentence(UnicodeString,
+ UnicodeString.length() + 1, locale) == -1;
+
+ if (!bInvRes) {
+ log.println("When invalid position, returned value isn't equal to -1");
+ }
+
+ tRes.tested("endOfSentence()", bRes && bInvRes);
+ }
+
+ /**
+ * Tries to break a string in position other than 0 iterating characters
+ * from the string beginning (Hyphenation is not used for a while). <p>
+ *
+ * Has <b>OK</b> status if non-zero break position was found and it is
+ * less or equal than position we trying to break.
+ */
+ public void _getLineBreak() {
+ boolean bRes = true;
+ LineBreakResults lineBreakResults;
+ LineBreakHyphenationOptions lineBreakHyphenationOptions =
+ new LineBreakHyphenationOptions();
+ LineBreakUserOptions lineBreakUserOptions = new LineBreakUserOptions();
+
+ lineBreakUserOptions.applyForbiddenRules = false;
+ lineBreakUserOptions.allowHyphenateEnglish = false;
+
+ int breakPos = 0;
+ int pos = 0;
+
+ while(breakPos == 0 && pos < UnicodeString.length() ) {
+ lineBreakResults = oObj.getLineBreak(UnicodeString, pos,
+ locale, 0, lineBreakHyphenationOptions, lineBreakUserOptions);
+ breakPos = lineBreakResults.breakIndex;
+ pos++;
+ }
+
+ // finally the position of break must be found in the middle and
+ // it must be before the break position specified
+ bRes = breakPos <= pos && breakPos > 0;
+
+ if (!bRes) {
+ log.println("The last position was: " + pos
+ + ", and the break position was: " + breakPos);
+ }
+
+ tRes.tested("getLineBreak()", bRes);
+ }
+
+ // Asian type script
+ private static String katakana = new String(new char[] {0x30A1, 0x30A2}) ;
+ // Weak type script
+ private static String arrows = new String(new char[] {0x2190, 0x2191}) ;
+ // Complex type script
+ private static String arabic = new String(new char[] {0x0641, 0x0642}) ;
+
+ /**
+ * Tries to find the beginning of the nearest script specified
+ * relatively to position passed. <p>
+ * Has <b>OK</b> status if the starting position of script is returned.
+ */
+ public void _beginOfScript() {
+ String multiScript = "ab" + katakana ;
+
+ int pos = oObj.beginOfScript(multiScript, 3, ScriptType.ASIAN) ;
+
+ log.println("Position = " + pos) ;
+
+ tRes.tested("beginOfScript()", pos == 2) ;
+ }
+
+ /**
+ * Tries to find the end of the nearest script specified
+ * relatively to position passed. <p>
+ * Has <b>OK</b> status if the end position of script is returned.
+ */
+ public void _endOfScript() {
+ String multiScript = "ab" + katakana + "cd" ;
+
+ int pos = oObj.endOfScript(multiScript, 2, ScriptType.ASIAN) ;
+
+ log.println("Position = " + pos) ;
+
+ tRes.tested("endOfScript()", pos == 4) ;
+ }
+
+ /**
+ * Tries to find the next script starting position specified
+ * relatively to position passed. <p>
+ * Has <b>OK</b> status if the appropriate position is returned.
+ */
+ public void _nextScript() {
+ String multiScript = "ab" + katakana + "cd" ;
+
+ int pos = oObj.nextScript(multiScript, 0, ScriptType.LATIN) ;
+
+ log.println("Position = " + pos) ;
+
+ tRes.tested("nextScript()", pos == 4) ;
+ }
+
+ /**
+ * Tries to find the previous script starting position specified
+ * relatively to position passed. <p>
+ * Has <b>OK</b> status if the appropriate position is returned.
+ */
+ public void _previousScript() {
+ String multiScript = "ab" + katakana + "cd" ;
+
+ int pos = oObj.previousScript(multiScript, 5, ScriptType.ASIAN) ;
+
+ log.println("Position = " + pos) ;
+
+ tRes.tested("previousScript()", pos == 2) ;
+ }
+
+ /**
+ * Tries to determine script type (of all four types). <p>
+ * Has <b>OK</b> status if <code>LATIN</code> type returned
+ * for ASCII character, <code>ASIAN</code> for Katakana Unicode
+ * codepoints, <code>COMPLEX</code> for Arabic Unicode
+ * codepoints and <code>WEAK</code> for codepoints from Arrows
+ * Unicode block.
+ */
+ public void _getScriptType() {
+ boolean res = true ;
+
+ res &= oObj.getScriptType("abcd", 0) == ScriptType.LATIN ;
+ res &= oObj.getScriptType(katakana, 0) == ScriptType.ASIAN;
+ res &= oObj.getScriptType(arabic, 0) == ScriptType.COMPLEX ;
+ res &= oObj.getScriptType(arrows, 0) == ScriptType.WEAK ;
+
+ tRes.tested("getScriptType()", res) ;
+ }
+
+ boolean bCharBlockRes = true;
+
+ protected short getCharBlockType(int pos) {
+ short i = 1;
+ short cType = 0;
+ while (i < 31) {
+ if (oObj.beginOfCharBlock(UnicodeString, pos, locale, i) != -1) {
+ cType = i;
+ i = 100;
+ }
+ i++;
+ }
+
+ return cType;
+ }
+
+ ArrayList<Boundary> vCharBlockBounds = new ArrayList<Boundary>();
+ ArrayList<Short> vCharBlockTypes = new ArrayList<Short>();
+
+ /**
+ * Creates array of all char blocks with their boundaries and
+ * types using <code>beginOfCharBlock()</code> and
+ * <code>endOfCharBlock()</code> methods. <p>
+ *
+ * Has <b>OK</b> status if the end of each boundary is the same
+ * as start of the next one and if the start of the first block
+ * has position 0 and the end of the last block is at the end
+ * of the whole string.
+ */
+ public void _beginOfCharBlock() {
+ int iPos = 0;
+
+ while( iPos < UnicodeString.length() && iPos > -1) {
+ short charType = getCharBlockType(iPos);
+ int startPos = oObj.beginOfCharBlock(UnicodeString, iPos,
+ locale, charType);
+ int endPos = oObj.endOfCharBlock(UnicodeString, iPos,
+ locale, charType);
+ iPos = endPos;
+ vCharBlockBounds.add(new Boundary(startPos, endPos));
+ log.println(vCharBlockBounds.size() + "). Bounds: ["
+ + startPos + "," + endPos + "]; Type = " + charType);
+ vCharBlockTypes.add(Short.valueOf(charType));
+ }
+
+ for(int i = 0; i < vCharBlockBounds.size() - 1; i++) {
+ int endPos = vCharBlockBounds.get(i).endPos;
+ int startPos = vCharBlockBounds.get(i + 1).startPos;
+ if (endPos != startPos) {
+ bCharBlockRes = false;
+ }
+ }
+
+ log.println("Testing for no intersections : " + bCharBlockRes);
+ int startPos = vCharBlockBounds.get(0).startPos;
+ if (startPos != 0) {
+ bCharBlockRes = false;
+ }
+ int endPos = vCharBlockBounds.get
+ (vCharBlockBounds.size() - 1).endPos;
+ if (endPos != UnicodeString.length()) {
+ bCharBlockRes = false;
+ }
+ log.println("Regions should starts with 0 and ends with "
+ + UnicodeString.length());
+
+ tRes.tested("beginOfCharBlock()", bCharBlockRes);
+ }
+
+ /**
+ * Testing of this method is performed in <code>beginOfCharBlock()</code>
+ * method test. <p>
+ *
+ * Has the status same as <code>beginOfCharBlock()</code> method status.
+ */
+ public void _endOfCharBlock() {
+ requiredMethod("beginOfCharBlock()");
+ tRes.tested("endOfCharBlock()", bCharBlockRes);
+ }
+
+ /**
+ * For every character block obtained in <code>beginOfCharBlock()</code>
+ * method test (except the first) tries to find its starting position
+ * by mean of <code>nextCharBlock()</code> method passing as position
+ * argument the position before the start of a block. <p>
+ *
+ * Has <b>OK</b> status if the start of every block was found and it's
+ * equal to this block boundary start.
+ */
+ public void _nextCharBlock() {
+ requiredMethod("beginOfCharBlock()");
+
+ boolean bRes = true;
+ for(int i = 0; i < vCharBlockBounds.size(); i++) {
+ Boundary bounds = vCharBlockBounds.get(i);
+ Short type = vCharBlockTypes.get(i);
+ if (bounds.startPos - 1 < 0) continue;
+ int iPos = oObj.nextCharBlock(UnicodeString, bounds.startPos - 1,
+ locale, type.shortValue());
+ if (iPos != bounds.startPos) {
+ bRes = false;
+ log.println("nextCharBlock(UnicodeString, "
+ + (bounds.startPos - 1) + ", locale, " + type
+ + ") should return " + bounds.startPos);
+ log.println("... and actual value is " + iPos);
+ }
+ }
+
+ tRes.tested("nextCharBlock()", bRes);
+ }
+
+ /**
+ * For every character block obtained in <code>beginOfCharBlock()</code>
+ * method test (except the first) tries to find its starting position
+ * by mean of <code>previousCharBlock()</code> method passing as position
+ * argument the position after the end of a block. <p>
+ *
+ * Has <b>OK</b> status if the start of every block was found and it's
+ * equal to this block boundary start.
+ */
+ public void _previousCharBlock() {
+ requiredMethod("beginOfCharBlock()");
+
+ boolean bRes = true;
+ for(int i = 0; i < vCharBlockBounds.size(); i++) {
+ Boundary bounds = vCharBlockBounds.get(i);
+ Short type = vCharBlockTypes.get(i);
+ int iPos = oObj.previousCharBlock(UnicodeString,
+ bounds.endPos + 1, locale, type.shortValue());
+ if (iPos != bounds.startPos) {
+ bRes = false;
+ log.println("previousCharBlock(UnicodeString, "
+ + (bounds.endPos + 1) + ", locale, " + type
+ + ") should return " + bounds.startPos);
+ log.println("... and actual value is " + iPos);
+ }
+ }
+
+ tRes.tested("previousCharBlock()", bRes);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XCalendar.java b/qadevOOo/tests/java/ifc/i18n/_XCalendar.java
new file mode 100644
index 000000000..d24f20122
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XCalendar.java
@@ -0,0 +1,523 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.CalendarDisplayIndex;
+import com.sun.star.i18n.CalendarFieldIndex;
+import com.sun.star.i18n.CalendarItem;
+import com.sun.star.i18n.XCalendar;
+import com.sun.star.i18n.XLocaleData;
+import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.i18n.XCalendar</code>
+* interface methods :
+* <ul>
+* <li><code> loadDefaultCalendar()</code></li>
+* <li><code> loadCalendar()</code></li>
+* <li><code> getLoadedCalendar()</code></li>
+* <li><code> getAllCalendars()</code></li>
+* <li><code> getUniqueID()</code></li>
+* <li><code> setDateTime()</code></li>
+* <li><code> getDateTime()</code></li>
+* <li><code> setValue()</code></li>
+* <li><code> getValue()</code></li>
+* <li><code> isValid()</code></li>
+* <li><code> addValue()</code></li>
+* <li><code> getFirstDayOfWeek()</code></li>
+* <li><code> setFirstDayOfWeek()</code></li>
+* <li><code> setMinimumNumberOfDaysForFirstWeek()</code></li>
+* <li><code> getMinimumNumberOfDaysForFirstWeek()</code></li>
+* <li><code> getNumberOfMonthsInYear()</code></li>
+* <li><code> getNumberOfDaysInWeek()</code></li>
+* <li><code> getMonths()</code></li>
+* <li><code> getDays()</code></li>
+* <li><code> getDisplayName()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.i18n.XCalendar
+*/
+public class _XCalendar extends MultiMethodTest {
+ private boolean debug = false;
+ public XCalendar oObj = null;
+ public String[][] calendars;
+ public int[] count;
+ public double newDTime = 1000.75;
+ public short newValue = 2;
+ public short firstDay = 2;
+ public short mdfw = 3;
+ double aOriginalDTime = 0;
+ Locale[] installed_locales;
+
+ @Override
+ public void before() {
+ XLocaleData locData = null;
+ try {
+ locData = UnoRuntime.queryInterface(
+ XLocaleData.class,
+ tParam.getMSF().createInstance(
+ "com.sun.star.i18n.LocaleData"));
+
+ installed_locales = locData.getAllInstalledLocaleNames();
+ calendars = new String[installed_locales.length][];
+ count = new int[installed_locales.length];
+ } catch (com.sun.star.uno.Exception e) {
+
+ }
+
+ oObj.loadDefaultCalendar(installed_locales[0]);
+ aOriginalDTime = oObj.getDateTime();
+ debug = tParam.getBool("DebugIsActive");
+ }
+
+ /**
+ * Restore the changed time during the test to the original value of the
+ * machine: has to be correct for the following interface tests.
+ */
+ @Override
+ public void after() {
+ oObj.loadDefaultCalendar(installed_locales[0]);
+ oObj.setDateTime(aOriginalDTime);
+ }
+
+ /**
+ * Loads default calendar for different locales. <p>
+ * Has <b> OK </b> status if method loads calendar, that is
+ * default for a given locale.
+ */
+ public void _loadDefaultCalendar() {
+ boolean res = true;
+
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ oObj.loadDefaultCalendar(installed_locales[i]);
+ if (!oObj.getLoadedCalendar().Default) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= oObj.getLoadedCalendar().Default;
+ }
+
+ tRes.tested("loadDefaultCalendar()", res);
+ }
+
+ /**
+ * Tries to obtain calendars for a number of locales. <p>
+ * Has <b> OK </b> status if the method returns more than zero calendars for
+ * every locale.
+ */
+ public void _getAllCalendars() {
+ boolean res = true;
+
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ calendars[i] = oObj.getAllCalendars(installed_locales[i]);
+ count[i] = calendars[i].length-1;
+ if (calendars[i].length <= 0) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= (calendars[i].length > 0);
+ }
+ tRes.tested("getAllCalendars()", res);
+ }
+
+ /**
+ * Loads calendars for a number of locales. <p>
+ * Has <b> OK </b> status if loaded calendar names are equal to gotten
+ * calendar names after loading.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getAllCalendars() </code> : gets all calendars for a given
+ * locale </li>
+ * </ul>
+ */
+ public void _loadCalendar() {
+ boolean res = true;
+ requiredMethod("getAllCalendars()");
+
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ oObj.loadCalendar(calendars[i][0], installed_locales[i]);
+ if (!calendars[i][0].equals(oObj.getLoadedCalendar().Name)) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name);
+ }
+
+ tRes.tested("loadCalendar()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if loaded calendar names are equal to gotten
+ * calendar names after loading.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> loadCalendar() </code> : loads calendar using a given name
+ * and locale </li>
+ * </ul>
+ */
+ public void _getLoadedCalendar() {
+ boolean res = true;
+
+ requiredMethod("loadCalendar()");
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ oObj.loadCalendar(calendars[i][0], installed_locales[i]);
+ if (!calendars[i][0].equals(oObj.getLoadedCalendar().Name)) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name);
+ }
+ tRes.tested("getLoadedCalendar()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value that's equal to a
+ * calendar name. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> loadCalendar() </code> : loads calendar using a given name
+ * and locale </li>
+ * </ul>
+ */
+ public void _getUniqueID() {
+ boolean res = true;
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ oObj.loadCalendar(calendars[i][0], installed_locales[i]);
+ String uID = oObj.getUniqueID();
+ if (!uID.equals(calendars[i][0])) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= uID.equals(calendars[i][0]);
+ }
+
+ tRes.tested("getUniqueID()",res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value, that's equal to
+ * value set before. <p>
+ */
+
+ public void _setDateTime() {
+ boolean res = true;
+
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ oObj.setDateTime(newDTime);
+ double aDTime = oObj.getDateTime();
+ if (aDTime != newDTime) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= (aDTime == newDTime);
+ }
+
+ tRes.tested("setDateTime()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value, that's equal to
+ * value set before. <p>
+ */
+
+ public void _getDateTime() {
+ boolean res = true;
+
+ for (int i=0; i<installed_locales.length; i++) {
+ String lang = "Language: "+installed_locales[i].Language +
+ ", Country: "+ installed_locales[i].Country +
+ ", Variant: "+ installed_locales[i].Country;
+ oObj.setDateTime(newDTime);
+ double aDTime = oObj.getDateTime();
+ if (aDTime != newDTime) {
+ log.println(lang + " ... FAILED");
+ }
+ res &= (aDTime == newDTime);
+ }
+ tRes.tested("getDateTime()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value, that's equal to
+ * value set before. <p>
+ */
+ public void _setValue() {
+ boolean res = true;
+ for (int i = 0; i < installed_locales.length; i++) {
+ String error = "";
+ String lang = "Language: " + installed_locales[i].Language + ", Country: " + installed_locales[i].Country
+ + ", Variant: " + installed_locales[i].Variant + ", Name: " + calendars[i][count[i]];
+ String[] names = new String[] { "DAY_OF_MONTH", "HOUR", "MINUTE", "SECOND", "MILLISECOND", "YEAR",
+ "MONTH" };
+ oObj.loadCalendar(calendars[i][count[i]], installed_locales[i]);
+ short[] fields = new short[] { CalendarFieldIndex.DAY_OF_MONTH, CalendarFieldIndex.HOUR,
+ CalendarFieldIndex.MINUTE, CalendarFieldIndex.SECOND, CalendarFieldIndex.MILLISECOND,
+ CalendarFieldIndex.YEAR, CalendarFieldIndex.MONTH };
+ for (int k = 0; k < fields.length; k++) {
+
+ oObj.setDateTime(0.0);
+
+ // save the current values for debug purposes
+ short[] oldValues = new short[fields.length];
+ for (int n = 0; n < oldValues.length; n++) {
+ oldValues[n] = oObj.getValue(fields[n]);
+ }
+
+ short set = oObj.getValue(fields[k]);
+ if (fields[k] == CalendarFieldIndex.MONTH)
+ set = newValue;
+ oObj.setValue(fields[k], set);
+ short get = oObj.getValue(fields[k]);
+ if (get != set) {
+ if (debug)
+ log.println("ERROR occurred: tried to set " + names[k] + " to value " + set);
+ log.println("list of values BEFORE set " + names[k] + " to value " + set + ":");
+ for (int n = 0; n < oldValues.length; n++) {
+ log.println(names[n] + ":" + oldValues[n]);
+ }
+ log.println("list of values AFTER set " + names[k] + " to value " + set + ":");
+ for (int n = 0; n < fields.length; n++) {
+ log.println(names[n] + ":" + oObj.getValue(fields[n]));
+ }
+
+ error += "failed for " + names[k] + " expected " + set + " gained " + get + " ; \n";
+ }
+ }
+ if (error.equals("")) {
+ log.println(lang + " ... OK");
+ } else {
+ log.println("*** " + lang + " ... FAILED ***");
+ log.println(error);
+ }
+ res &= error.equals("");
+ }
+
+ tRes.tested("setValue()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value, that's equal to
+ * value set before. <p>
+ */
+
+ public void _getValue() {
+ boolean res = true;
+
+ requiredMethod("setValue()");
+ short aValue = oObj.getValue(CalendarFieldIndex.MONTH);
+ res &= (aValue == newValue);
+ if (!res){
+ log.println("the returned value is not the expected value:");
+ log.println("expected: " + newValue + " returned value: " + aValue);
+ }
+ tRes.tested("getValue()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if value, added by the method is greater than
+ * previously defined "newValue".
+ * <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getValue() </code> : gets the value of a field </li>
+ * </ul>
+ */
+ public void _addValue() {
+ boolean res = true;
+
+ requiredMethod("getValue()");
+ oObj.addValue(CalendarFieldIndex.MONTH, 1);
+ short aValue = oObj.getValue(CalendarFieldIndex.MONTH);
+ res &= (aValue > newValue);
+ if (!res){
+ log.println("the returned value is not the expected value:");
+ log.println("expected: " + newValue + " returned value: " + aValue);
+ }
+ tRes.tested("addValue()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setFirstDayOfWeek() {
+ boolean res = true;
+
+ oObj.setFirstDayOfWeek(firstDay);
+ res &= true;
+ tRes.tested("setFirstDayOfWeek()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value that is equal to
+ * value set before. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setFirstDayOfWeek() </code> : set the first day of a
+ * week</li>
+ * </ul>
+ */
+ public void _getFirstDayOfWeek() {
+ boolean res = true;
+
+ requiredMethod("setFirstDayOfWeek()");
+ short aFirstDayOfWeek = oObj.getFirstDayOfWeek();
+ res &= (aFirstDayOfWeek == firstDay);
+ tRes.tested("getFirstDayOfWeek()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown.
+ */
+ public void _setMinimumNumberOfDaysForFirstWeek() {
+ boolean res = true;
+
+ oObj.setMinimumNumberOfDaysForFirstWeek(mdfw);
+ res &= true;
+ tRes.tested("setMinimumNumberOfDaysForFirstWeek()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns value that is equal to
+ * value set before. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setMinimumNumberOfDaysForFirstWeek() </code> : sets how
+ * many days of a week must reside in the first week of a year</li>
+ * </ul>
+ */
+ public void _getMinimumNumberOfDaysForFirstWeek() {
+ boolean res = true;
+
+ requiredMethod("setMinimumNumberOfDaysForFirstWeek()");
+ short aShort = oObj.getMinimumNumberOfDaysForFirstWeek();
+ res &= (aShort == mdfw);
+ tRes.tested("getMinimumNumberOfDaysForFirstWeek()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns 12.
+ */
+ public void _getNumberOfMonthsInYear() {
+ boolean res = true;
+ short aShort = oObj.getNumberOfMonthsInYear();
+
+ res &= (aShort == (short) 12);
+ tRes.tested("getNumberOfMonthsInYear()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns 7.
+ */
+ public void _getNumberOfDaysInWeek() {
+ boolean res = true;
+ short aShort = oObj.getNumberOfDaysInWeek();
+
+ res &= (aShort == (short) 7);
+ tRes.tested("getNumberOfDaysInWeek()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if length of array, returned by the method is 12.
+ */
+ public void _getMonths() {
+ boolean res = true;
+ CalendarItem[] months = oObj.getMonths();
+
+ res &= (months.length == 12);
+ tRes.tested("getMonths()", res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if length of array, returned by the method is 7.
+ */
+ public void _getDays() {
+ boolean res = true;
+ CalendarItem[] Days = oObj.getDays();
+
+ res &= (Days.length == 7);
+ tRes.tested("getDays()", res);
+ }
+
+ /**
+ * After loading calendar, test calls the method, then result is checked.<p>
+ * Has <b> OK </b> status if length of string, returned by the method is 3.
+ */
+ public void _getDisplayName() {
+ boolean res = true;
+
+ oObj.loadCalendar(calendars[0][0],installed_locales[0]);
+ String DisplayName = oObj.getDisplayName(CalendarDisplayIndex.MONTH,
+ newValue, (short) 0);
+ res &= (DisplayName.length() == 3);
+ tRes.tested("getDisplayName()", res);
+ }
+
+
+ /**
+ * The test sets obviously wrong value, then calls a method. After that the
+ * test sets correct value, and again calls a method. <p>
+ * Has <b> OK </b> status if the method returns true when valid month is
+ * set, and if the method returns false when set month is not valid.
+ */
+ public void _isValid() {
+ boolean res = true;
+
+ oObj.loadDefaultCalendar(installed_locales[0]);
+ oObj.setValue(CalendarFieldIndex.MONTH, (short) 37);
+ res &= !oObj.isValid();
+ oObj.setValue(CalendarFieldIndex.MONTH, (short) 10);
+ res &= oObj.isValid();
+
+ tRes.tested("isValid()", res);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XCharacterClassification.java b/qadevOOo/tests/java/ifc/i18n/_XCharacterClassification.java
new file mode 100644
index 000000000..37d5efb9b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XCharacterClassification.java
@@ -0,0 +1,398 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.KParseTokens;
+import com.sun.star.i18n.KParseType;
+import com.sun.star.i18n.ParseResult;
+import com.sun.star.i18n.XCharacterClassification;
+import com.sun.star.lang.Locale;
+
+/**
+ * Testing <code>com.sun.star.i18n.XCharacterClassification</code>
+ * interface methods:
+ * <ul>
+ * <li><code> toUpper() </code></li>
+ * <li><code> toLower() </code></li>
+ * <li><code> toTitle() </code></li>
+ * <li><code> getType() </code></li>
+ * <li><code> getCharacterType() </code></li>
+ * <li><code> getStringType() </code></li>
+ * <li><code> getCharacterDirection() </code></li>
+ * <li><code> getScript() </code></li>
+ * <li><code> parseAnyToken() </code></li>
+ * <li><code> parsePredefinedToken() </code></li>
+ * </ul><p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.i18n.XCharacterClassification
+ */
+public class _XCharacterClassification extends MultiMethodTest {
+ public XCharacterClassification oObj = null;
+ public String[] languages = new String[]{"de","en","es","fr","ja","ko","zh"};
+ public String[] countries = new String[]{"DE","US","ES","FR","JP","KR","CN"};
+
+ public String[] charstyles_office = new String[] {"UNASSIGNED","UPPERCASE_LETTER",
+ "LOWERCASE_LETTER","TITLECASE_LETTER","MODIFIER_LETTER","OTHER_LETTER",
+ "NON_SPACING_MARK","ENCLOSING_MARK","COMBINING_SPACING_MARK",
+ "DECIMAL_DIGIT_NUMBER","LETTER_NUMBER","OTHER_NUMBER","SPACE_SEPARATOR",
+ "LINE_SEPARATOR","PARAGRAPH_SEPARATOR","CONTROL","FORMAT","PRIVATE_USE",
+ "OTHER_PUNCTUATION","DASH_PUNCTUATION","START_PUNCTUATION","END_PUNCTUATION",
+ "CONNECTOR_PUNCTUATION",
+ "OTHER_PUNCTUATION","MATH_SYMBOL","CURRENCY_SYMBOL","MODIFIER_SYMBOL",
+ "OTHER_SYMBOL","INITIAL_PUNCTUATION","FINAL_PUNCTUATION","GENERAL_TYPES_COUNT"};
+
+ public String[] unicode_script = new String[] {"U_BASIC_LATIN","U_LATIN_1_SUPPLEMENT",
+ "U_LATIN_EXTENDED_A","U_LATIN_EXTENDED_B","U_IPA_EXTENSIONS","U_SPACING_MODIFIER_LETTERS",
+ "U_COMBINING_DIACRITICAL_MARKS","U_GREEK","U_CYRILLIC","U_ARMENIAN","U_HEBREW",
+ "U_ARABIC","U_SYRIAC","U_THAANA","U_DEVANAGARI","U_BENGALI","U_GURMUKHI",
+ "U_GUJARATI","U_ORIYA","U_TAMIL","U_TELUGU","U_KANNADA","U_MALAYALAM",
+ "U_SINHALA","U_THAI","U_LAO","U_TIBETAN","U_MYANMAR","U_GEORGIAN",
+ "U_HANGUL_JAMO","U_ETHIOPIC","U_CHEROKEE","U_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS",
+ "U_OGHAM","U_RUNIC","U_KHMER","U_MONGOLIAN","U_LATIN_EXTENDED_ADDITIONAL",
+ "U_GREEK_EXTENDED","U_GENERAL_PUNCTUATION","U_SUPERSCRIPTS_AND_SUBSCRIPTS",
+ "U_CURRENCY_SYMBOLS","U_COMBINING_MARKS_FOR_SYMBOLS","U_LETTERLIKE_SYMBOLS",
+ "U_NUMBER_FORMS","U_ARROWS","U_MATHEMATICAL_OPERATORS","U_MISCELLANEOUS_TECHNICAL",
+ "U_CONTROL_PICTURES","U_OPTICAL_CHARACTER_RECOGNITION","U_ENCLOSED_ALPHANUMERICS",
+ "U_BOX_DRAWING","U_BLOCK_ELEMENTS","U_GEOMETRIC_SHAPES","U_MISCELLANEOUS_SYMBOLS",
+ "U_DINGBATS","U_BRAILLE_PATTERNS","U_CJK_RADICALS_SUPPLEMENT","U_KANGXI_RADICALS",
+ "U_IDEOGRAPHIC_DESCRIPTION_CHARACTERS","U_CJK_SYMBOLS_AND_PUNCTUATION",
+ "U_HIRAGANA","U_KATAKANA","U_BOPOMOFO","U_HANGUL_COMPATIBILITY_JAMO","U_KANBUN",
+ "U_BOPOMOFO_EXTENDED","U_ENCLOSED_CJK_LETTERS_AND_MONTHS","U_CJK_COMPATIBILITY",
+ "U_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A","U_CJK_UNIFIED_IDEOGRAPHS","U_YI_SYLLABLES",
+ "U_YI_RADICALS","U_HANGUL_SYLLABLES","U_HIGH_SURROGATES","U_HIGH_PRIVATE_USE_SURROGATES",
+ "U_LOW_SURROGATES","U_PRIVATE_USE_AREA","U_CJK_COMPATIBILITY_IDEOGRAPHS",
+ "U_ALPHABETIC_PRESENTATION_FORMS","U_ARABIC_PRESENTATION_FORMS_A","U_COMBINING_HALF_MARKS",
+ "U_CJK_COMPATIBILITY_FORMS","U_SMALL_FORM_VARIANTS","U_ARABIC_PRESENTATION_FORMS_B",
+ "U_SPECIALS","U_HALFWIDTH_AND_FULLWIDTH_FORMS","U_CHAR_SCRIPT_COUNT","U_NO_SCRIPT"};
+
+ /**
+ * Test calls the method for different locales. Then each result is compared
+ * with a string, converted to a upper case using
+ * <code>String</code> method <code>toUpperCase()</code>.<p>
+ * Has <b> OK </b> status if string, returned by the method is equal to
+ * a string that is returned by String.toUpperCase() for all locales.
+ */
+ public void _toUpper() {
+ boolean res = true;
+ char[] characters = new char[]{586,65,97,498,721,4588,772,8413,3404};
+ String toCheck = new String(characters);
+ String get = "";
+ String exp = "";
+
+ for (int i=0;i<7;i++) {
+ get = oObj.toUpper(toCheck, 0, toCheck.length(), getLocale(i));
+ exp = toCheck.toUpperCase(
+ new java.util.Locale(languages[i], countries[i]));
+ res &= get.equals(exp);
+ if (!res) {
+ log.println("FAILED for: language=" + languages[i] +
+ " ; country=" + countries[i]);
+ log.println("Expected: " + exp);
+ log.println("Gained : " + get);
+ }
+ }
+ tRes.tested("toUpper()", res);
+ }
+
+ /**
+ * Test calls the method for different locales. Then each result is compared
+ * with a string, converted to a lower case using
+ * <code>String</code> method <code>toLowerCase()</code>.<p>
+ * Has <b> OK </b> status if string, returned by the method is equal to
+ * a string that is returned by String.toLowerCase() for all locales.
+ */
+ public void _toLower() {
+ boolean res = true;
+ char[] characters = new char[]{586,65,97,498,721,4588,772,8413,3404};
+ String toCheck = new String(characters);
+ String get = "";
+ String exp = "";
+
+ for (int i=0;i<7;i++) {
+ get = oObj.toLower(toCheck,0,toCheck.length(),getLocale(i));
+ exp = toCheck.toLowerCase(
+ new java.util.Locale(languages[i],countries[i]));
+ res &= get.equals(exp);
+ if (!res) {
+ log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ log.println("Expected: " + exp);
+ log.println("Gained : " + get);
+ }
+ }
+ tRes.tested("toLower()", res);
+ }
+
+ /**
+ * Test calls the method for different locales. Then each result is compared
+ * with a string, converted to a title case using
+ * <code>java.lang.Character</code> method <code>toTitleCase()</code>.<p>
+ * Has <b> OK </b> status if string, returned by the method is equal to
+ * a string that was converted using Character.toTitleCase() for all locales.
+ */
+ public void _toTitle() {
+ boolean res = true;
+ String toCheck = new String(new char[]{8112});
+ String get = "";
+ String exp = "";
+
+ for (int i=0;i<7;i++) {
+ get = oObj.toTitle(toCheck, 0, 1, getLocale(i));
+ exp = new String(
+ new char[]{Character.toTitleCase(toCheck.toCharArray()[0])});
+ res &= get.equals(exp);
+ if (!res) {
+ log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ log.println("Expected: " + exp);
+ log.println("Gained : " + get);
+ }
+ }
+ tRes.tested("toTitle()", res);
+ }
+
+ /**
+ * At first we define <code>int[]</code> and <code>char[]</code> arrays of
+ * unicode symbol numbers, arranged as sequences, where symbols are sorted
+ * by type, so the character of <code>i<sup><small>th</small></sup></code>
+ * type is located on <code>i<sup><small>th</small></sup></code> position.<p>
+ * Has <b> OK </b> status if for all 30 types the method returns value, that
+ * is equal to an element number.<p>
+ * @see com.sun.star.i18n.CharType
+ */
+ public void _getType() {
+ boolean res = true;
+ char[] characters = new char[]{586,65,97,498,721,4588,772,8413,3404,
+ 48,8544,179,32,8232,8233,144,8204,57344,56320,173,40,41,95,3852,247,
+ 3647,901,3896,171,187};
+ int[] charsInt = new int[]{586,65,97,498,721,4588,772,8413,3404,48,
+ 8544,179,32,8232,8233,144,8204,57344,56320,173,40,41,95,3852,247,
+ 3647,901,3896,171,187};
+ String toCheck = new String(characters);
+
+ for (int i=0;i<characters.length;i++) {
+ int get = oObj.getType(toCheck, i);
+ res &= charstyles_office[get].equals(charstyles_office[i]);
+ if (!res) {
+ log.println("Code :" + Integer.toHexString(charsInt[i]));
+ log.println("Gained: " + charstyles_office[get]);
+ log.println("Expected : " + charstyles_office[i]);
+ }
+ }
+ tRes.tested("getType()", res);
+ }
+
+ /**
+ * After defining string to be checked and array of expected types, test
+ * calls the method for each character of a string and for all locales.<p>
+ * Has <b> OK </b> status if the method returns type, expected for a given
+ * character and locale.
+ */
+ public void _getCharacterType() {
+ boolean res = true;
+ String toCheck = "Ab0)";
+ int[] expected = new int[]{226,228,97,32};
+
+ for (int i=0;i<toCheck.length();i++) {
+ for (int j=1;j<7;j++) {
+ int get = oObj.getCharacterType(toCheck, i, getLocale(j));
+ res &= (get == expected[i]);
+ if (!res) {
+ log.println("FAILED for: language=" + languages[j] +
+ " ; country=" + countries[j]);
+ log.println("Symbol :" + toCheck.toCharArray()[i]);
+ log.println("Gained: " + get);
+ log.println("Expected : " + expected[i]);
+ }
+ }
+ }
+ tRes.tested("getCharacterType()", res);
+ }
+
+ /**
+ * After defining array of strings to be checked and array of expected types,
+ * test calls the method for each string of an array and for all locales.<p>
+ * Has <b> OK </b> status if the method returns type, expected for a given
+ * string and locale.
+ */
+ public void _getStringType() {
+ boolean res = true;
+ String[] toCheck = new String[]{"01234","AAAAA","bbbbb","AA()bb"};
+ int[] exp = new int[]{97,226,228,230};
+
+ for (int j=0;j<toCheck.length;j++) {
+ for (int i=0;i<7;i++) {
+ int get = oObj.getStringType(toCheck[j], 0,
+ toCheck[j].length(), getLocale(i));
+ res &= (get == exp[j]);
+ if (!res) {
+ log.println("FAILED for: language=" + languages[i] +
+ " ; country=" + countries[i]);
+ log.println("Expected: " + exp[j]);
+ log.println("Gained : " + get);
+ }
+ }
+ }
+ tRes.tested("getStringType()", res);
+ }
+
+ /**
+ * After string to be checked is initialized (all symbols are sorted
+ * by direction, so the character of <code>i<sup><small>th</small></sup></code>
+ * direction is located on <code>i<sup><small>th</small></sup></code>
+ * position), test calls the method for every character of that string. <p>
+ * Has <b> OK </b> status if the method returns direction, that's equal to
+ * a symbol position in the string.
+ */
+ public void _getCharacterDirection() {
+ boolean res = true;
+ String toCheck = new String(new char[]{65,1470,48,47,35,1632,44,10,
+ 9,12,33,8234,8237,1563,8235,8238,8236,768,1});
+ for (short i=0;i<19;i++) {
+ short get = oObj.getCharacterDirection(toCheck, i);
+ res &= (get == i);
+ if (!res) {
+ log.println("Code :" + toCheck.toCharArray()[i]);
+ log.println("Gained: " + get);
+ log.println("Expected: " + i);
+ }
+ }
+ tRes.tested("getCharacterDirection()", res);
+ }
+
+ /**
+ * At first we define <code>int[]</code> and <code>char[]</code> arrays of
+ * unicode symbol numbers, arranged as sequences, where symbols are sorted
+ * by type, so the character of <code>i<sup><small>th</small></sup></code>
+ * type is located on <code>i<sup><small>th</small></sup></code> position.<p>
+ * Has <b> OK </b> status if for each character method returns value, that
+ * is equal to a number where element is located in array. Also method has
+ * <b> OK </b> status for symbol with code 55296, because it doesn't work
+ * since it hasn't the right neighborhood.<p>
+ * @see "http://ppewww.ph.gla.ac.uk/~flavell/unicode/unidata.html"
+ */
+ public void _getScript() {
+ boolean res = true;
+ char[] characters = new char[]{65,128,256,384,592,750,773,924,1030,1331,1448,
+ 1569,1792,1936,2313,2465,2570,2707,2822,2972,3079,3240,3337,3464,3590,
+ 3745,3906,4097,4274,4357,4621,5040,5200,5776,5806,6030,6155,7683,7943,
+ 8202,8319,8352,8413,8452,8545,8616,8715,8965,9217,9281,9336,9474,9608,9719,
+ 9734,9999,10247,11911,12034,12274,12294,12358,12456,12552,12605,12688,12727,
+ 12806,13065,13312,19968,40964,42152,44032,55296,56192,56320,57344,63744,
+ 64257,64370,65056,65073,65131,65146,65532,65288};
+ int[] charsInt = new int[]{65,128,256,384,592,750,773,924,1030,1331,1448,
+ 1569,1792,1936,2313,2465,2570,2707,2822,2972,3079,3240,3337,3464,3590,
+ 3745,3906,4097,4274,4357,4621,5040,5200,5776,5806,6030,6155,7683,7943,
+ 8202,8319,8352,8413,8452,8545,8616,8715,8965,9217,9281,9336,9474,9608,9719,
+ 9734,9999,10247,11911,12034,12274,12294,12358,12456,12552,12605,12688,12727,
+ 12806,13065,13312,19968,40964,42152,44032,55296,56192,56320,57344,63744,
+ 64257,64370,65056,65073,65131,65146,65532,65288};
+ String toCheck = new String(characters);
+
+ for (int i=0;i<characters.length;i++) {
+ int get = oObj.getScript(toCheck, i);
+ res &= (get == i);
+ //The HIGH_SURROGATE 55296 doesn't work since it hasn't the right
+ //neighborhood
+ if (toCheck.substring(i, i + 1).hashCode() == 55296) res = true;
+ if (!res) {
+ log.println("-- " + toCheck.substring(i, i + 1).hashCode());
+ log.println("Code: " + Integer.toHexString(charsInt[i]));
+ log.println("Gained: " + unicode_script[get]);
+ log.println("Expected: " + unicode_script[i]);
+ }
+ }
+ tRes.tested("getScript()", res);
+ }
+
+ /**
+ * After defining a string to be parsed and parse conditions (flags), test
+ * calls the method for different locales three times with different parameters,
+ * checking result after every call. <p>
+ * Has <b> OK </b> status if the method returns right results all three
+ * times.
+ */
+ public void _parseAnyToken() {
+ int nStartFlags = KParseTokens.ANY_ALPHA | KParseTokens.ASC_UNDERSCORE;
+ int nContFlags = KParseTokens.ANY_ALNUM | KParseTokens.ASC_UNDERSCORE
+ | KParseTokens.ASC_DOT;
+ String toCheck = " 18 i18n ^";
+ ParseResult pRes = null;
+ boolean res = true;
+
+ for (int i=0;i<7;i++) {
+ pRes = oObj.parseAnyToken(toCheck, 1, getLocale(i),
+ nStartFlags, "", nContFlags, "");
+ res = ( (pRes.CharLen==2)
+ && (pRes.TokenType==32)
+ && (pRes.Value==18.0) );
+ pRes = oObj.parseAnyToken(toCheck, 4, getLocale(i),
+ nStartFlags, "", nContFlags, "");
+ res &= ( (pRes.CharLen==4)
+ && (pRes.TokenType==4)
+ && (pRes.Value==0.0) );
+ pRes = oObj.parseAnyToken(toCheck, 9, getLocale(i),
+ nStartFlags, "", nContFlags, "");
+ res &= ( (pRes.CharLen==1)
+ && (pRes.TokenType==1)
+ && (pRes.Value==0.0) );
+ }
+ tRes.tested("parseAnyToken()", res);
+ }
+
+ /**
+ * After defining a string to be parsed and parse conditions (flags), test
+ * calls the method for different locales two times with different parameters,
+ * checking result after every call. <p>
+ * Has <b> OK </b> status if the method returns right results.
+ */
+ public void _parsePredefinedToken() {
+ int nStartFlags = KParseTokens.ANY_ALPHA | KParseTokens.ASC_UNDERSCORE;
+ int nContFlags = nStartFlags;
+ String toCheck = " 18 int";
+ ParseResult pRes = null;
+ boolean res = true;
+
+ for (int i=0;i<7;i++) {
+ pRes = oObj.parsePredefinedToken(KParseType.IDENTNAME, toCheck,
+ 1, getLocale(i), nStartFlags, "", nContFlags, "");
+ res = (pRes.CharLen==0);
+ pRes = oObj.parsePredefinedToken(KParseType.IDENTNAME, toCheck,
+ 4, getLocale(i), nStartFlags, "", nContFlags, "");
+ res &= ( (pRes.CharLen==3)
+ && (pRes.TokenType==4)
+ && (pRes.Value==0.0) );
+ }
+ tRes.tested("parsePredefinedToken()", res);
+ }
+
+
+ /**
+ * Method returns locale for a given language and country.
+ * @param k index of needed locale.
+ */
+ private Locale getLocale(int k) {
+ return new Locale(languages[k],countries[k],"");
+ }
+
+
+} // end XCharacterClassification
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XCollator.java b/qadevOOo/tests/java/ifc/i18n/_XCollator.java
new file mode 100644
index 000000000..a9eece7f7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XCollator.java
@@ -0,0 +1,422 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import java.text.Collator;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.CollatorOptions;
+import com.sun.star.i18n.XCollator;
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.i18n.XCollator</code>
+* interface methods :
+* <ul>
+* <li><code> compareSubstring()</code></li>
+* <li><code> compareString()</code></li>
+* <li><code> loadDefaultCollator()</code></li>
+* <li><code> loadCollatorAlgorithm()</code></li>
+* <li><code> listCollatorAlgorithms()</code></li>
+* <li><code> loadCollatorAlgorithmWithEndUserOption()</code></li>
+* <li><code> listCollatorOptions()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.i18n.XCollator
+*/
+public class _XCollator extends MultiMethodTest {
+ public XCollator oObj = null;
+ private String[] alg = null ;
+ Locale loc = new Locale("en", "EN", "");
+
+ /**
+ * Just retrieves a list of algorithms. <p>
+ * Has <b>OK</b> status if non-zero length array returned.
+ */
+ public void _listCollatorAlgorithms() {
+ alg = oObj.listCollatorAlgorithms(loc) ;
+ log.println("Collator algorithms :");
+ if (alg != null) {
+ for (int i = 0; i < alg.length; i++) {
+ log.println(" '" + alg[i] + "'") ;
+ }
+ tRes.tested("listCollatorAlgorithms()", alg.length > 0) ;
+ } else {
+ tRes.tested("listCollatorAlgorithms()", false) ;
+ }
+ }
+
+ /**
+ * Just gets a list of options for some collator. <p>
+ * Has <b>OK</b> status if not null value returned.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> listCollatorAlgorithms </code> : to have some
+ * algorithm name. </li>
+ * </ul>
+ */
+ public void _listCollatorOptions() {
+ requiredMethod("listCollatorAlgorithms()") ;
+ int[] opt = oObj.listCollatorOptions(alg[0]) ;
+ log.println("Collator '" + alg[0] + "' options :");
+ if (opt != null) {
+ for (int i = 0; i < opt.length; i++) {
+ log.println(" " + opt[i]) ;
+ }
+ tRes.tested("listCollatorOptions()", true) ;
+ } else {
+ tRes.tested("listCollatorOptions()", false) ;
+ }
+ }
+
+ /**
+ * Calls the method with no options and with options(IGNORE_CASE),
+ * compares strings.<p>
+ * Has <b>OK</b> status if compareString() returned correct values.
+ */
+ public void _loadDefaultCollator() {
+ oObj.loadDefaultCollator(loc, 0);
+ boolean res = oObj.compareString("A", "a") != 0;
+ oObj.loadDefaultCollator(loc,
+ CollatorOptions.CollatorOptions_IGNORE_CASE);
+ res &= oObj.compareString("a", "A") == 0;
+ tRes.tested("loadDefaultCollator()", res) ;
+ }
+
+ /**
+ * Calls the method with no options and with options(IGNORE_CASE),
+ * compares strings.<p>
+ * Has <b>OK</b> status if compareString() returned correct values.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> listCollatorAlgorithms </code> : to have some
+ * algorithm name. </li>
+ * </ul>
+ */
+ public void _loadCollatorAlgorithm() {
+ requiredMethod("listCollatorAlgorithms()");
+ oObj.loadCollatorAlgorithm(alg[0], loc,
+ CollatorOptions.CollatorOptions_IGNORE_CASE);
+ boolean res = oObj.compareString("A", "a") == 0;
+ oObj.loadCollatorAlgorithm(alg[0], loc, 0);
+ res &= oObj.compareString("a", "A") != 0;
+ tRes.tested("loadCollatorAlgorithm()", res);
+ }
+
+ /**
+ * Calls the method with no options and with options(IGNORE_CASE),
+ * compares strings.<p>
+ * Has <b>OK</b> status if compareString() returned correct values.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> listCollatorAlgorithms </code> : to have some
+ * algorithm name. </li>
+ * </ul>
+ */
+ public void _loadCollatorAlgorithmWithEndUserOption() {
+ requiredMethod("listCollatorAlgorithms()");
+ oObj.loadCollatorAlgorithmWithEndUserOption(alg[0], loc,
+ new int[] {0});
+ boolean res = oObj.compareString("A", "a") != 0;
+ oObj.loadCollatorAlgorithmWithEndUserOption(alg[0], loc,
+ new int[] {CollatorOptions.CollatorOptions_IGNORE_CASE});
+ res = oObj.compareString("A", "a") == 0;
+ tRes.tested("loadCollatorAlgorithmWithEndUserOption()", res);
+ }
+
+ /**
+ * Test is performed for locales : en, ru, ja, zh, ko.
+ * Default collator is loaded for each locale. Then collation
+ * is performed for different combination of symbols from range of
+ * this locale.<p>
+ * Has <b>OK</b> status if comparing of different strings
+ * returns not 0 value, then comparing in the opposite
+ * order returns value with opposite sign, and comparing
+ * of two equal strings returns 0. The such comparing is performed
+ * for one character strings.
+ */
+ public void _compareSubstring() {
+ boolean result = true ;
+ char[] chars = new char[2] ;
+ Collator col = null ;
+
+ log.println(" #### Testing English locale ####") ;
+ oObj.loadDefaultCollator(loc, 0) ;
+ col = Collator.getInstance(new java.util.Locale("en", "EN")) ;
+ for (char ch = 0x0020; ch < 0x007F; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareSubstring(chars, col) ;
+ }
+
+ log.println(" #### Testing Russian locale ####") ;
+ oObj.loadDefaultCollator(
+ new com.sun.star.lang.Locale("ru", "RU", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("ru", "RU")) ;
+ for (char ch = 0x0410; ch < 0x0450; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareSubstring(chars, col) ;
+ }
+
+ log.println(" #### Testing Japan locale ####") ;
+ oObj.loadDefaultCollator(
+ new com.sun.star.lang.Locale("ja", "JP", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("ja", "JP")) ;
+ for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareSubstring(chars, col) ;
+ }
+
+ log.println(" #### Testing China locale ####") ;
+ oObj.loadDefaultCollator(new Locale("zh", "CN", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("zh", "CN")) ;
+ for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareSubstring(chars, col) ;
+ }
+
+ log.println(" #### Testing Korean locale ####") ;
+ oObj.loadDefaultCollator(new Locale("ko", "KR", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("ko", "KR")) ;
+ for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareSubstring(chars, col) ;
+ }
+
+ tRes.tested("compareSubstring()", result) ;
+ }
+
+ /**
+ * Test is performed for locales : en, ru, ja, zh, ko.
+ * Default collator is loaded for each locale. Then collation
+ * is performed for different combination of symbols from range of
+ * this locale.<p>
+ * Has <b>OK</b> status if comparing of different strings
+ * returns not 0 value, then comparing in the opposite
+ * order returns value with opposite sign, and comparing
+ * of two equal strings returns 0. The such comparing is performed
+ * for one character strings.
+ */
+ public void _compareString() {
+ boolean result = true ;
+ char[] chars = new char[2] ;
+ Collator col = null ;
+ log.println(" #### Testing English locale ####") ;
+ oObj.loadDefaultCollator(
+ new com.sun.star.lang.Locale("en", "EN", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("en", "EN")) ;
+ for (char ch = 0x0020; ch < 0x007F; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareString(chars, col) ;
+ }
+
+ log.println(" #### Testing Russian locale ####") ;
+ oObj.loadDefaultCollator(
+ new com.sun.star.lang.Locale("ru", "RU", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("ru", "RU")) ;
+ for (char ch = 0x0410; ch < 0x0450; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareString(chars, col) ;
+ }
+
+ log.println(" #### Testing Japan locale ####") ;
+ oObj.loadDefaultCollator(
+ new com.sun.star.lang.Locale("ja", "JP", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("ja", "JP")) ;
+ for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareString(chars, col) ;
+ }
+
+ log.println(" #### Testing China locale ####") ;
+ oObj.loadDefaultCollator(new Locale("zh", "CN", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("zh", "CN")) ;
+ for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareString(chars, col) ;
+ }
+
+ log.println(" #### Testing Korean locale ####") ;
+ oObj.loadDefaultCollator(new Locale("ko", "KR", ""), 0) ;
+ col = Collator.getInstance(new java.util.Locale("ko", "KR")) ;
+ for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
+ chars[0] = ch ; chars[1] = (char) (ch + 1) ;
+ result &= testCompareString(chars, col) ;
+ }
+
+ tRes.tested("compareString()", result) ;
+ }
+
+
+ /**
+ * Testing compareString() method. At first method is testing single chars
+ * comparing, then strings comparing.
+ * @param locChar sequence of at list two characters of a given locale
+ * to be used in comparing.
+ * @param col Collator for a given locale
+ * @return true if:
+ * <ol>
+ * <li> if comparing of two identical characters returns zero</li>
+ * <li> if comparing of two different characters returns non zero</li>
+ * <li> if comparing of two identical strings, composed of given chars
+ * returns zero</li>
+ * <li> if comparing of two different strings, composed of given chars
+ * returns non zero</li>
+ * </ol>
+ */
+ public boolean testCompareString(char[] locChar, Collator col) {
+ boolean result = true;
+ int res;
+ String msg = "";
+
+ String char0 = "_"+new String(new char[] {locChar[0]});
+ String char1 = "_"+new String(new char[] {locChar[1]});
+ res = oObj.compareString(char0 , char0) ;
+ if (res != 0) {
+ msg += " Testing collation of single equal characters ("
+ + toUnicode(char0) + ") ... FAILED\n" ;
+ }
+ result &= res == 0 ;
+ res = oObj.compareString(char0, char1) ;
+ if (res == 0) {
+ msg += " Testing collation of single different" +
+ " characters (" + toUnicode(char0+char1) +
+ ") ... FAILED (0 returned)\n" ;
+ msg += " Java collator returned " +
+ col.compare(char0, char1) + "\n" ;
+ result = false ;
+ } else { // opposite order - sum of results must be 0
+ res += oObj.compareString(char1, char0) ;
+ if (res != 0) {
+ msg += " Testing collation of single different" +
+ " characters (" + toUnicode(char0+char1) +
+ ") ... FAILED\n" ;
+ }
+ result &= res == 0 ;
+ }
+
+ String str1 = new String(new char[] {locChar[0], locChar[0],
+ locChar[1], locChar[1], locChar[1]}) ;
+ String str2 = new String(new char[] {locChar[0], locChar[0],
+ locChar[0], locChar[1], locChar[1]}) ;
+
+ res = oObj.compareString(str1 , str1) ;
+ if (res != 0) {
+ msg += " Testing collation of equal strings (" +
+ toUnicode(str1) + ") ... FAILED\n" ;
+ }
+ result &= res == 0 ;
+ res = oObj.compareString(str1, str2) ;
+ if (res == 0) {
+ msg += " Testing collation of different strings ((" +
+ toUnicode(str1) + "),(" + toUnicode(str2) +
+ ")) ... FAILED (0 returned)\n" ;
+ msg += " Java collator returned " +
+ col.compare(str1, str2) + "\n" ;
+ result = false ;
+ } else { // opposite order - sum of results must be
+ res += oObj.compareString(str2, str1) ;
+ if (res != 0) {
+ msg += " Testing collation of different strings ((" +
+ toUnicode(str1) + "),(" + toUnicode(str2) +
+ ")) ... FAILED\n" ;
+ }
+ result &= res == 0 ;
+ }
+
+ if (!result) {
+ log.println(msg) ;
+ }
+ return result ;
+ }
+
+
+ /**
+ * Testing compareSubstring() method. Method is testing substrings comparing.
+ * @param locChar sequence of at list two characters of a given locale
+ * to be used in comparing.
+ * @param col Collator for a given locale
+ * @return true if:
+ * <ol>
+ * <li> if comparing of two identical substrings of strings, composed
+ * of given chars returns zero</li>
+ * <li> if comparing of two different substrings of strings, composed
+ * of given chars returns non zero</li>
+ * </ol>
+ */
+ public boolean testCompareSubstring(char[] locChar, Collator col) {
+ boolean result = true ;
+ int res ;
+ String msg = "" ;
+
+ String str1 = new String(new char[] {locChar[0], locChar[0],
+ locChar[1], locChar[1], locChar[1]}) ;
+ String str2 = new String(new char[] {locChar[0], locChar[0],
+ locChar[0], locChar[1], locChar[1]}) ;
+
+ res = oObj.compareSubstring(str1, 1, 2 , str2, 2, 2) ;
+ if (res != 0) {
+ msg += " Testing collation of equal substrings (" +
+ toUnicode(str1) + ") ... FAILED\n" ;
+ }
+ result &= res == 0 ;
+ res = oObj.compareSubstring(str1, 1, 2, str2, 1, 2) ;
+ if (res == 0) {
+ msg += " Testing collation of different strings ((" +
+ toUnicode(str1.substring(1, 3)) + "),(" +
+ toUnicode(str2.substring(1, 3))
+ + ")) ... FAILED (0 returned)\n" ;
+ msg += " Java collator returned " + col.compare
+ (str1.substring(1, 3), str2.substring(1, 3)) + "\n" ;
+ result = false ;
+ } else { // opposite order - sum of results must be
+ res += oObj.compareSubstring(str2, 1, 2, str1, 1, 2) ;
+ if (res != 0) {
+ msg += " Testing collation of different strings ((" +
+ toUnicode(str1) + "),(" + toUnicode(str2) +
+ ")) ... FAILED\n" ;
+ }
+ result &= res == 0 ;
+ }
+
+ if (!result) {
+ log.println(msg) ;
+ }
+ return result ;
+ }
+
+
+ /**
+ * Transforms string to unicode hex codes.
+ * @param str String to be transformed
+ */
+ public String toUnicode(String str) {
+ char[] chars = str.toCharArray() ;
+ StringBuilder res = new StringBuilder();
+ for (int i = 0; i < chars.length; i++) {
+ if (i != 0) {
+ res.append(",");
+ }
+ res.append(Integer.toHexString(chars[i]));
+ }
+ return res.toString();
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XExtendedCalendar.java b/qadevOOo/tests/java/ifc/i18n/_XExtendedCalendar.java
new file mode 100644
index 000000000..bd190241c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XExtendedCalendar.java
@@ -0,0 +1,125 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.i18n;
+
+import com.sun.star.i18n.CalendarDisplayCode;
+import com.sun.star.i18n.NativeNumberMode;
+import com.sun.star.i18n.XExtendedCalendar;
+import com.sun.star.i18n.XLocaleData;
+import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import lib.MultiMethodTest;
+
+/**
+ *
+ */
+public class _XExtendedCalendar extends MultiMethodTest {
+ public XExtendedCalendar oObj = null;
+ boolean useUSENLocale = false;
+ /**
+ * Load a calendar
+ */
+ @Override
+ public void before() throws Exception {
+ Locale[] installed_locales = null;
+ XLocaleData locData = UnoRuntime.queryInterface(
+ XLocaleData.class,
+ tParam.getMSF().createInstance(
+ "com.sun.star.i18n.LocaleData"));
+
+ installed_locales = locData.getAllInstalledLocaleNames();
+ // use first Locale as fallback, if US-English is not found
+ Locale lo = installed_locales[0];
+ for (int i=0; i<installed_locales.length; i++) {
+ // search for "en" and "US"
+ if (installed_locales[i].Language.equals("en") &&
+ installed_locales[i].Country.equals("US")) {
+ lo = installed_locales[i];
+ useUSENLocale = true;
+ }
+ }
+ log.println("Choose Locale: '" + lo.Language + "', '" + lo.Country + "'");
+ oObj.loadDefaultCalendar(lo);
+ }
+
+
+ public void _getDisplayString() {
+ // against regression: the current state is the right one.
+ boolean result = true;
+ String[] displayString = new String[6];
+ // build the defaults with the Java Calendar functions
+ String[] expectedStringResult = new String[6];
+ Calendar cal = new GregorianCalendar();
+ Date actualDate = cal.getTime();
+
+ SimpleDateFormat sdf = getSDF("yy");
+ expectedStringResult[0] = "AD" + sdf.format(actualDate);
+
+ sdf = getSDF("yyyy");
+ expectedStringResult[1] = "AD" + sdf.format(actualDate);
+
+ sdf = getSDF("MM");
+ expectedStringResult[2] = sdf.format(actualDate);
+
+ int month = cal.get(Calendar.MONTH) + 1;
+ String quarter = "Q1";
+ String longQuarter = "1st quarter";
+ if (month > 3 && month < 7) { quarter = "Q2"; longQuarter = "2nd quarter"; }
+ else if (month > 6 && month < 10) { quarter = "Q3"; longQuarter = "3rd quarter"; }
+ else if (month > 10 && month < 13) {quarter = "Q4"; longQuarter = "4th quarter"; }
+ expectedStringResult[3] = quarter;
+ expectedStringResult[4] = longQuarter;
+
+ sdf = getSDF("MMMM");
+ expectedStringResult[5] = sdf.format(actualDate);
+
+ displayString[0] = oObj.getDisplayString(CalendarDisplayCode.SHORT_YEAR_AND_ERA, NativeNumberMode.NATNUM0);
+ displayString[1] = oObj.getDisplayString(CalendarDisplayCode.LONG_YEAR_AND_ERA, NativeNumberMode.NATNUM0);
+ displayString[2] = oObj.getDisplayString(CalendarDisplayCode.LONG_MONTH, NativeNumberMode.NATNUM0);
+ displayString[3] = oObj.getDisplayString(CalendarDisplayCode.SHORT_QUARTER, NativeNumberMode.NATNUM0);
+ displayString[4] = oObj.getDisplayString(CalendarDisplayCode.LONG_QUARTER, NativeNumberMode.NATNUM0);
+ displayString[5] = oObj.getDisplayString(CalendarDisplayCode.LONG_MONTH_NAME, NativeNumberMode.NATNUM0);
+
+ for (int i=0; i<displayString.length; i++) {
+ boolean locResult = false;
+ if (useUSENLocale) {
+ locResult = displayString[i].equals(expectedStringResult[i]);
+ if (!locResult)
+ log.println("getDisplayString() result " + i + ": '" + displayString[i]
+ + "', expected: '" + expectedStringResult[i] + "'");
+ result &= locResult;
+ }
+ else { // no defaults for other locales, just expect a String
+ locResult &= displayString[i] != null;
+ if (!locResult)
+ log.println("getDisplayString() result " + i + " was 'null'");
+ result &= locResult;
+ }
+ }
+ tRes.tested("getDisplayString()", result);
+ }
+
+ private SimpleDateFormat getSDF(String format){
+ if (useUSENLocale) return new SimpleDateFormat(format, java.util.Locale.US);
+ return new SimpleDateFormat(format);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/i18n/_XExtendedIndexEntrySupplier.java b/qadevOOo/tests/java/ifc/i18n/_XExtendedIndexEntrySupplier.java
new file mode 100644
index 000000000..7793a8cdd
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XExtendedIndexEntrySupplier.java
@@ -0,0 +1,311 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.i18n;
+
+import com.sun.star.i18n.CollatorOptions;
+import com.sun.star.i18n.XExtendedIndexEntrySupplier;
+import com.sun.star.lang.Locale;
+
+import java.util.HashMap;
+
+import lib.MultiMethodTest;
+
+
+public class _XExtendedIndexEntrySupplier extends MultiMethodTest {
+ public XExtendedIndexEntrySupplier oObj;
+ protected Locale[] locales = null;
+ protected HashMap<Integer, String[]> algorithms = new HashMap<Integer, String[]>();
+
+ public void _compareIndexEntry() {
+ requiredMethod("getIndexKey()");
+ Locale locale = new Locale("zh", "CN", "");
+ String val1 = new String(new char[]{UnicodeStringPair.getUnicodeValue(0), UnicodeStringPair.getUnicodeValue(1)});
+ String val2 = new String(new char[]{UnicodeStringPair.getUnicodeValue(1), UnicodeStringPair.getUnicodeValue(0)});
+ short result1 = oObj.compareIndexEntry(val1, "", locale, val1, "", locale);
+ short result2 = oObj.compareIndexEntry(val1, "", locale, val2, "", locale);
+ short result3 = oObj.compareIndexEntry(val2, "", locale, val1, "", locale);
+
+ tRes.tested("compareIndexEntry()", result1 == 0 && result2 + result3 == 0);
+ }
+
+ /*
+ * gets the list of all algorithms for each listed language
+ * is OK if everyone of the returned lists are filled
+ */
+ public void _getAlgorithmList() {
+ requiredMethod("getLocaleList()");
+
+ boolean result = true;
+
+ for (int i = 0; i < locales.length; i++) {
+ String[] algNames = oObj.getAlgorithmList(locales[i]);
+ algorithms.put(Integer.valueOf(i), algNames);
+
+ boolean locResult = algNames.length > 0;
+ System.out.println("Locale " + i + ": " + locales[i].Country+","+locales[i].Language);
+
+ for (int j=0; j<algNames.length; j++) {
+ System.out.println("\tAlgorithm " + j + ": " + algNames[j]);
+ }
+
+ if (!locResult) {
+ log.println("No Algorithm found for " + locales[i].Country +
+ "," + locales[i].Language);
+ }
+
+ result &= locResult;
+ }
+
+ tRes.tested("getAlgorithmList()", result);
+ }
+
+ public void _getIndexKey() {
+ requiredMethod("loadAlgorithm()");
+ char[] characters = new char[] { 19968 };
+ String getIndexFor = new String(characters);
+ for (int i = 0; i < locales.length; i++) {
+ log.println("Language: " + locales[i].Language);
+
+ for (int j = 0; j < algorithms.size(); j++) {
+ String[] algs = algorithms.get(Integer.valueOf(j));
+ for (int k=0;k<algs.length;k++) {
+ log.println("\t Algorithm :" +
+ algs[k]);
+ oObj.loadAlgorithm(locales[i], algs[k], CollatorOptions.CollatorOptions_IGNORE_CASE);
+ log.println("\t\t Get: " +
+ oObj.getIndexKey(getIndexFor, "", locales[i]));
+ }
+ }
+ }
+ tRes.tested("getIndexKey()", true);
+ }
+
+ /*
+ * gets a list of all locales, is OK if this list isn't empty
+ */
+ public void _getLocaleList() {
+ locales = oObj.getLocaleList();
+ tRes.tested("getLocaleList()", locales.length > 0);
+ }
+
+ /*
+ * gets one phonetic candidate for the chinese local
+ * is ok if 'yi' is returned as expected.
+ */
+ public void _getPhoneticCandidate() {
+ requiredMethod("getLocaleList()");
+
+ boolean res = true;
+
+ Locale loc = new Locale("zh", "CN", "");
+
+ for (int i = 0;i<UnicodeStringPair.getValCount();i++) {
+
+ char[] c = new char[]{UnicodeStringPair.getUnicodeValue(i)};
+
+ String getting = oObj.getPhoneticCandidate(new String(c), loc);
+
+ boolean locResult = getting.equals(UnicodeStringPair.getExpectedPhoneticString(i));
+
+ if (!locResult) {
+ log.println("Char: "+ c[0] + " (" + (int)c[0] + ")");
+ log.println("Expected " + UnicodeStringPair.getExpectedPhoneticString(i));
+ log.println("Getting " + getting);
+ }
+
+ res &= locResult;
+ }
+ tRes.tested("getPhoneticCandidate()", res);
+ }
+
+ /*
+ * loads all algorithms available in all language.
+ * Is OK if no exception occurs and the method returns
+ * true for each valid algorithm and false otherwise
+ */
+ public void _loadAlgorithm() {
+ requiredMethod("getAlgorithmList()");
+
+ boolean res = true;
+
+ for (int i = 0; i < algorithms.size(); i++) {
+ String[] names = algorithms.get(Integer.valueOf(i));
+ log.println("loading algorithms for " + locales[i].Country +
+ "," + locales[i].Language);
+
+ for (int j = 0; j < names.length; j++) {
+ log.println("\t Loading " + names[j]);
+
+ boolean localres = oObj.loadAlgorithm(locales[i], names[j],
+ CollatorOptions.CollatorOptions_IGNORE_CASE);
+
+ if (!localres) {
+ log.println("\t ... didn't work - FAILED");
+ } else {
+ log.println("\t ... worked - OK");
+ }
+
+ res &= localres;
+ }
+ }
+
+ tRes.tested("loadAlgorithm()", res);
+ }
+
+ /*
+ * checks the method usePhoneticEntry(). Only the languages ja, ko and zh
+ * should return true. Has OK state if exactly this is the case.
+ */
+ public void _usePhoneticEntry() {
+ requiredMethod("getLocaleList()");
+
+ boolean res = true;
+
+ for (int i = 0; i < locales.length; i++) {
+ boolean expected = false;
+
+ if (locales[i].Language.equals("ja") ||
+ locales[i].Language.equals("ko") ||
+ locales[i].Language.equals("zh")) {
+ expected = true;
+ }
+
+ boolean locResult = oObj.usePhoneticEntry(locales[i]) == expected;
+
+ if (!locResult) {
+ log.println("Failure for language " + locales[i].Language);
+ log.println("Expected " + expected);
+ log.println("Getting " + oObj.usePhoneticEntry(locales[i]));
+ }
+
+ res &= locResult;
+ }
+
+ tRes.tested("usePhoneticEntry()", res);
+ }
+
+ /**
+ * Helper class to handle the phonetic equivalence of unicode characters
+ * This class delivers an amount of unicode characters and the equivalent phonetics
+ * for the "getPhoneticCandidate" test. Equivalents are only usable for zh,CN locale.
+ */
+ public static class UnicodeStringPair {
+ static final int valCount = 78;
+ static final String[] sStringEquivalence = new String[valCount];
+ static final char[] iUnicodeEquivalence = new char[valCount];
+
+ static {
+ fillValues();
+ }
+
+ public static int getValCount() {
+ return valCount;
+ }
+
+ public static String getExpectedPhoneticString(int index) {
+ if (index >= valCount) return null;
+ return sStringEquivalence[index];
+ }
+
+ public static char getUnicodeValue(int index) {
+ if (index > valCount) return 0;
+ return iUnicodeEquivalence[index];
+ }
+
+ private static void fillValues() {
+ iUnicodeEquivalence[0] = 20049; sStringEquivalence[0] = "zhong";
+ iUnicodeEquivalence[1] = 19968; sStringEquivalence[1] = "yi";
+ iUnicodeEquivalence[2] = 19969; sStringEquivalence[2] = "ding";
+ iUnicodeEquivalence[3] = 19970; sStringEquivalence[3] = "kao";
+ iUnicodeEquivalence[4] = 19971; sStringEquivalence[4] = "qi";
+ iUnicodeEquivalence[5] = 19972; sStringEquivalence[5] = "shang";
+ iUnicodeEquivalence[6] = 19973; sStringEquivalence[6] = "xia";
+ iUnicodeEquivalence[7] = 19975; sStringEquivalence[7] = "wan";
+ iUnicodeEquivalence[8] = 19976; sStringEquivalence[8] = "zhang";
+ iUnicodeEquivalence[9] = 19977; sStringEquivalence[9] = "san";
+ iUnicodeEquivalence[10] = 19978; sStringEquivalence[10] = "shang";
+ iUnicodeEquivalence[11] = 19979; sStringEquivalence[11] = "xia";
+ iUnicodeEquivalence[12] = 19980; sStringEquivalence[12] = "ji";
+ iUnicodeEquivalence[13] = 19981; sStringEquivalence[13] = "bu";
+ iUnicodeEquivalence[14] = 19982; sStringEquivalence[14] = "yu";
+ iUnicodeEquivalence[15] = 19983; sStringEquivalence[15] = "mian";
+ iUnicodeEquivalence[16] = 19984; sStringEquivalence[16] = "gai";
+ iUnicodeEquivalence[17] = 19985; sStringEquivalence[17] = "chou";
+ iUnicodeEquivalence[18] = 19986; sStringEquivalence[18] = "chou";
+ iUnicodeEquivalence[19] = 19987; sStringEquivalence[19] = "zhuan";
+ iUnicodeEquivalence[20] = 19988; sStringEquivalence[20] = "qie";
+ iUnicodeEquivalence[21] = 19989; sStringEquivalence[21] = "pi";
+ iUnicodeEquivalence[22] = 19990; sStringEquivalence[22] = "shi";
+ iUnicodeEquivalence[23] = 19991; sStringEquivalence[23] = "shi";
+ iUnicodeEquivalence[24] = 19992; sStringEquivalence[24] = "qiu";
+ iUnicodeEquivalence[25] = 19993; sStringEquivalence[25] = "bing";
+ iUnicodeEquivalence[26] = 19994; sStringEquivalence[26] = "ye";
+ iUnicodeEquivalence[27] = 19995; sStringEquivalence[27] = "cong";
+ iUnicodeEquivalence[28] = 19996; sStringEquivalence[28] = "dong";
+ iUnicodeEquivalence[29] = 19997; sStringEquivalence[29] = "si";
+ iUnicodeEquivalence[30] = 19998; sStringEquivalence[30] = "cheng";
+ iUnicodeEquivalence[31] = 19999; sStringEquivalence[31] = "diu";
+ iUnicodeEquivalence[32] = 20000; sStringEquivalence[32] = "qiu";
+ iUnicodeEquivalence[33] = 20001; sStringEquivalence[33] = "liang";
+ iUnicodeEquivalence[34] = 20002; sStringEquivalence[34] = "diu";
+ iUnicodeEquivalence[35] = 20003; sStringEquivalence[35] = "you";
+ iUnicodeEquivalence[36] = 20004; sStringEquivalence[36] = "liang";
+ iUnicodeEquivalence[37] = 20005; sStringEquivalence[37] = "yan";
+ iUnicodeEquivalence[38] = 20006; sStringEquivalence[38] = "bing";
+ iUnicodeEquivalence[39] = 20007; sStringEquivalence[39] = "sang";
+ iUnicodeEquivalence[40] = 20008; sStringEquivalence[40] = "shu";
+ iUnicodeEquivalence[41] = 20009; sStringEquivalence[41] = "jiu";
+ iUnicodeEquivalence[42] = 20010; sStringEquivalence[42] = "ge";
+ iUnicodeEquivalence[43] = 20011; sStringEquivalence[43] = "ya";
+ iUnicodeEquivalence[44] = 20012; sStringEquivalence[44] = "qiang";
+ iUnicodeEquivalence[45] = 20013; sStringEquivalence[45] = "zhong";
+ iUnicodeEquivalence[46] = 20014; sStringEquivalence[46] = "ji";
+ iUnicodeEquivalence[47] = 20015; sStringEquivalence[47] = "jie";
+ iUnicodeEquivalence[48] = 20016; sStringEquivalence[48] = "feng";
+ iUnicodeEquivalence[49] = 20017; sStringEquivalence[49] = "guan";
+ iUnicodeEquivalence[50] = 20018; sStringEquivalence[50] = "chuan";
+ iUnicodeEquivalence[51] = 20019; sStringEquivalence[51] = "chan";
+ iUnicodeEquivalence[52] = 20020; sStringEquivalence[52] = "lin";
+ iUnicodeEquivalence[53] = 20021; sStringEquivalence[53] = "zhuo";
+ iUnicodeEquivalence[54] = 20022; sStringEquivalence[54] = "zhu";
+ iUnicodeEquivalence[55] = 20024; sStringEquivalence[55] = "wan";
+ iUnicodeEquivalence[56] = 20025; sStringEquivalence[56] = "dan";
+ iUnicodeEquivalence[57] = 20026; sStringEquivalence[57] = "wei";
+ iUnicodeEquivalence[58] = 20027; sStringEquivalence[58] = "zhu";
+ iUnicodeEquivalence[59] = 20028; sStringEquivalence[59] = "jing";
+ iUnicodeEquivalence[60] = 20029; sStringEquivalence[60] = "li";
+ iUnicodeEquivalence[61] = 20030; sStringEquivalence[61] = "ju";
+ iUnicodeEquivalence[62] = 20031; sStringEquivalence[62] = "pie";
+ iUnicodeEquivalence[63] = 20032; sStringEquivalence[63] = "fu";
+ iUnicodeEquivalence[64] = 20033; sStringEquivalence[64] = "yi";
+ iUnicodeEquivalence[65] = 20034; sStringEquivalence[65] = "yi";
+ iUnicodeEquivalence[66] = 20035; sStringEquivalence[66] = "nai";
+ iUnicodeEquivalence[67] = 20037; sStringEquivalence[67] = "jiu";
+ iUnicodeEquivalence[68] = 20038; sStringEquivalence[68] = "jiu";
+ iUnicodeEquivalence[69] = 20039; sStringEquivalence[69] = "tuo";
+ iUnicodeEquivalence[70] = 20040; sStringEquivalence[70] = "me";
+ iUnicodeEquivalence[71] = 20041; sStringEquivalence[71] = "yi";
+ iUnicodeEquivalence[72] = 20043; sStringEquivalence[72] = "zhi";
+ iUnicodeEquivalence[73] = 20044; sStringEquivalence[73] = "wu";
+ iUnicodeEquivalence[74] = 20045; sStringEquivalence[74] = "zha";
+ iUnicodeEquivalence[75] = 20046; sStringEquivalence[75] = "hu";
+ iUnicodeEquivalence[76] = 20047; sStringEquivalence[76] = "fa";
+ iUnicodeEquivalence[77] = 20048; sStringEquivalence[77] = "le";
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/i18n/_XExtendedTransliteration.java b/qadevOOo/tests/java/ifc/i18n/_XExtendedTransliteration.java
new file mode 100644
index 000000000..001936927
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XExtendedTransliteration.java
@@ -0,0 +1,86 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.i18n;
+
+import com.sun.star.i18n.TransliterationModules;
+import com.sun.star.i18n.XExtendedTransliteration;
+import com.sun.star.lang.Locale;
+import lib.MultiMethodTest;
+
+/**
+ *
+ */
+public class _XExtendedTransliteration extends MultiMethodTest {
+ public XExtendedTransliteration oObj = null;
+ private final Locale loc = new Locale("en", "US", "") ;
+
+ @Override
+ public void before() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+ }
+
+ /**
+ * Check lowercase - uppercase conversion of chars
+ */
+ public void _transliterateChar2Char() {
+ boolean result = true;
+ char in = 'a';
+ char out = ' ';
+ try {
+ out = oObj.transliterateChar2Char(in) ;
+ result &= out == 'A';
+ in = '$'; // should not be changed
+ out = oObj.transliterateChar2Char(in) ;
+ result &= out == '$';
+ }
+ catch(com.sun.star.i18n.MultipleCharsOutputException e) {
+ e.printStackTrace(log);
+ }
+ tRes.tested("transliterateChar2Char()", result);
+ }
+
+ /**
+ * Check lowercase - uppercase conversion of char to string
+ */
+ public void _transliterateChar2String() {
+ boolean result = true;
+ char in = 'a';
+ String out = null;
+ out = oObj.transliterateChar2String('a') ;
+ result &= out.equals("A");
+ in = '$'; // should not be changed
+ out = oObj.transliterateChar2String(in) ;
+ result &= out.equals("$");
+ tRes.tested("transliterateChar2String()", result);
+ }
+
+ /**
+ * Check lowercase - uppercase conversion of strings
+ */
+ public void _transliterateString2String() {
+ boolean result = true;
+ String in = "aAbBcC";
+ String out = null;
+ out = oObj.transliterateString2String(in, 0, 6) ;
+ result &= out.equals("AABBCC");
+ in = "$"; // should not be changed
+ out = oObj.transliterateString2String(in, 0, 1) ;
+ result &= out.equals("$");
+ tRes.tested("transliterateString2String()", result);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/i18n/_XIndexEntrySupplier.java b/qadevOOo/tests/java/ifc/i18n/_XIndexEntrySupplier.java
new file mode 100644
index 000000000..31eac7bf6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XIndexEntrySupplier.java
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.XIndexEntrySupplier;
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.i18n.XIndexEntrySupplier</code>
+* interface methods:
+* <ul>
+* <li><code> getIndexCharacter() </code></li>
+* <li><code> getIndexFollowPageWord() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.i18n.XIndexEntrySupplier
+*/
+public class _XIndexEntrySupplier extends MultiMethodTest {
+ public XIndexEntrySupplier oObj = null;
+ public String[] languages = new String[]{"de","en","es","fr","ja","ko","zh"};
+ public String[] countries = new String[]{"DE","US","ES","FR","JP","KR","CN"};
+ public String[] onePage = new String[]{"f.","p."," s."," sv","p.","",""};
+ public String[] morePages = new String[]{"ff.","pp."," ss."," sv","pp.","",""};
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if the method returns right index for several
+ * locales and word.
+ */
+ public void _getIndexCharacter() {
+ boolean res = true;
+ log.println("getIndexCharacter('chapter', getLocale(i), '')");
+ for (int i=0; i<7; i++) {
+ log.print("getIndexCharacter('chapter', " + countries[i] + ") :");
+ String get = oObj.getIndexCharacter("chapter", getLocale(i), "");
+ log.println(get);
+ res &= get.equals("C");
+ }
+ tRes.tested("getIndexCharacter()", res);
+ }
+
+ /**
+ * Test calls the method with two different parameters: for one page and
+ * for several pages, after every call result is checked. <p>
+ * Has <b> OK </b> status if method returns right index for several locales.
+ */
+ public void _getIndexFollowPageWord() {
+ boolean res = true;
+
+ for (int i=0; i<7; i++) {
+ String get = oObj.getIndexFollowPageWord(true, getLocale(i));
+ if (! get.equals(morePages[i]) ) {
+ log.println("Language: " + languages[i]);
+ log.println("Getting: #" + get + "#");
+ log.println("Expected: #" + morePages[i] + "#");
+ }
+ res &= get.equals(morePages[i]);
+ get = oObj.getIndexFollowPageWord(false,getLocale(i));
+ if (! get.equals(onePage[i]) ) {
+ log.println("Language: " + languages[i]);
+ log.println("Getting: #" + get + "#");
+ log.println("Expected: #" + onePage[i] + "#");
+ }
+ res &= get.equals(onePage[i]);
+ }
+ tRes.tested("getIndexFollowPageWord()", res);
+ }
+
+ /**
+ * Method returns locale for a given language and country.
+ * @param k index of needed locale.
+ * @return Locale by the index from arrays defined above
+ */
+ public Locale getLocale(int k) {
+ return new Locale(languages[k], countries[k], "");
+ }
+
+
+} // end XIndexEntrySupplier
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XLocaleData.java b/qadevOOo/tests/java/ifc/i18n/_XLocaleData.java
new file mode 100644
index 000000000..e7060dcb2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XLocaleData.java
@@ -0,0 +1,467 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.Calendar;
+import com.sun.star.i18n.Currency;
+import com.sun.star.i18n.ForbiddenCharacters;
+import com.sun.star.i18n.FormatElement;
+import com.sun.star.i18n.Implementation;
+import com.sun.star.i18n.LanguageCountryInfo;
+import com.sun.star.i18n.LocaleDataItem;
+import com.sun.star.i18n.XLocaleData;
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.i18n.XLocaleData</code>
+* interface methods:
+* <ul>
+* <li><code> getLanguageCountryInfo() </code></li>
+* <li><code> getLocaleItem() </code></li>
+* <li><code> getAllCalendars() </code></li>
+* <li><code> getAllCurrencies() </code></li>
+* <li><code> getAllFormats() </code></li>
+* <li><code> getCollatorImplementations() </code></li>
+* <li><code> getSearchOptions() </code></li>
+* <li><code> getCollationOptions() </code></li>
+* <li><code> getTransliterations() </code></li>
+* <li><code> getForbiddenCharacters() </code></li>
+* <li><code> getReservedWord() </code></li>
+* <li><code> getAllInstalledLocaleNames() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.i18n.XLocaleData
+*/
+public class _XLocaleData extends MultiMethodTest {
+ public XLocaleData oObj = null;
+ public String[] languages = new String[]{"de","en","es","fr","ja","ko","ko"};
+ public String[] countries = new String[]{"DE","US","ES","FR","JP","KR","KR"};
+
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if structure, returned by the method includes
+ * correct values of fields 'Language' and 'Country' for all given locales.
+ */
+ public void _getLanguageCountryInfo() {
+ boolean res = true;
+ LanguageCountryInfo lci = null;
+
+ for (int i=0;i<7;i++) {
+ lci = oObj.getLanguageCountryInfo(getLocale(i));
+ /* For debug purposes
+ log.println("Using: language="+languages[i]+" ; country="+countries[i]);
+ log.println("Getting: ");
+ log.println("\t Language="+lci.Language);
+ log.println("\t LanguageDefaultName="+lci.LanguageDefaultName);
+ log.println("\t Country="+lci.Country);
+ log.println("\t CountryDefaultName="+lci.CountryDefaultName);
+ boolean lang = ( lci.Language.equals(languages[i]) );
+ if (!lang) log.println("getting false for language: "+lci.LanguageDefaultName);
+ lang = ( lci.Country.equals(countries[i]) );
+ if (!lang) log.println("getting false for country: "+lci.CountryDefaultName);
+ */
+ res &= ( ( lci.Language.equals(languages[i]) ) && ( lci.Country.equals(countries[i]) ) );
+ }
+ tRes.tested("getLanguageCountryInfo()",res);
+ }
+
+ /**
+ * Test calls the method, then result is checked. <p>
+ * Has <b> OK </b> status if structure, returned by the method consists of
+ * non empty strings for all given locales.
+ */
+ public void _getLocaleItem() {
+ boolean res = true;
+ LocaleDataItem ldi = null;
+
+ for (int i=0;i<7;i++) {
+ ldi = oObj.getLocaleItem(getLocale(i));
+
+ boolean locRes = true ;
+
+ locRes &= (! ldi.dateSeparator.equals(""));
+ locRes &= (! ldi.decimalSeparator.equals(""));
+ locRes &= (! ldi.doubleQuotationEnd.equals(""));
+ locRes &= (! ldi.doubleQuotationStart.equals(""));
+ locRes &= (! ldi.listSeparator.equals(""));
+ locRes &= (! ldi.LongDateDayOfWeekSeparator.equals(""));
+ locRes &= (! ldi.LongDateDaySeparator.equals(""));
+ locRes &= (! ldi.LongDateMonthSeparator.equals(""));
+ locRes &= (! ldi.LongDateYearSeparator.equals(""));
+ locRes &= (! ldi.measurementSystem.equals(""));
+ locRes &= (! ldi.quotationEnd.equals(""));
+ locRes &= (! ldi.quotationStart.equals(""));
+ locRes &= (! ldi.thousandSeparator.equals(""));
+ locRes &= (! ldi.time100SecSeparator.equals(""));
+ locRes &= (! ldi.timeAM.equals(""));
+ locRes &= (! ldi.timePM.equals(""));
+ locRes &= (! ldi.timeSeparator.equals(""));
+ locRes &= (! ldi.unoID.equals(""));
+
+ if (!locRes) {
+ /* for debugging purposes
+ log.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
+ log.println("Getting: ");
+ log.println("\t DateSeparator="+ldi.dateSeparator);
+ log.println("\t decimalSeparator="+ldi.decimalSeparator);
+ log.println("\t doubleQuotationEnd="+ldi.doubleQuotationEnd);
+ log.println("\t doubleQuotationStart="+ldi.doubleQuotationStart);
+ log.println("\t listSeparator="+ldi.listSeparator);
+ log.println("\t LongDateDayOfWeekSeparator="+ldi.LongDateDayOfWeekSeparator+"end");
+ log.println("\t LongDateDaySeparator="+ldi.LongDateDaySeparator+"end");
+ log.println("\t LongDateMonthSeparator="+ldi.LongDateMonthSeparator+"end");
+ log.println("\t LongDateYearSeparator="+ldi.LongDateYearSeparator+"end");
+ log.println("\t measurementSystem="+ldi.measurementSystem);
+ log.println("\t quotationEnd="+ldi.quotationEnd);
+ log.println("\t quotationStart="+ldi.quotationStart);
+ log.println("\t thousandSeparator="+ldi.thousandSeparator);
+ log.println("\t time100SecSeparator="+ldi.time100SecSeparator);
+ log.println("\t timeAM="+ldi.timeAM);
+ log.println("\t timePM="+ldi.timePM);
+ log.println("\t timeSeparator="+ldi.timeSeparator);
+ log.println("\t unoID="+ldi.unoID);
+ */
+ }
+ }
+ tRes.tested("getLocaleItem()",res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all elements of the returned sequence are
+ * correct for all given locales. (boolean method goodCalendar() with a
+ * calendar as an argument returns true)
+ */
+ public void _getAllCalendars() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ Calendar[] calendar = oObj.getAllCalendars(getLocale(i));
+ for (int j=0;j<calendar.length;j++) {
+ if (! goodCalendar(calendar[j]) ) {
+ printit = true;
+ }
+ res &= goodCalendar(calendar[j]);
+ }
+ if (printit) log.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
+ printit = false;
+ }
+ tRes.tested("getAllCalendars()", res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all elements of the returned sequence are
+ * correct for all given locales. (boolean method goodCurrency() with a
+ * currency as an argument returns true)
+ */
+ public void _getAllCurrencies() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ Currency[] currency = oObj.getAllCurrencies(getLocale(i));
+ for (int j=0;j<currency.length;j++) {
+ if (! goodCurrency(currency[j]) ) {
+ printit=true;
+ }
+ res &= goodCurrency(currency[j]);
+ }
+ if (printit) log.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
+ printit =false;
+ }
+ tRes.tested("getAllCurrencies()",res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all elements of the returned sequence are
+ * correct for all given locales. (boolean method goodFormat() with a
+ * format as an argument returns true)
+ */
+ public void _getAllFormats() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ FormatElement[] format = oObj.getAllFormats(getLocale(i));
+ for (int j=0;j<format.length;j++) {
+ if (! goodFormat(format[j]) ) {
+ printit = true;
+ }
+ res &= goodFormat(format[j]);
+ }
+ if (printit) log.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
+ printit =false;
+ }
+ tRes.tested("getAllFormats()",res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all structs, returned by the method have non
+ * empty field 'UnoID' for all given locales.
+ */
+ public void _getCollatorImplementations() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ Implementation[] impl = oObj.getCollatorImplementations(getLocale(i));
+ for (int j=0;j<impl.length;j++) {
+ if (impl[j].unoID.equals("")) {
+ printit = true;
+ }
+ res &= (!impl[j].unoID.equals(""));
+ }
+ if (printit) log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ printit = false;
+ }
+ tRes.tested("getCollatorImplementations()", res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all strings, returned by the method are not
+ * empty for all given locales.
+ */
+ public void _getSearchOptions() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ String[] str = oObj.getSearchOptions(getLocale(i));
+ for (int j=0;j<str.length;j++) {
+ if (str[j].equals("")) {
+ printit = true;
+ }
+ res &= (!str[j].equals(""));
+ }
+ if (printit) log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ printit = false;
+ }
+ tRes.tested("getSearchOptions()",res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all strings, returned by the method are not
+ * empty for all given locales.
+ */
+ public void _getCollationOptions() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ String[] str = oObj.getCollationOptions(getLocale(i));
+ for (int j=0;j<str.length;j++) {
+ if (str[j].equals("")) {
+ printit = true;
+ }
+ res &= (!str[j].equals(""));
+ }
+ if (printit) log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ printit = false;
+ }
+ tRes.tested("getCollationOptions()", res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all strings, returned by the method are not
+ * empty for all given locales.
+ */
+ public void _getTransliterations() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ String[] str = oObj.getTransliterations(getLocale(i));
+ for (int j=0;j<str.length;j++) {
+ if (str[j].equals("")) {
+ printit = true;
+ }
+ res &= (!str[j].equals(""));
+ }
+ if (printit) log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ printit = false;
+ }
+ tRes.tested("getTransliterations()", res);
+ }
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if the method returns structure with non-empty
+ * fields for all given locales.
+ */
+ public void _getForbiddenCharacters() {
+ boolean res = true;
+ ForbiddenCharacters fc = null;
+
+ //the forbidden characters are only available for the asian languages
+ for (int i=4;i<7;i++) {
+ fc = oObj.getForbiddenCharacters(getLocale(i));
+ res &= !( fc.beginLine.equals("") || fc.endLine.equals("") );
+ if ( !res ) {
+ log.println("FAILED for: language="+languages[i]+" ; country="+countries[i]);
+ }
+ }
+ tRes.tested("getForbiddenCharacters()", res);
+ }
+
+
+ /**
+ * Test calls the method for several locales; result is checked
+ * after each call. <p>
+ * Has <b> OK </b> status if all strings, returned by the method are not
+ * empty for all given locales.
+ */
+ public void _getReservedWord() {
+ boolean res = true;
+ boolean printit = false;
+
+ for (int i=0;i<7;i++) {
+ String[] str = oObj.getReservedWord(getLocale(i));
+ for (int j=0;j<str.length;j++) {
+ if (str[j].equals("")) {
+ printit = true;
+ }
+ res &= (!str[j].equals(""));
+ }
+ if (printit) log.println("FAILED for: language=" + languages[i]
+ + " ; country=" + countries[i]);
+ printit = false;
+ }
+ tRes.tested("getReservedWord()", res);
+ }
+
+
+ /**
+ * Test calls the method. Then result is checked for all given locales.<p>
+ * Has <b> OK </b> status if locale sequence, returned by the method contains
+ * given locales.
+ */
+ public void _getAllInstalledLocaleNames() {
+ boolean res = true;
+ Locale[] locs = oObj.getAllInstalledLocaleNames();
+
+ //check if the languages used here are part of this array
+ for (int i=0;i<7;i++) {
+ res &= contains(locs, getLocale(i));
+ }
+ tRes.tested("getAllInstalledLocaleNames()",res);
+ }
+
+
+ /**
+ * Method returns locale for a given language and country.
+ * @param k index of needed locale.
+ * @return Locale by the index from arrays defined above
+ */
+ public Locale getLocale(int k) {
+ return new Locale(languages[k],countries[k],"");
+ }
+
+ /**
+ * Method checks given calendar for non empty fields.
+ * @param calendar Calendar to be checked
+ */
+ public boolean goodCalendar(Calendar calendar) {
+ boolean good = true;
+ for (int i=0;i<calendar.Days.length;i++) {
+ good &= (! calendar.Days[i].AbbrevName.equals("") );
+ good &= (! calendar.Days[i].FullName.equals("") );
+ good &= (! calendar.Days[i].ID.equals("") );
+ }
+ for (int i=0;i<calendar.Months.length;i++) {
+ good &= (! calendar.Months[i].AbbrevName.equals("") );
+ good &= (! calendar.Months[i].FullName.equals("") );
+ good &= (! calendar.Months[i].ID.equals("") );
+ }
+ for (int i=0;i<calendar.Eras.length;i++) {
+ good &= (! calendar.Eras[i].AbbrevName.equals("") );
+ good &= (! calendar.Eras[i].FullName.equals("") );
+ good &= (! calendar.Eras[i].ID.equals("") );
+ }
+ good &= (! calendar.StartOfWeek.equals("") );
+ good &= (! calendar.Name.equals("") );
+ return good;
+ }
+
+ /**
+ * Method checks given currency for non empty fields.
+ * @param currency Currency to be checked
+ */
+ public boolean goodCurrency(Currency currency) {
+ boolean good = true;
+ good &= (!currency.BankSymbol.equals(""));
+ good &= (!currency.Name.equals(""));
+ good &= (!currency.Symbol.equals(""));
+ return good;
+ }
+
+ /**
+ * Method checks given format for non empty fields.
+ * @param format Format to be checked
+ */
+ public boolean goodFormat(FormatElement format) {
+ boolean good = true;
+ good &= (!format.formatCode.equals(""));
+ good &= (!format.formatKey.equals(""));
+ good &= (!format.formatType.equals(""));
+ good &= (!format.formatUsage.equals(""));
+ return good;
+ }
+
+ /**
+ * Method checks that locale sequence contains given locale.
+ * @param locs Locale sequence
+ * @param oneLoc given locale
+ */
+ public boolean contains(Locale[] locs, Locale oneLoc) {
+ boolean cont = false;
+ for (int j=0;j<locs.length;j++) {
+ if ( (locs[j].Country.equals(oneLoc.Country)) &&
+ (locs[j].Language.equals(oneLoc.Language)) ) {
+ cont=true;
+ break;
+ }
+ }
+ if (!cont) log.println("Not contained: " + oneLoc.Language);
+ return cont;
+ }
+
+} // end XLocaleData
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XNumberFormatCode.java b/qadevOOo/tests/java/ifc/i18n/_XNumberFormatCode.java
new file mode 100644
index 000000000..5adddb189
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XNumberFormatCode.java
@@ -0,0 +1,154 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.KNumberFormatType;
+import com.sun.star.i18n.KNumberFormatUsage;
+import com.sun.star.i18n.NumberFormatCode;
+import com.sun.star.i18n.NumberFormatIndex;
+import com.sun.star.i18n.XNumberFormatCode;
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.i18n.XNumberFormatCode</code>
+* interface methods:
+* <ul>
+* <li><code> getDefault() </code></li>
+* <li><code> getFormatCode() </code></li>
+* <li><code> getAllFormatCode() </code></li>
+* <li><code> getAllFormatCodes() </code></li>
+* </ul><p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.i18n.XNumberFormatCode
+*/
+public class _XNumberFormatCode extends MultiMethodTest {
+ public XNumberFormatCode oObj = null;
+ public String[] languages = new String[]
+ {"de","en","es","fr","ko","ko","zh"};
+ public String[] countries = new String[]
+ {"DE","US","ES","FR","KR","KR","CN"};
+
+ /**
+ * Test calls the method twice with two different format types as
+ * parameters for each locale. Result is checked after every call.<p>
+ * Has <b> OK </b> status if both times returned structure's field 'Code'
+ * does not equal to empty string.
+ */
+ public void _getDefault() {
+ boolean res = true;
+ NumberFormatCode nfc = null;
+
+ for (int i=0;i<7;i++) {
+ nfc = oObj.getDefault(KNumberFormatType.SHORT,
+ KNumberFormatUsage.DATE, getLocale(i));
+ String str = nfc.Code;
+ if (str.equals("")) {
+ log.println("'NumberFormat.code.equals(\"\") = true' for"
+ + " language: " + languages[i]);
+ log.println("Usage: oObj.getDefault(KNumberFormatType.SHORT,"
+ + " KNumberFormatUsage.DATE,new Locale(" + languages[i]
+ + "," + countries[i] + ",\"\");");
+ }
+ res &= !str.equals("");
+
+ nfc = oObj.getDefault(KNumberFormatType.LONG,
+ KNumberFormatUsage.DATE,getLocale(i));
+ str = nfc.Code;
+ if (str.equals("")) {
+ log.println("'NumberFormat.code.equals(\"\") = true' for "
+ + "language: " + languages[i]);
+ log.println("Usage: oObj.getDefault(KNumberFormatType.LONG,"
+ + " KNumberFormatUsage.DATE,new Locale(" + languages[i]
+ + "," + countries[i] + ",\"\");");
+ }
+ res &= ( ! str.equals("") );
+ }
+ tRes.tested("getDefault()", res);
+ }
+
+ /**
+ * Test calls the method twice for each locale with two different arguments.
+ * After every call result is checked.<p>
+ * Has <b> OK </b> status if both times returned structure's field 'Code'
+ * does not equal to an empty string.
+ */
+ public void _getFormatCode() {
+ boolean res = true;
+ NumberFormatCode nfc = null;
+
+ for (int i=0;i<7;i++) {
+ nfc = oObj.getFormatCode
+ (NumberFormatIndex.DATE_SYSTEM_SHORT,getLocale(i));
+ res &= ( ! nfc.Code.equals("") );
+ nfc = oObj.getFormatCode
+ (NumberFormatIndex.DATE_SYSTEM_LONG,getLocale(i));
+ res &= ( ! nfc.Code.equals("") );
+ }
+ tRes.tested("getFormatCode()", res);
+ }
+
+ /**
+ * Test calls the method twice with two different arguments for each locale.
+ * After every call result is checked.<p>
+ * Has <b> OK </b> status if both times returned array's length does not
+ * equal to zero.
+ */
+ public void _getAllFormatCode() {
+ boolean res = true;
+ NumberFormatCode[] nfc = null;
+
+ for (int i=0;i<7;i++) {
+ nfc = oObj.getAllFormatCode(KNumberFormatUsage.DATE, getLocale(i));
+ res &= ( nfc.length != 0 );
+ nfc = oObj.getAllFormatCode(KNumberFormatUsage.TIME, getLocale(i));
+ res &= ( nfc.length != 0 );
+ }
+ tRes.tested("getAllFormatCode()", res);
+ }
+
+ /**
+ * Test calls the method for each locale. <p>
+ * Has <b> OK </b> status if returned array's length does not equal to zero.
+ */
+ public void _getAllFormatCodes() {
+ boolean res = true;
+ NumberFormatCode[] nfc = null;
+
+ for (int i=0;i<7;i++) {
+ nfc = oObj.getAllFormatCodes(getLocale(i));
+ res &= ( nfc.length != 0 );
+ }
+ tRes.tested("getAllFormatCodes()", res);
+ }
+
+ /**
+ * Method returns locale for a given language and country.
+ * @param k index of needed locale.
+ * @return Locale by the index from arrays defined above
+ */
+ public Locale getLocale(int k) {
+ return new Locale(languages[k], countries[k], "");
+ }
+
+
+
+} // end XNumberFormatCode
+
diff --git a/qadevOOo/tests/java/ifc/i18n/_XTransliteration.java b/qadevOOo/tests/java/ifc/i18n/_XTransliteration.java
new file mode 100644
index 000000000..d041d425d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/i18n/_XTransliteration.java
@@ -0,0 +1,445 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.i18n;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.i18n.TransliterationModules;
+import com.sun.star.i18n.TransliterationModulesNew;
+import com.sun.star.i18n.TransliterationType;
+import com.sun.star.i18n.XTransliteration;
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.i18n.XTransliteration</code>
+* interface methods :
+* <ul>
+* <li><code> getName()</code></li>
+* <li><code> getType()</code></li>
+* <li><code> loadModule()</code></li>
+* <li><code> loadModuleNew()</code></li>
+* <li><code> loadModuleByImplName()</code></li>
+* <li><code> loadModulesByImplNames()</code></li>
+* <li><code> getAvailableModules()</code></li>
+* <li><code> transliterate()</code></li>
+* <li><code> folding()</code></li>
+* <li><code> equals()</code></li>
+* <li><code> transliterateRange()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.i18n.XTransliteration
+*/
+public class _XTransliteration extends MultiMethodTest {
+
+ public XTransliteration oObj = null;
+ private final Locale loc = new Locale("en", "EN", "") ;
+
+ /**
+ * Gets all available transliteration modules. <p>
+ * Has <b>OK</b> status if array returned has at least
+ * one module name.
+ */
+ public void _getAvailableModules() {
+ String[] mod = oObj.getAvailableModules(loc, TransliterationType.ONE_TO_ONE);
+
+ if (mod != null) {
+ log.println("Available modules :") ;
+ for (int i = 0; i < mod.length; i++) {
+ log.println(" '" + mod[i] + "'") ;
+ }
+ } else {
+ log.println("!!! NULL returned !!!") ;
+ }
+
+ tRes.tested("getAvailableModules()", mod != null && mod.length > 0) ;
+ }
+
+ /**
+ * Calls the method for load IGNORE_CASE module and checks the name returned
+ * by the method <code>getName</code>. <p>
+ * Has <b>OK</b> status if the method <code>getName</code> returns the
+ * string "case ignore (generic)".
+ */
+ public void _loadModule() {
+ log.println("Load module IGNORE_CASE");
+ oObj.loadModule(TransliterationModules.IGNORE_CASE, loc);
+
+ String name = oObj.getName();
+ boolean res = name.equals("case ignore (generic)");
+ log.println("getName return: " + name);
+
+ tRes.tested("loadModule()", res );
+ }
+
+ /**
+ * Loads <code>LOWERCASE_UPPERCASE</code> module and checks the current
+ * name of object. <p>
+ *
+ * Has <b>OK</b> status if the name of the object is equals to
+ * 'lower_to_upper(generic)'
+ */
+ public void _loadModuleNew() {
+ boolean result = true ;
+
+ oObj.loadModuleNew(
+ new TransliterationModulesNew[]
+ {TransliterationModulesNew.LOWERCASE_UPPERCASE}, loc);
+
+ String name = oObj.getName();
+ result = name.equals("lower_to_upper(generic)");
+ log.println("getName return: " + name);
+
+ tRes.tested("loadModuleNew()", result);
+ }
+
+ /**
+ * Calls the method for load LOWERCASE_UPPERCASE module and
+ * checks the name returned by the method <code>getName</code>. <p>
+ * Has <b>OK</b> status if the method <code>getName</code> returns the
+ * string "lower_to_upper(generic)".
+ */
+ public void _loadModuleByImplName() {
+ log.println("Load module LOWERCASE_UPPERCASE");
+ oObj.loadModuleByImplName("LOWERCASE_UPPERCASE", loc);
+
+ String name = oObj.getName();
+ boolean res = name.equals("lower_to_upper(generic)");
+ log.println("getName return: " + name);
+
+ tRes.tested("loadModuleByImplName()", res);
+ }
+
+ /**
+ * Calls the method for load UPPERCASE_LOWERCASE module and
+ * checks the name returned by the method <code>getName</code>. <p>
+ * Has <b>OK</b> status if the method <code>getName</code> returns the
+ * string "upper_to_lower(generic)".
+ */
+ public void _loadModulesByImplNames() {
+ log.println("Load module UPPERCASE_LOWERCASE");
+ oObj.loadModulesByImplNames(new String[]{"UPPERCASE_LOWERCASE"}, loc);
+
+ String name = oObj.getName();
+ boolean res = name.equals("upper_to_lower(generic)");
+ log.println("getName return: " + name);
+
+ tRes.tested("loadModulesByImplNames()", res);
+ }
+
+ /**
+ * Loads <code>LOWERCASE_UPPERCASE</code> module and checks current type.
+ * <p>Has <b>OK</b> status if the type is <code>ONE_TO_ONE</code>
+ */
+ public void _getType() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+ boolean result = oObj.getType() == TransliterationType.ONE_TO_ONE;
+ tRes.tested("getType()", result);
+ }
+
+ /**
+ * Loads UPPERCASE_LOWERCASE module and
+ * checks the name returned by the method <code>getName</code>. <p>
+ *
+ * Has <b>OK</b> status if the method <code>getName</code> returns the
+ * string "upper_to_lower(generic)".
+ */
+ public void _getName() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+
+ String name = oObj.getName();
+ boolean res = name.equals("lower_to_upper(generic)");
+ log.println("getName return: " + name);
+
+ tRes.tested("getName()", res);
+ }
+
+ /**
+ * First loads <code>LOWERCASE_UPPERCASE</code> module.
+ * Then tries to transliterate (make uppercase) a substring. <p>
+ * Has <b>OK</b> status if all chars were made uppercase,
+ * and array returned has size as substring length, and its
+ * elements are positions of substring characters in the source
+ * string.
+ */
+ public void _transliterate() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+
+ int[][] offs = new int[1][] ;
+
+ String out = oObj.transliterate("AaBbCc", 1, 4, offs) ;
+
+ boolean result = "ABBC".equals(out) && offs[0].length == 4 &&
+ offs[0][0] == 1 &&
+ offs[0][1] == 2 &&
+ offs[0][2] == 3 &&
+ offs[0][3] == 4 ;
+
+ tRes.tested("transliterate()", result) ;
+ }
+
+
+ /**
+ * First loads <code>LOWERCASE_UPPERCASE</code> module.
+ * Tries to transliterate a range of two characters. <p>
+ * Has <b>OK</b> status if the appropriate String array
+ * returned (not null, length = 4, with two ranges
+ * (a, i), (A, I) in any order).
+ */
+ public void _transliterateRange() {
+ oObj.loadModule(TransliterationModules.IGNORE_CASE, loc);
+
+ String[] out = oObj.transliterateRange("a", "i") ;
+
+ log.println("transliterateRange return:");
+ for(int i = 0; i < out.length; i++) {
+ log.println(out[i]);
+ }
+
+ boolean bOK = out.length == 4 &&
+ ("A".equals(out[0]) && "I".equals(out[1]) &&
+ "a".equals(out[2]) && "i".equals(out[3])) ||
+ ("a".equals(out[0]) && "i".equals(out[1]) &&
+ "A".equals(out[2]) && "I".equals(out[3])) ;
+
+ if (!bOK) {
+ log.println("Unexpected range returned :");
+ for (int i = 0; i < out.length; i++) {
+ log.print("'" + out[i] +"', ");
+ }
+ log.println();
+ }
+
+ tRes.tested("transliterateRange()", bOK);
+ }
+
+ /**
+ * This method is used internally by <code>equals</code>
+ * method so it indirectly tested in this method. <p>
+ * Always has <b>OK</b> status.
+ */
+ public void _folding() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+
+ int[][] offs = new int[1][] ;
+
+ String out = oObj.folding("AaBbCc", 1, 4, offs) ;
+
+ boolean result = "ABBC".equals(out) && offs[0].length == 4 &&
+ offs[0][0] == 1 &&
+ offs[0][1] == 2 &&
+ offs[0][2] == 3 &&
+ offs[0][3] == 4 ;
+
+
+ tRes.tested("folding()", result) ;
+ }
+
+
+ /**
+ * First loads <code>LOWERCASE_UPPERCASE</code> module.
+ * Tries to compare two equal substrings. <p>
+ * Has <b>OK</b> status if the method returned <code>true</code>.
+ */
+ public void _equals() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+
+ int[] match1 = new int[1],
+ match2 = new int[1] ;
+
+ boolean res = oObj.equals("aAbBcC", 1, 3, match1, "aAbBcC", 1,
+ 3, match2) ;
+
+ log.println("Returned : " + res + " Match1 = " + match1[0] +
+ " Match2 = " + match2[0]) ;
+
+ tRes.tested("equals()", res) ;
+ }
+
+ /**
+ * Test performed for sets of equal substrings, not equal
+ * substrings, and without of bounds offset and length
+ * parameters.<p>
+ *
+ * Has <b>OK</b> status if comparings of equal substrings
+ * always return 0, if comparisons of none equal returns
+ * proper value according to lexicographical order and if
+ * comparisons with invalid parameters return none 0 value.
+ */
+ public void _compareSubstring() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+ boolean result = true ;
+
+ // substrings below must be equal
+ result &= testSubstring("", 0, 0, "", 0, 0, 0) ;
+ result &= testSubstring("aa", 1, 0, "", 0, 0, 0) ;
+ result &= testSubstring("aa", 1, 0, "aa", 2, 0, 0) ;
+ result &= testSubstring("a", 0, 1, "a", 0, 1, 0) ;
+ result &= testSubstring("ab", 0, 2, "ab", 0, 2, 0) ;
+ result &= testSubstring("abc", 1, 2, "abc", 1, 2, 0) ;
+ result &= testSubstring("abcdef", 0, 3, "123abc", 3, 3, 0) ;
+ result &= testSubstring("abcdef", 1, 1, "123abc", 4, 1, 0) ;
+
+ // substrings below must NOT be equal
+ result &= testSubstring("a", 0, 1, "a", 0, 0, 1) ;
+ result &= testSubstring("aaa", 1, 1, "", 0, 0, 1) ;
+ result &= testSubstring("bbb", 2, 1, "aaa", 2, 1, 1) ;
+ result &= testSubstring("abc", 0, 3, "abc", 0, 2, 1) ;
+ result &= testSubstring("bbc", 1, 2, "bbc", 0, 2, 1) ;
+
+ // testing with wrong offsets and lengths
+
+ tRes.tested("compareSubstring()", result) ;
+ }
+
+ /**
+ * Performs tesing of two substrings. Also testing of opposite
+ * substrings order performed.
+ * @return <code>true</code> if substrings are equal and returned
+ * value is 0 for both orders,
+ * if substrings are different and expected value
+ * returned for direct order and opposite value returned for
+ * opposite order.
+ */
+ private boolean testSubstring(String str1, int p1, int len1,
+ String str2, int p2, int len2, int expRes) {
+
+ boolean ret = true ;
+
+ int res = -666 ;
+ try {
+ res = oObj.compareSubstring(str1, p1, len1, str2, p2, len2);
+ } catch (NullPointerException e) {
+ log.println("Exception while method calling occurs :" + e);
+ }
+
+ if (res != expRes) {
+ log.print("Comparing FAILED; return: " + res + ", expected: " +
+ expRes + " ");
+ ret = false ;
+ } else {
+ log.print("Comparing OK : ");
+ }
+ log.println("('" + str1 + "', " + p1 + ", " + len1 + ", '" +
+ str2 + "', " + p2 + ", " + len2 + ")");
+
+ res = -666 ;
+ try {
+ res = oObj.compareSubstring(str2, p2, len2, str1, p1, len1);
+ } catch (NullPointerException e) {
+ log.println("Exception while method calling occurs :" + e);
+ }
+
+ if (res != -expRes) {
+ log.print("Comparing FAILED; return: " + res + ", expected: " +
+ -expRes + " ");
+ ret = false ;
+ } else {
+ log.print("Comparing OK :");
+ }
+ log.println("('" + str2 + "', " + p2 + ", " + len2 + ", '" +
+ str1 + "', " + p1 + ", " + len1 + ")");
+
+ return ret ;
+ }
+
+ /**
+ * Test performed for sets of equal strings and not equal
+ * strings.<p>
+ *
+ * Has <b>OK</b> status if comparings of equal strings
+ * always return 0 and if comparisons of none equal returns
+ * proper value according to lexicographical order .
+ */
+ public void _compareString() {
+ oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
+ boolean result = true ;
+
+ result &= testString("", "", 0) ;
+ result &= testString("a", "", 1) ;
+ result &= testString("a", "a", 0) ;
+ result &= testString("A", "a", 0) ;
+ result &= testString("b", "a", 1) ;
+ result &= testString("\n", "\n", 0) ;
+ result &= testString("\n", "\t", 1) ;
+ result &= testString("aaa", "aaa", 0) ;
+ result &= testString("aaA", "aaa", 0) ;
+ result &= testString("aaa", "aa", 1) ;
+ result &= testString("ab", "aaa", 1) ;
+ result &= testString("aba", "aa", 1) ;
+ result &= testString("aaa\t\na", "aaa\t\na", 0) ;
+ result &= testString("aaa\t\nb", "aaa\t\na", 1) ;
+
+ tRes.tested("compareString()", result) ;
+ }
+
+ /**
+ * Performs tesing of two strings. If the expected value is not 0
+ * (i.e. strings are not equal), then also testing of opposite
+ * strings order performed.
+ * @return <code>true</code> if strings are equal and returned
+ * value is 0, if strings are different and expected value
+ * returned for direct order and opposite value returned for
+ * opposite order.
+ */
+ protected boolean testString(String str1, String str2, int expRes) {
+ if (expRes == 0) return testString(str1, str2, expRes, false) ;
+ return testString(str1, str2, expRes, true) ;
+ }
+
+ private boolean testString(String str1, String str2, int expRes,
+ boolean testReverse) {
+
+ boolean ret = true ;
+
+ int res = -666 ;
+ try {
+ res = oObj.compareString(str1, str2);
+ } catch (NullPointerException e) {
+ log.println("Exception while method calling occurs :" + e);
+ }
+
+ if (res == expRes) {
+ log.println("Comparing of '" + str1 + "' and '" + str2 + "' OK" );
+ } else {
+ log.println("Comparing of '" + str1 + "' and '" + str2 +
+ "' FAILED; return: " + res + ", expected: " + expRes);
+ ret = false ;
+ }
+
+ if (!testReverse) return ret ;
+
+ res = -666 ;
+ try {
+ res = oObj.compareString(str2, str1);
+ } catch (NullPointerException e) {
+ log.println("Exception while method calling occurs :" + e);
+ }
+
+ if (res == -expRes) {
+ log.println("Comparing of '" + str2 + "' and '" + str1 + "' OK" );
+ } else {
+ log.println("Comparing of '" + str2 + "' and '" + str1 +
+ "' FAILED; return: " + res + ", expected: " + -expRes);
+ ret = false ;
+ }
+
+ return ret ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/inspection/_XObjectInspector.java b/qadevOOo/tests/java/ifc/inspection/_XObjectInspector.java
new file mode 100644
index 000000000..faf0036f3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/inspection/_XObjectInspector.java
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.inspection;
+
+import com.sun.star.inspection.XObjectInspector;
+import com.sun.star.inspection.XObjectInspectorModel;
+import com.sun.star.inspection.XObjectInspectorUI;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+
+/**
+ * Testing <code>com.sun.star.inspection.XObjectInspector</code>
+ * interface methods :
+ * <ul>
+ * <li><code> inspect()</code></li>
+ * <li><code> InspectorModel()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'XObjectInspector.toInspect'</code>
+ * (of type <code>Object []</code>):
+ * acceptable collection of one or more objects which can be inspected by <code>inspect()</code> </li>
+ * <ul> <p>
+ *
+ */
+
+public class _XObjectInspector extends MultiMethodTest {
+
+ /**
+ * the test object
+ */
+ public XObjectInspector oObj = null;
+ /**
+ * This variable was filled with the object relation
+ * <CODE>XObjectInspector.toInspect</CODE> and was used to
+ * test the method <CODE>inspect()</CODE>
+ */
+ public Object[] oInspect = null;
+ /**
+ * This variable was filled with the object relation
+ * <CODE>XObjectInspector.InspectorModelToSet</CODE> and was used to
+ * test the method <CODE>setInspectorModel()</CODE>
+ */
+ public XObjectInspectorModel xSetModel = null;
+
+ /**
+ * get object relations
+ * <ul>
+ * <li>XObjectInspector.toInspect</li>
+ * </ul>
+ */
+ @Override
+ public void before() {
+
+ oInspect = (Object[]) tEnv.getObjRelation("XObjectInspector.toInspect");
+
+ if (oInspect == null) throw new StatusException
+ (Status.failed("Relation 'XObjectInspector.toInspect' not found.")) ;
+
+ xSetModel = (XObjectInspectorModel) tEnv.getObjRelation("XObjectInspector.InspectorModelToSet");
+
+ if (xSetModel == null) throw new StatusException
+ (Status.failed("Relation 'XObjectInspector.InspectorModelToSet' not found.")) ;
+ }
+
+ /**
+ * Inspects a new collection of one or more objects given by object relation
+ * <CODE>XObjectInspector.toInspect</CODE><br>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _inspect() {
+
+ boolean result = true;
+
+ try {
+ oObj.inspect(oInspect);
+
+ } catch (com.sun.star.util.VetoException e){
+ log.println("ERROR:" + e.toString());
+ result = false;
+ }
+
+ tRes.tested("inspect()", result) ;
+ }
+
+ /**
+ * First call the method <CODE>getInspectorModel()</CODE> and save the value<br>
+ * Second call the method <CODE>setInspectorModel()</CODE> with the module variable
+ * <CODE>xSetModel</CODE> as parameter.<br> Then <CODE>getInspectorModel()</CODE>
+ * was called and the returned valued was compared to the saved variable
+ * <CODE>xSetModel</CODE><br>
+ * Has <CODE>OK</CODE> status if the returned value is equal to
+ * <CODE>xSetModel</CODE>.and the saved value is not null.
+ */
+ public void _InspectorModel() {
+
+ log.println("testing 'getInspectorModel()'...");
+ XObjectInspectorModel xGetModel = oObj.getInspectorModel() ;
+
+ boolean result = xGetModel != null;
+
+ log.println(result? "got a not null object -> OK" : "got a NULL object -> FAILED");
+
+ log.println("testing 'setInspectorModel()'...");
+ oObj.setInspectorModel(xSetModel);
+
+ XObjectInspectorModel xNewModel = oObj.getInspectorModel();
+
+ if (result) oObj.setInspectorModel(xGetModel);
+
+ result &= xSetModel.equals(xNewModel);
+
+ tRes.tested("InspectorModel()", result) ;
+ }
+
+ /**
+ * Calls the method <CODE>getInspectorUI()</CODE>
+ * Has <b>OK</b> returned value is not null
+ */
+ public void _InspectorUI() {
+
+ XObjectInspectorUI oUI = oObj.getInspectorUI();
+
+ tRes.tested("InspectorUI()", oUI != null) ;
+
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/inspection/_XObjectInspectorModel.java b/qadevOOo/tests/java/ifc/inspection/_XObjectInspectorModel.java
new file mode 100644
index 000000000..afca1175c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/inspection/_XObjectInspectorModel.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.inspection;
+
+import com.sun.star.inspection.PropertyCategoryDescriptor;
+import com.sun.star.inspection.XObjectInspectorModel;
+import lib.MultiMethodTest;
+
+
+
+/**
+ * Testing <code>com.sun.star.inspection.XObjectInspectorModel</code>
+ * interface methods :
+ * <ul>
+ * <li><code> describeCategories()</code></li>
+ * <li><code> getHandlerFactories()</code></li>
+ * <li><code> getPropertyOrderIndex()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ */
+public class _XObjectInspectorModel extends MultiMethodTest {
+
+ /**
+ * the test object
+ */
+ public XObjectInspectorModel oObj = null;
+
+ /**
+ * calls the method <CODE>getHandlerFactories()</CODE>
+ * Has <b>OK</b> status if returned value is not null.
+ */
+ public void _HandlerFactories() {
+
+ Object[] HandlerFactories = oObj.getHandlerFactories();
+
+ tRes.tested("HandlerFactories()", HandlerFactories != null) ;
+ }
+
+ /**
+ * Call the method <CODE>getPropertyOrderIndex()</CODE> with an invalid property name.
+ * Has <CODE>OK</CODE> status if the returned index is "0".
+ */
+ public void _getPropertyOrderIndex() {
+
+ int index = 0;
+ boolean result = true;
+
+ log.println("try to get index of Invalid property name 'InvalidPropertyName' ...");
+ index = oObj.getPropertyOrderIndex("InvalidPropertyName");
+ log.println("index is: " + index);
+ result = (index == 0);
+
+ tRes.tested("getPropertyOrderIndex()", result) ;
+ }
+
+ /**
+ * Call the method <CODE>describeCategories()</CODE>
+ * Has <b>OK</b> status if returned value is not null.
+ */
+ public void _describeCategories() {
+
+ PropertyCategoryDescriptor[] categories = oObj.describeCategories();
+
+ tRes.tested("describeCategories()", categories != null) ;
+ }
+
+ /**
+ * Call the method <CODE>getHasHelpSection()</CODE>
+ * Has <b>OK</b> status if method returned </CODE>true</CODE>
+ */
+ public void _HasHelpSection() {
+
+ boolean hasHelpSection = oObj.getHasHelpSection();
+
+ tRes.tested("HasHelpSection()", hasHelpSection) ;
+ }
+
+ /**
+ * Call the method <CODE>getMinHelpTextLines()</CODE>
+ * Has <b>OK</b> status if returned value equals to object relation 'minHelpTextLines'
+ */
+ public void _MinHelpTextLines() {
+
+ Integer minHelpTextLines = (Integer) tEnv.getObjRelation("minHelpTextLines");
+
+ int getMinHelpTextLines = oObj.getMinHelpTextLines();
+
+ boolean result = (minHelpTextLines.intValue() == getMinHelpTextLines);
+
+ if (!result)
+ log.println("FAILED: value:" + minHelpTextLines + " gotten value:" + getMinHelpTextLines);
+
+ tRes.tested("MinHelpTextLines()", result) ;
+ }
+
+ /**
+ * Call the method <CODE>getMaxHelpTextLines())</CODE>
+ * Has <b>OK</b> status if returned value equals to object relation 'maxHelpTextLines'
+ */
+ public void _MaxHelpTextLines() {
+
+ Integer maxHelpTextLines = (Integer) tEnv.getObjRelation("maxHelpTextLines");
+
+ int getMaxHelpTextLines = oObj.getMaxHelpTextLines();
+
+ boolean result = (maxHelpTextLines.intValue() == getMaxHelpTextLines);
+
+ if (!result)
+ log.println("FAILED: expected value:" + maxHelpTextLines + " gotten value:" + getMaxHelpTextLines);
+
+ tRes.tested("MaxHelpTextLines()", result);
+ }
+
+ public void _IsReadOnly() {
+ boolean readOnly = oObj.getIsReadOnly();
+
+ oObj.setIsReadOnly(!readOnly);
+
+ boolean result = (readOnly != oObj.getIsReadOnly());
+ if (!result){
+ log.println("FAILED: could not change 'IsReadOnly' to value '" + !readOnly + "'");
+ }
+
+ oObj.setIsReadOnly(readOnly);
+
+ result &= (readOnly == oObj.getIsReadOnly());
+ if (!result){
+ log.println("FAILED: could not change back 'IsReadOnly' to value '" + !readOnly + "'");
+ }
+
+ tRes.tested("IsReadOnly()", result);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/io/_XActiveDataControl.java b/qadevOOo/tests/java/ifc/io/_XActiveDataControl.java
new file mode 100644
index 000000000..9ac7c7308
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XActiveDataControl.java
@@ -0,0 +1,238 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.io.XActiveDataControl;
+import com.sun.star.io.XStreamListener;
+import com.sun.star.lang.EventObject;
+
+/**
+ * Testing <code>com.sun.star.io.XActiveDataControl</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addListener()</code></li>
+ * <li><code> removeListener()</code></li>
+ * <li><code> start()</code></li>
+ * <li><code> terminate()</code></li>
+ * </ul> <p>
+ *
+ * Tests <code>XActiveDataControl</code> interface. First, it registers a listener
+ * and performs <code>start()</code> and <code>terminate()</code> calls. The
+ * events received in the listener are analyzed to verify the result.<p>
+ *
+ * @see com.sun.star.io.XActiveDataControl
+ */
+public class _XActiveDataControl extends MultiMethodTest {
+
+ /**
+ * Contains the object under test.
+ */
+ public XActiveDataControl oObj = null;
+
+ /**
+ * Indicates that the <code>XStreamListener.started()</code> method has
+ * been called.
+ */
+ private boolean startCalled = false;
+
+ /**
+ * Indicates that the <code>XStreamListener.terminated()</code> method has
+ * been called.
+ */
+ private boolean terminateCalled = false;
+
+ /**
+ * Indicates that the <code>XEventListener.closed()</code> method has
+ * been called.
+ */
+ private boolean closeCalled = false;
+
+ /**
+ * Indicates that the <code>XStreamListener.error()</code> method has
+ * been called.
+ */
+ private boolean errorCalled = false;
+
+ /**
+ * Contains the error, if <code>XStreamListener.error(Object error)</code>
+ * method was called.
+ */
+ private Object error;
+
+ /**
+ * Indicates that the <code>XEventListener.disposing()</code> method has
+ * been called.
+ */
+ private boolean smthngElseCalled = false;
+
+ /**
+ * The listener is used to verify results of the methods.
+ */
+ private final TestStreamListener listener = new TestStreamListener();
+
+ /**
+ * XStreamListener implementation. Sets variables
+ * (<cod>startedCalled</code>, <code>terminatedCalled</code>, etc.) to
+ * <tt>true</tt> if the appropriate method was called (for example, if
+ * <code>started()</code> was called, the <code>startedCalled</code>
+ * field is set).
+ */
+ private class TestStreamListener implements XStreamListener {
+ public void started() {
+ startCalled = true ;
+ }
+ public void terminated() {
+ terminateCalled = true ;
+ }
+ public void error(Object e) {
+ error = e;
+ errorCalled = true ;
+ }
+ public void closed() {
+ closeCalled = true ;
+ }
+ public void disposing(EventObject e) {
+ smthngElseCalled = true ;
+ }
+
+ }
+
+ /**
+ * Tests <code>addListener()</code>. The verification is performed later, in
+ * <code>_terminate()</code> method.
+ */
+ public void _addListener() {
+ oObj.addListener(listener);
+ }
+
+ /**
+ * Starts the data activity (e.g. data pump). Verification is performed
+ * later, in <code>_terminate()</code> method.
+ */
+ public void _start() {
+ executeMethod("addListener()");
+
+ oObj.start();
+
+ // waiting a little bit for data transferred
+ util.utils.pause(200);
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ throw new StatusException(e, Status.failed(e.getMessage()));
+ }
+ }
+
+ /**
+ * Tests <code>removeListener()</code>. Before, it ensures that other
+ * tests are performed and that <code>addListener()</code> is okay. Then,
+ * calls <code>XActiveDataControl.start()</code> and checks that no method
+ * of the listener was called.
+ */
+ public void _removeListener() {
+ // performing other tests before, so, that don't break them
+ try {
+ executeMethod("terminate()");
+ } catch (StatusException e) {
+ // the result doesn't matter
+ }
+
+ // check that addListener() is okay
+ requiredMethod("addListener()");
+
+ // clearing previous records
+ startCalled = false;
+ terminateCalled = false;
+ errorCalled = false;
+ error = null;
+ smthngElseCalled = false;
+
+ // removing the listener
+ oObj.removeListener(listener);
+
+ // starting the activity
+ oObj.start();
+
+ // wait a little bit to allow for listeners to be called
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ throw new StatusException(e, Status.failed(e.getMessage()));
+ }
+
+ // check that no removed listener's method was called
+ tRes.tested("removeListener()",!startCalled &&
+ !terminateCalled && !errorCalled && !smthngElseCalled) ;
+ }
+
+ /**
+ * Tests <code>terminate()</code>. First, ensures that <code>start()</code>
+ * has been called. Then, verifies <code>start()</code>,
+ * <code>addListener()</code> and <code>terminate()</code> results, by
+ * checking that the appropriate listener's methods have been called.
+ */
+ public void _terminate() {
+ // ensuring that the activity has been started
+ executeMethod("start()");
+
+ // terminating the activity
+ oObj.terminate();
+
+ // waiting a little bit for listeners to be called
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ throw new StatusException(e, Status.failed(e.getMessage()));
+ }
+
+ // check, if any error occurred
+ if (errorCalled) {
+ log.println("Unexpected error " + error);
+ ((Exception)error).printStackTrace(log);
+ }
+
+ // verification of start() method - startedCalled method should be
+ // called
+ if (!tRes.tested("start()", startCalled)) {
+ log.println("XStreamListener.started() was not called()");
+ }
+
+ // check that any listener method is called
+ tRes.tested("addListener()", startCalled ||
+ terminateCalled || errorCalled || smthngElseCalled);
+
+ // checking that terminated() has been called or streams were closed
+ // before terminate() call, in this case termination has no sense.
+ tRes.tested("terminate()", terminateCalled || closeCalled);
+ }
+
+ /**
+ * Disposes the test environment, since it is used.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment();
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/io/_XActiveDataSink.java b/qadevOOo/tests/java/ifc/io/_XActiveDataSink.java
new file mode 100644
index 000000000..ec1dad459
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XActiveDataSink.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XInputStream;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.io.XActiveDataSink</code>
+* interface methods :
+* <ul>
+* <li><code> setInputStream()</code></li>
+* <li><code> getInputStream()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'InputStream'</code>
+* (of type <code>com.sun.star.io.XInputStream</code>):
+* acceptable input stream which can be set by <code>setInputStream</code> </li>
+* <ul> <p>
+*
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XActiveDataSink
+*/
+public class _XActiveDataSink extends MultiMethodTest {
+
+ public XActiveDataSink oObj = null;
+
+ private XInputStream iStream = null;
+
+ /**
+ * Take the XInputStream from the environment for setting and getting
+ */
+ @Override
+ public void before() {
+ XInterface x = (XInterface)tEnv.getObjRelation("InputStream");
+ iStream = UnoRuntime.queryInterface
+ (XInputStream.class, x) ;
+ }
+
+ /**
+ * Just sets new input stream. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setInputStream() {
+ oObj.setInputStream(iStream) ;
+
+ tRes.tested("setInputStream()", true) ;
+ }
+
+ /**
+ * First retrieves current input stream, then sets to new
+ * input stream (if old was <code>null</code>) or to null.
+ * Then input stream retrieved again and checked to be not
+ * equal to the old one. <p>
+ * Has <b>OK</b> status if old and new streams retrieved are
+ * not equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setInputStream() </code> : to be sure the method
+ * works without exceptions. </li>
+ * </ul>
+ */
+ public void _getInputStream() {
+ requiredMethod("setInputStream()") ;
+
+ Object oldStream = oObj.getInputStream() ;
+ XInputStream newStream = oldStream == null ? iStream : null ;
+
+ oObj.setInputStream(newStream) ;
+ Object getStream = oObj.getInputStream() ;
+
+ tRes.tested("getInputStream()", getStream != oldStream) ;
+ }
+
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/io/_XActiveDataSource.java b/qadevOOo/tests/java/ifc/io/_XActiveDataSource.java
new file mode 100644
index 000000000..5cd2dd3ef
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XActiveDataSource.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.io.XActiveDataSource</code>
+* interface methods:
+* <ul>
+* <li><code>setOutputStream()</code></li>
+* <li><code>getOutputStream()</code></li>
+* </ul> <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'OutputStream'</code>
+* (of type <code>com.sun.star.io.OutputStream</code>):
+* acceptable output stream which can be set by <code>setOutputStream</code> </li>
+* <ul> <p>
+*
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+*/
+public class _XActiveDataSource extends MultiMethodTest {
+
+ public XActiveDataSource oObj = null;
+
+ private XOutputStream oStream = null;
+
+ /**
+ * Take the XOutputStream from the environment for setting and getting.
+ */
+ @Override
+ public void before() {
+ XInterface x = (XInterface)tEnv.getObjRelation("OutputStream");
+ oStream = UnoRuntime.queryInterface
+ (XOutputStream.class, x) ;
+ }
+
+ /**
+ * Test calls the method using interface <code>XOutputStream</code>
+ * received in method <code>before()</code> as parameter. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ */
+ public void _setOutputStream() {
+ oObj.setOutputStream(oStream);
+ tRes.tested("setOutputStream()", true);
+ }
+
+ /**
+ * Test calls the method and compares returned value with value that was
+ * set in the method <code>setOutputStream()</code>. <p>
+ * Has <b> OK </b> status if values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setOutputStream() </code></li>
+ * </ul>
+ */
+ public void _getOutputStream() {
+ requiredMethod("setOutputStream()");
+
+ tRes.tested("getOutputStream()",
+ oStream.equals(oObj.getOutputStream()));
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XConnectable.java b/qadevOOo/tests/java/ifc/io/_XConnectable.java
new file mode 100644
index 000000000..8efb86def
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XConnectable.java
@@ -0,0 +1,125 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XConnectable;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.io.XConnectable</code>
+* interface methods:
+* <ul>
+* <li><code>setPredecessor()</code></li>
+* <li><code>getPredecessor()</code></li>
+* <li><code>setSuccessor()</code></li>
+* <li><code>getSuccessor()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Connectable'</code> (supports the <code>XConnectable</code>
+* interface):
+* another object to connect </li>
+* </ul>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XConnectable
+*/
+public class _XConnectable extends MultiMethodTest {
+
+ public XConnectable oObj = null;
+
+ private XConnectable xConnect = null ;
+
+ /**
+ * Get another connectable object from object relations.
+ */
+ @Override
+ public void before() {
+ XInterface x = (XInterface)tEnv.getObjRelation("Connectable");
+ xConnect = UnoRuntime.queryInterface(
+ XConnectable.class, x) ;
+ }
+
+ /**
+ * Test calls the method using interface <code>XConnectable</code>
+ * received in method <code>before()</code> as parameter. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ */
+ public void _setPredecessor() {
+ oObj.setPredecessor(xConnect) ;
+
+ tRes.tested("setPredecessor()", true) ;
+ }
+
+ /**
+ * Test calls the method and compares returned value with value that was
+ * set in the method <code>setPredecessor()</code>. <p>
+ * Has <b> OK </b> status if values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setPredecessor() </code></li>
+ * </ul>
+ */
+ public void _getPredecessor() {
+ requiredMethod("setPredecessor()") ;
+
+ XConnectable gConnect = oObj.getPredecessor() ;
+
+ tRes.tested("getPredecessor()", xConnect.equals(gConnect)) ;
+ }
+
+ /**
+ * Test calls the method using interface <code>XConnectable</code>
+ * received in method <code>before()</code> as parameter. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ */
+ public void _setSuccessor() {
+ oObj.setSuccessor(xConnect) ;
+
+ tRes.tested("setSuccessor()", true) ;
+ }
+
+ /**
+ * Test calls the method and compares returned value with value that was
+ * set in the method <code>setSuccessor()</code>. <p>
+ * Has <b> OK </b> status if values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setSuccessor() </code></li>
+ * </ul>
+ */
+ public void _getSuccessor() {
+ requiredMethod("setSuccessor()") ;
+
+ XConnectable gConnect = oObj.getSuccessor() ;
+
+ tRes.tested("getSuccessor()", xConnect.equals(gConnect)) ;
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XDataInputStream.java b/qadevOOo/tests/java/ifc/io/_XDataInputStream.java
new file mode 100644
index 000000000..5ab320fa5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XDataInputStream.java
@@ -0,0 +1,414 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import java.util.List;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.io.XDataInputStream;
+import com.sun.star.io.XDataOutputStream;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.io.XDataInputStream</code>
+* interface methods:
+* <ul>
+* <li><code>readBoolean()</code></li>
+* <li><code>readByte()</code></li>
+* <li><code>readChar()</code></li>
+* <li><code>readShort()</code></li>
+* <li><code>readLong()</code></li>
+* <li><code>readHyper()</code></li>
+* <li><code>readFloat()</code></li>
+* <li><code>readDouble()</code></li>
+* <li><code>readUTF()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'StreamData'</code> (of type <code>Vector</code>):
+* vector of data for comparing with data that obtained from stream </li>
+* <li> <code>'StreamWriter'</code> (of type <code>XDataOutputStream</code>):
+* a possibility to write values to the stream. </li>
+* <ul> <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XDataInputStream
+* @see java.util.Vector
+*/
+public class _XDataInputStream extends MultiMethodTest {
+
+ public XDataInputStream oObj = null;
+ public XDataOutputStream oStream = null;
+
+ // values that are written
+ private boolean writeBoolean;
+ private byte writeByte;
+ private char writeChar;
+ private double writeDouble;
+ private float writeFloat;
+ private long writeHyper;
+ private int writeLong;
+ private short writeShort;
+ private String writeUTF;
+
+
+ /**
+ * Retrieves relations. From relation 'StreamData' extracts
+ * data of different types and fills the appropriate variables.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before(){
+
+ XInterface x = (XInterface)tEnv.getObjRelation("StreamWriter") ;
+ oStream = UnoRuntime.queryInterface(
+ XDataOutputStream.class, x);
+ List<Object> data = (List<Object>) tEnv.getObjRelation("StreamData") ;
+ if (data == null || oStream == null) {
+ throw new StatusException(Status.failed("Object relation not found."));
+ }
+
+ // extract data from vector
+ Object dataElem = null ;
+ for (int i = 0; i < data.size(); i++) {
+ dataElem = data.get(i) ;
+
+ if (dataElem instanceof Boolean) {
+ writeBoolean = ((Boolean)dataElem).booleanValue();
+ } else
+ if (dataElem instanceof Byte) {
+ writeByte = ((Byte)dataElem).byteValue();
+ } else
+ if (dataElem instanceof Character) {
+ writeChar = ((Character)dataElem).charValue();
+ } else
+ if (dataElem instanceof Short) {
+ writeShort = ((Short)dataElem).shortValue();
+ } else
+ if (dataElem instanceof Integer) {
+ writeLong = ((Integer)dataElem).intValue();
+ } else
+ if (dataElem instanceof Long) {
+ writeHyper = ((Long)dataElem).longValue();
+ } else
+ if (dataElem instanceof Float) {
+ writeFloat = ((Float)dataElem).floatValue();
+ } else
+ if (dataElem instanceof Double) {
+ writeDouble = ((Double)dataElem).doubleValue();
+ } else
+ if (dataElem instanceof String) {
+ writeUTF = (String)dataElem;
+ }
+ }
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readBoolean() {
+ boolean res = true ;
+ try {
+ oStream.writeBoolean(writeBoolean);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ byte readElem;
+ try {
+ readElem = oObj.readBoolean();
+ res = ((readElem != 0) == writeBoolean);
+
+ if (!res)
+ log.println("Must be read " +
+ writeBoolean +
+ " but was read " + (readElem != 0)) ;
+ } catch (com.sun.star.io.IOException e) {
+ log.println("Couldn't read Boolean from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("readBoolean()", res) ;
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readByte() {
+ boolean res = true ;
+ try {
+ oStream.writeByte(writeByte);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ byte readElem;
+ try {
+ readElem = oObj.readByte() ;
+ res = (readElem == writeByte);
+
+ if (!res)
+ log.println("Must be read " +
+ writeByte +
+ " but was read " + readElem);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't read Byte from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("readByte()", res) ;
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readChar() {
+ boolean res = true ;
+ try {
+ oStream.writeChar(writeChar);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ char readElem;
+ try {
+ readElem = oObj.readChar() ;
+ res = (readElem == writeChar);
+
+ if (!res)
+ log.println("Must be read " +
+ writeChar +
+ " but was read " + readElem) ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read Char from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readChar()", res);
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readShort() {
+ boolean res = true ;
+ try {
+ oStream.writeShort(writeShort);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ short readElem;
+ try {
+ readElem = oObj.readShort() ;
+ res = (readElem == writeShort);
+
+ if (!res)
+ log.println("Must be read " +
+ writeShort +
+ " but was read " + readElem) ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read Short from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readShort()", res);
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readLong() {
+ try {
+ oStream.writeLong(writeLong);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ boolean res = true ;
+ int readElem;
+ try {
+ readElem = oObj.readLong() ;
+ res = (readElem == writeLong);
+
+ if (!res)
+ log.println("Must be read " +
+ writeLong +
+ " but was read " + readElem) ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read Long from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readLong()", res);
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readHyper() {
+ boolean res = true ;
+ try {
+ oStream.writeHyper(writeHyper);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ long readElem;
+ try {
+ readElem = oObj.readHyper() ;
+ res = (readElem == writeHyper);
+
+ if (!res)
+ log.println("Must be read " +
+ writeHyper +
+ " but was read " + readElem) ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read Hyper from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readHyper()", res);
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readFloat() {
+ boolean res = true ;
+ try {
+ oStream.writeFloat(writeFloat);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ float readElem;
+ try {
+ readElem = oObj.readFloat() ;
+ res = (readElem == writeFloat);
+
+ if (!res)
+ log.println("Must be read " +
+ writeFloat +
+ " but was read " + readElem) ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read Float from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readFloat()", res);
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readDouble() {
+ boolean res = true ;
+ try {
+ oStream.writeDouble(writeDouble);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ double readElem;
+ try {
+ readElem = oObj.readDouble() ;
+ res = (readElem == writeDouble);
+
+ if (!res)
+ log.println("Must be read " +
+ writeDouble +
+ " but was read " + readElem) ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read Double from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readDouble()", res);
+ }
+
+ /**
+ * First writes a value to outStream then reads it from input. <p>
+ *
+ * Has <b> OK </b> status if read and written values are equal. <p>
+ */
+ public void _readUTF() {
+ boolean res = true ;
+ try {
+ oStream.writeUTF(writeUTF);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write data to the stream", e);
+ }
+ String readElem;
+ try {
+ readElem = oObj.readUTF() ;
+ res = writeUTF.equals(readElem) ;
+
+ if (!res)
+ log.println("Must be read '" +
+ writeUTF +
+ "' but was read '" + readElem + "'") ;
+ } catch( com.sun.star.io.IOException e ) {
+ log.println("Couldn't read String from stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("readUTF()", res);
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ try {
+ oStream.flush();
+ } catch (com.sun.star.io.NotConnectedException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.io.BufferSizeExceededException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ }
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XDataOutputStream.java b/qadevOOo/tests/java/ifc/io/_XDataOutputStream.java
new file mode 100644
index 000000000..3ea11193d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XDataOutputStream.java
@@ -0,0 +1,245 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import java.util.List;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XDataOutputStream;
+
+/**
+* Testing <code>com.sun.star.io.XDataOutputStream</code>
+* interface methods:
+* <ul>
+* <li><code>writeBoolean()</code></li>
+* <li><code>writeByte()</code></li>
+* <li><code>writeChar()</code></li>
+* <li><code>writeShort()</code></li>
+* <li><code>writeLong()</code></li>
+* <li><code>writeHyper()</code></li>
+* <li><code>writeFloat()</code></li>
+* <li><code>writeDouble()</code></li>
+* <li><code>writeUTF()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'StreamData'</code> (of type <code>Vector</code>):
+* vector of data for writing to the stream </li>
+* <ul> <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XDataOutputStream
+*/
+public class _XDataOutputStream extends MultiMethodTest {
+
+ public XDataOutputStream oObj = null;
+
+ /**
+ * Retrieves object relation <code>'StreamData'</code>
+ * and executes methods of interface depending of data in stream.
+ * If relation or data of some type in stream not found then
+ * tests of corresponding methods are skipped.
+ */
+ @Override
+ public void before() throws RuntimeException {
+
+ List<Object> data = (List<Object>) tEnv.getObjRelation("StreamData") ;
+ if (data == null) {
+ throw new RuntimeException("Object relation 'StreamData' not found.");
+ }
+
+ // extract data from vector
+ Object dataElem = null ;
+ for (int i = 0; i < data.size(); i++) {
+ dataElem = data.get(i) ;
+
+ if (!(dataElem instanceof Boolean ||
+ dataElem instanceof Byte) ||
+ dataElem instanceof Character ||
+ dataElem instanceof Short ||
+ dataElem instanceof Integer ||
+ dataElem instanceof Float ||
+ dataElem instanceof Double) {
+ throw new RuntimeException("Object dataElem type not found.");
+ }
+ }
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeBoolean() {
+ boolean res = true;
+ try {
+ oObj.writeBoolean(true) ;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Boolean to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeBoolean()", res) ;
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeByte() {
+ boolean res = true;
+ try {
+ oObj.writeByte((byte) 123);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Byte to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeByte()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeChar() {
+ boolean res = true;
+ try {
+ oObj.writeChar((char)12345);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Char to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeChar()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeShort() {
+ boolean res = true;
+ try {
+ oObj.writeShort((short)12345) ;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Short to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeShort()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeLong() {
+ boolean res = true;
+ try {
+ oObj.writeLong(123456);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Long to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeLong()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeHyper() {
+ boolean res = true;
+ try {
+ oObj.writeHyper(123456789);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Hyper to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeHyper()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeFloat() {
+ boolean res = true;
+ try {
+ oObj.writeFloat((float)1.2345);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Float to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeFloat()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeDouble() {
+ boolean res = true;
+ try {
+ oObj.writeDouble(1.2345);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write Double to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeDouble()", res);
+ }
+
+ /**
+ * Test writes some data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeUTF() {
+ boolean res = true;
+ try {
+ oObj.writeUTF("XDataOutputStream") ;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write String to stream");
+ e.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("writeUTF()", res);
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XInputStream.java b/qadevOOo/tests/java/ifc/io/_XInputStream.java
new file mode 100644
index 000000000..90ee86afb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XInputStream.java
@@ -0,0 +1,238 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.io.XInputStream</code>
+* interface methods:
+* <ul>
+* <li><code>readBytes()</code></li>
+* <li><code>readSomeBytes()</code></li>
+* <li><code>skipBytes()</code></li>
+* <li><code>available()</code></li>
+* <li><code>closeInput()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'StreamWriter'</code>:
+* object that supports interface <code>XOutputStream</code>;
+* a stream to write data to</li>
+* <li> <code>'ByteData'</code> (of type <code>byte []</code>):
+* data to write to the stream</li>
+* <ul> <p>
+
+* @see com.sun.star.io.XInputStream
+*/
+public class _XInputStream extends MultiMethodTest {
+
+ public XInputStream oObj = null;
+ public XOutputStream oStream = null;
+
+ byte[] bytes = null;
+
+ int bytesReady = 0 ;
+
+ /**
+ * Before the test, the stream writer and the data are extracted from
+ * the object relations and the data is written to the stream.
+ */
+ @Override
+ public void before() {
+ XInterface x = (XInterface)tEnv.getObjRelation("StreamWriter");
+ oStream = UnoRuntime.queryInterface(
+ XOutputStream.class, x) ;
+ bytes = (byte[])tEnv.getObjRelation("ByteData");
+ try {
+ oStream.writeBytes(bytes);
+ }
+ catch(com.sun.star.io.NotConnectedException e) {}
+ catch(com.sun.star.io.BufferSizeExceededException e) {}
+ catch(com.sun.star.io.IOException e) {}
+ }
+
+ /**
+ * After the test, the stream writer is closed and the
+ * environment is disposed.
+ */
+ @Override
+ public void after() {
+ try {
+ oStream.flush();
+ oStream.closeOutput();
+ }
+ catch(com.sun.star.io.NotConnectedException e) {}
+ catch(com.sun.star.io.BufferSizeExceededException e) {}
+ catch(com.sun.star.io.IOException e) {}
+ this.disposeEnvironment();
+ }
+ /**
+ * Test calls the method and stores number of available bytes. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _available() {
+ boolean result = true ;
+ try {
+ bytesReady = oObj.available() ;
+ log.println("Bytes available :" + bytesReady) ;
+ } catch (com.sun.star.io.IOException e){
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("available()", result) ;
+ }
+
+ /**
+ * Test reads one byte from stream. If no bytes available
+ * then test of method is skipped. <p>
+ * Has <b> OK </b> status if returned value equal to number of read bytes,
+ * no exceptions were thrown and read data is not null. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> available() </code> : to have available number
+ * of bytes in stream </li>
+ * </ul>
+ */
+ public void _readBytes() {
+ requiredMethod("available()") ;
+ boolean result ;
+
+ if (bytesReady-- > 0) {
+ try {
+ byte[][] data = new byte[1][1] ;
+ int read = oObj.readBytes(data, 1) ;
+
+ result = read == 1 &&
+ data.length == 1 ;
+ } catch (com.sun.star.io.IOException e){
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("readBytes()", result) ;
+ } else {
+ log.println("No more bytes available in the stream");
+ tRes.tested("readBytes()", Status.skipped(false));
+ }
+ }
+
+ /**
+ * Test reads one byte from stream. If no bytes available
+ * then test of method is skipped. <p>
+ * Has <b> OK </b> status if returned value equal to number of read bytes,
+ * no exceptions were thrown and read data is not null. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> available() </code> : to have available number
+ * of bytes in stream </li>
+ * </ul>
+ */
+ public void _readSomeBytes() {
+ requiredMethod("available()") ;
+ boolean result ;
+
+ if (bytesReady-- > 0) {
+ try {
+ byte[][] data = new byte [1][1] ;
+ int read = oObj.readSomeBytes(data, 1) ;
+
+ result = read == 1 &&
+ data.length == 1 ;
+ } catch (com.sun.star.io.IOException e){
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("readSomeBytes()", result) ;
+ } else {
+ log.println("No more bytes available in the stream") ;
+ tRes.tested("readBytes()", Status.skipped(false));
+ }
+ }
+
+ /**
+ * Test skips one byte from stream. If no bytes available
+ * then test of method is skipped. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> available() </code> : to have available number
+ * of bytes in stream </li>
+ * </ul>
+ */
+ public void _skipBytes() {
+ requiredMethod("available()") ;
+ boolean result ;
+
+ if (bytesReady-- > 0) {
+ try {
+ oObj.skipBytes(1) ;
+
+ result = true ;
+ } catch (com.sun.star.io.IOException e){
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("skipBytes()", result) ;
+ } else {
+ log.println("No more bytes available in the stream") ;
+ tRes.tested("readBytes()", Status.skipped(false));
+ }
+ }
+
+ /**
+ * Test calls the method and forces object environment recreation. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> available() </code> </li>
+ * <li> <code> readBytes() </code> </li>
+ * <li> <code> readSomeBytes() </code> </li>
+ * <li> <code> skipBytes() </code> </li>
+ * </ul>
+ */
+ public void _closeInput() {
+ executeMethod("available()") ;
+ executeMethod("readBytes()") ;
+ executeMethod("readSomeBytes()") ;
+ executeMethod("skipBytes()") ;
+
+ boolean result = true ;
+ try {
+ oObj.closeInput() ;
+ } catch (com.sun.star.io.IOException e){
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("closeInput()", result) ;
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XMarkableStream.java b/qadevOOo/tests/java/ifc/io/_XMarkableStream.java
new file mode 100644
index 000000000..8c0888739
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XMarkableStream.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XMarkableStream;
+
+/**
+* Testing <code>com.sun.star.io.XMarkableStream</code>
+* interface methods:
+* <ul>
+* <li><code>createMark()</code></li>
+* <li><code>deleteMark()</code></li>
+* <li><code>jumpToFurthest()</code></li>
+* <li><code>jumpToMark()</code></li>
+* <li><code>offsetToMark()</code></li>
+* </ul> <p>
+* @see com.sun.star.io.XMarkableStream
+*/
+public class _XMarkableStream extends MultiMethodTest {
+
+ public XMarkableStream oObj = null;
+ private int mark = -1 ;
+
+ /**
+ * Test creates mark and stores it. <p>
+ * Has <b> OK </b> status if no exceptions were thrown
+ * and returned isn't less than zero. <p>
+ */
+ public void _createMark() {
+ boolean res;
+ try {
+ mark = oObj.createMark() ;
+ res = mark >= 0;
+ } catch (com.sun.star.io.IOException e) {
+ log.println("Couldn't create mark");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("createMark()", res);
+ }
+
+ /**
+ * Test deletes the mark that was created by method <code>createMark()
+ * </code>.<p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createMark() </code> : to have mark </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> jumpToFurthest() </code></li>
+ * <li> <code> jumpToMark() </code></li>
+ * <li> <code> offsetToMark() </code></li>
+ * </ul>
+ */
+ public void _deleteMark() {
+ requiredMethod("createMark()") ;
+
+ executeMethod("jumpToFurthest()") ;
+ executeMethod("jumpToMark()") ;
+ executeMethod("offsetToMark()") ;
+
+ boolean res;
+ try {
+ oObj.deleteMark(mark);
+ res = true;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't delete mark");
+ e.printStackTrace(log);
+ res = false;
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't delete mark");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("deleteMark()", res) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createMark() </code></li>
+ * </ul>
+ */
+ public void _jumpToFurthest() {
+ requiredMethod("createMark()") ;
+
+ boolean res;
+ try {
+ oObj.jumpToFurthest() ;
+ res = true;
+ } catch (com.sun.star.io.IOException e) {
+ log.println("Couldn't jump to furthest");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("jumpToFurthest()", res) ;
+ }
+
+ /**
+ * Test jumps to mark that was created by method <code>createMark()</code>.
+ * <p>Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> jumpToFurthest() </code> : for the right order of tests
+ * execution </li>
+ * </ul>
+ */
+ public void _jumpToMark() {
+ requiredMethod("jumpToFurthest()") ;
+ boolean res;
+
+ try {
+ oObj.jumpToMark(mark) ;
+ res = true;
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't jump to mark");
+ e.printStackTrace(log);
+ res = false;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't jump to mark");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("jumpToMark()", res) ;
+ }
+
+ /**
+ * Test obtains offset to mark that was created by
+ * method <code>createMark()</code> and checks returned value.<p>
+ * Has <b> OK </b> status if returned value is equal to zero
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> jumpToMark() </code> : to have current position at
+ * the mark position </li>
+ * </ul>
+ */
+ public void _offsetToMark() {
+
+ requiredMethod("jumpToMark()") ;
+
+ boolean res;
+ try {
+ int offset = oObj.offsetToMark(mark);
+ res = offset == 0;
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't get offset to mark");
+ e.printStackTrace(log);
+ res = false;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't get offset to mark");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("offsetToMark()", res);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XObjectInputStream.java b/qadevOOo/tests/java/ifc/io/_XObjectInputStream.java
new file mode 100644
index 000000000..bfcb3f6b3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XObjectInputStream.java
@@ -0,0 +1,165 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import util.ValueComparer;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.io.XObjectInputStream</code>
+* interface methods:
+* <ul>
+* <li><code>readObject()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'PersistObject'</code> (of type <code>Object</code>):
+* object that supports interface <code>XPersistObject</code> </li>
+* <ul> <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XObjectInputStream
+* @see com.sun.star.io.XPersistObject
+*/
+public class _XObjectInputStream extends MultiMethodTest {
+
+ public XObjectInputStream oObj = null;
+
+ /**
+ * Test reads persist object from stream and compares properties
+ * of the object with properties of persist object obtained
+ * from relation <code>'PersistObject'</code> <p>
+ * Has <b> OK </b> status if returned value isn't null and values
+ * of objects properties are equal. <p>
+ */
+ public void _readObject() {
+ Object objWrite = tEnv.getObjRelation("PersistObject") ;
+ if (objWrite == null) {
+ log.println("PersistObject not found in relations") ;
+ tRes.tested("readObject()", false) ;
+ return ;
+ }
+
+ // write the object
+ try {
+ XObjectOutputStream oStream = (XObjectOutputStream)
+ tEnv.getObjRelation("StreamWriter");
+ oStream.writeObject((XPersistObject)objWrite);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't write object to stream");
+ e.printStackTrace(log);
+ tRes.tested("readObject()", Status.skipped(false));
+ return;
+ }
+
+ Object objRead = null ;
+ try {
+ objRead = oObj.readObject() ;
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't read object from stream");
+ e.printStackTrace(log);
+ tRes.tested("readObject()", false) ;
+ return ;
+ }
+
+ if (objRead == null) {
+ log.println("No object was read.") ;
+ tRes.tested("readObject()", false) ;
+ return ;
+ }
+
+ XPropertySet props1 = null ;
+ XPropertySet props2 = null ;
+
+ props1 = UnoRuntime.queryInterface
+ (XPropertySet.class, objRead) ;
+
+ props2 = UnoRuntime.queryInterface
+ (XPropertySet.class, objWrite) ;
+
+ if (props1 == null) {
+ log.println("Object read doesn't implement XPropertySet") ;
+ tRes.tested("readObject()", false) ;
+ return ;
+ }
+ if (props2 == null) {
+ log.println("Object written doesn't implement XPropertySet") ;
+ tRes.tested("readObject()", false) ;
+ return ;
+ }
+
+ tRes.tested("readObject()",
+ compareProperties(props1, props2)) ;
+ }
+
+ protected boolean compareProperties(XPropertySet props1,
+ XPropertySet props2) {
+
+ Property[] p1 = props1.getPropertySetInfo().getProperties() ;
+ Property[] p2 = props2.getPropertySetInfo().getProperties() ;
+
+ if (p1.length != p2.length) {
+ log.println("Number of properties differs") ;
+ return false ;
+ }
+
+ boolean result = true ;
+
+ for (int i = 0; i < p1.length; i++) {
+ String propName = p1[i].Name ;
+
+ log.print("Comparing property '" + propName + "' ...") ;
+ boolean res = false ;
+ try {
+ res = ValueComparer.equalValue
+ (props1.getPropertyValue(propName),
+ props2.getPropertyValue(propName)) ;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Not found !") ;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e) ;
+ }
+
+ if (res)
+ log.println("OK.") ;
+ else
+ log.println("Different !") ;
+
+ result &= res ;
+ }
+
+ return result ;
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XObjectOutputStream.java b/qadevOOo/tests/java/ifc/io/_XObjectOutputStream.java
new file mode 100644
index 000000000..86efebe52
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XObjectOutputStream.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.io.XObjectOutputStream</code>
+* interface methods:
+* <ul>
+* <li><code>writeObject()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'InputStream'</code> (of type <code>XObjectInputStream</code>)</li>
+* persist object for testing of write to stream</ul>
+* @see com.sun.star.io.XObjectInputStream
+* @see com.sun.star.io.XObjectOutputStream
+* @see com.sun.star.io.XPersistObject
+*/
+public class _XObjectOutputStream extends MultiMethodTest {
+
+ public XObjectOutputStream oObj = null;
+
+ /**
+ * Test creates persist object, sets label of object,
+ * calls the method for created persist object
+ * and checks label of object that was read from input stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and labels are equals. <p>
+ */
+ public void _writeObject() throws Exception {
+ XObjectInputStream oInStream = (XObjectInputStream)
+ tEnv.getObjRelation("InputStream");
+ if (oInStream == null) throw
+ new StatusException(Status.failed("Relation 'InputStream' failed"));
+
+ // use own implementation of XPersistObject, so test runs
+ // without an office
+ XPersistObject objWrite = (XPersistObject)
+ tEnv.getObjRelation("PersistObject");
+ if (objWrite == null) throw
+ new StatusException(Status.failed("Relation 'PersistObject' failed"));
+
+ XPropertySet propObjWrite = UnoRuntime.queryInterface(XPropertySet.class, objWrite);
+
+ // This XPersistObject has a property called 'String'
+ propObjWrite.setPropertyValue("String", "XObjectOutputStream");
+
+ log.println("Writing object with label 'XObjectOutputStream'");
+ oObj.writeObject(objWrite);
+ XPersistObject readObj = oInStream.readObject();
+ XPropertySet propSet = UnoRuntime.queryInterface(XPropertySet.class, readObj);
+ String label = (String)propSet.getPropertyValue("String");
+ log.println("Object with label '" + label + "' was read");
+
+ tRes.tested("writeObject()", label.equals("XObjectOutputStream")) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XOutputStream.java b/qadevOOo/tests/java/ifc/io/_XOutputStream.java
new file mode 100644
index 000000000..9f619f383
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XOutputStream.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+
+/**
+* Testing <code>com.sun.star.io.XOutputStream</code>
+* interface methods:
+* <ul>
+* <li><code>writeBytes()</code></li>
+* <li><code>flush()</code></li>
+* <li><code>closeOutput()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'ByteData'</code> : Data that is written on the stream.
+* </li>
+* <li> <code>'XOutputStream.StreamChecker'</code> : <code>
+* _XOutputStream.StreamChecker</code> interface implementation
+* which can reset streams and return input stream for check if the
+* data was successfully written.</li>
+* <ul> <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XOutputStream
+*/
+public class _XOutputStream extends MultiMethodTest {
+
+ public XOutputStream oObj = null;
+ StreamChecker checker = null;
+ byte[] data = null;
+
+ public interface StreamChecker {
+ XInputStream getInStream();
+ void resetStreams();
+ }
+
+ @Override
+ protected void before() {
+ checker = (StreamChecker)
+ tEnv.getObjRelation("XOutputStream.StreamChecker");
+ if (checker == null) throw
+ new StatusException(Status.failed(
+ "Couldn't get relation 'XOutputStream.StreamChecker'"));
+
+ data = (byte[])tEnv.getObjRelation("ByteData");
+ if (data == null) throw
+ new StatusException(Status.failed(
+ "Couldn't get relation 'ByteData'"));
+ }
+ /**
+ * Test writes data to stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _writeBytes() {
+ boolean res = true;
+ try {
+ oObj.writeBytes(data);
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log) ;
+ res = false;
+ }
+
+ byte[][] readData = new byte[1][data.length];
+ XInputStream xInStream = checker.getInStream();
+ if (xInStream != null) {
+ try {
+ xInStream.readBytes(readData, data.length);
+ } catch(com.sun.star.io.IOException e) {
+ log.println("Couldn't read data:" + e);
+ res = false;
+ }
+ } else {
+ res = false;
+ }
+
+ for(int i = 0; i < readData[0].length; i++) {
+ log.println("Expected: "+data[i]+", actual is "+readData[0][i]);
+ res &= readData[0][i] == data[i];
+ }
+
+ tRes.tested("writeBytes()", res);
+ }
+
+ /**
+ * Test flushes out data from stream. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> writeBytes() </code></li>
+ * </ul>
+ */
+ public void _flush() {
+ requiredMethod("writeBytes()");
+
+ boolean res;
+ try {
+ oObj.flush();
+ res = true;
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log) ;
+ res = false;
+ }
+
+ tRes.tested("flush()", res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> writeBytes() </code></li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li><code> flush() </code></li>
+ * </ul>
+ */
+ public void _closeOutput() {
+ requiredMethod("writeBytes()");
+ executeMethod("flush()");
+
+ boolean res;
+ try {
+ oObj.closeOutput();
+ res = true;
+ } catch (com.sun.star.io.IOException e) {
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ log.println("This method is called in main module");
+
+ tRes.tested("closeOutput()", res);
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/io/_XPersistObject.java b/qadevOOo/tests/java/ifc/io/_XPersistObject.java
new file mode 100644
index 000000000..083d0f71c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/io/_XPersistObject.java
@@ -0,0 +1,247 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.io;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+import util.dbg;
+import util.utils;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Testing <code>com.sun.star.io.XPersistObject</code>
+* interface methods :
+* <ul>
+* <li><code> getServiceName()</code></li>
+* <li><code> write()</code></li>
+* <li><code> read()</code></li>
+* </ul> <p>
+* This test need the following object relations :
+* <ul>
+* <li> <code>'OBJNAME'</code> : <code>String</code> value that
+* contains service name which object represents.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.io.XObjectInputStream
+* @see com.sun.star.io.XObjectOutputStream
+*/
+public class _XPersistObject extends MultiMethodTest {
+
+ public XPersistObject oObj = null;
+ XObjectInputStream iStream = null;
+ XObjectOutputStream oStream = null;
+ String sname = null;
+
+ boolean result = true;
+
+
+ /**
+ * Test calls the method and checks return value. <p>
+ * Has <b> OK </b> status if the method returns proper service names
+ * which is equal to <code>'OBJNAME'</code> relation value. <p>
+ */
+ public void _getServiceName() {
+ result = true;
+ sname = oObj.getServiceName();
+ log.println("Method returned '" + sname + "'") ;
+ String objName = (String)tEnv.getObjRelation("OBJNAME");
+ if (objName == null) {
+ log.println("No OBJNAME relation!");
+ result = false;
+ } else {
+ result &= sname.equals(objName);
+ if (!result)
+ log.println("Name of object must be '" + objName +
+ "' but returned name is '" + sname +"'");
+ }
+
+ tRes.tested("getServiceName()", result);
+ }
+
+ /**
+ * Creates service get by <code>getServiceName</code> method and tries
+ * to read object written to stream by <code>write</code> method test.
+ * Then properties of object written and object read are compared. <p>
+ * Has <b>OK</b> status if all properties of two objects are equal
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getServiceName() </code> : to have service name
+ * which has to be created </li>
+ * <li> <code> write() </code> : to write object tested into stream</li>
+ * </ul>
+ */
+ public void _read() {
+ requiredMethod("getServiceName()");
+ requiredMethod("write()") ;
+
+ boolean bResult = true;
+
+ try {
+ Object noPS = tEnv.getObjRelation("noPS");
+ if ( noPS == null) {
+ XPropertySet objps = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ XPropertySetInfo objpsi = objps.getPropertySetInfo();
+ Property[] objprops = objpsi.getProperties();
+
+ Object oCopy = tParam.getMSF().createInstance(sname);
+
+ XPersistObject persCopy = UnoRuntime.queryInterface(XPersistObject.class, oCopy);
+
+ persCopy.read(iStream);
+
+ XPropertySet copyps = UnoRuntime.queryInterface(
+ XPropertySet.class, oCopy);
+
+ XPropertySetInfo copypsi = copyps.getPropertySetInfo();
+ Property[] copyprops = copypsi.getProperties();
+
+ for (int i = 0; i < copyprops.length; i++) {
+ Object cps = copyps.getPropertyValue(copyprops[i].Name);
+ Object ops = objps.getPropertyValue(objprops[i].Name);
+ boolean locRes = ( (ValueComparer.equalValue(cps,ops)) ||
+ (utils.isVoid(cps) && utils.isVoid(ops)) );
+
+ //transient properties aren't stored
+ if (isTransient(objprops[i])) locRes = true;
+
+ Object pseudo = tEnv.getObjRelation("PSEUDOPERSISTENT");
+ if ( (pseudo != null) && !locRes) {
+ String str = copyprops[i].Name;
+ locRes = ( (str.equals("Time")) || (str.equals("Date"))
+ || (str.equals("FormatsSupplier"))
+ || (str.equals("Text"))
+ || (str.equals("Value"))
+ || (str.indexOf("UserDefined")>0)
+ );
+ }
+ if (!locRes) {
+ log.println("Property '" + copyprops[i].Name
+ + "' failed");
+ dbg.printPropertyInfo(objps, objprops[i].Name, log);
+ dbg.printPropertyInfo(copyps, copyprops[i].Name, log);
+ }
+ bResult &= locRes;
+ }
+ } else {
+ Object oCopy = tParam.getMSF().createInstance(sname);
+ XPersistObject persCopy = UnoRuntime.queryInterface(XPersistObject.class, oCopy);
+
+ persCopy.read(iStream);
+
+ bResult = persCopy.getServiceName().equals(sname);
+
+ }
+
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception occurred : ");
+ e.printStackTrace(log) ;
+ bResult = false;
+ }
+
+ tRes.tested("read()", bResult);
+ }
+
+ /**
+ * Test calls the method and checks that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _write() {
+ boolean bResult = true;
+ try {
+ initPipe();
+ oObj.write(oStream);
+ } catch (com.sun.star.io.IOException e) {
+ log.println("Exception occurred while test. " + e);
+ bResult = false;
+ }
+ tRes.tested("write()", bResult);
+ }
+
+
+ /**
+ * Creates the following stream scheme <code>
+ * ObjectOutputStream -> Pipe -> ObjectInputStream </code> for writing/reading
+ * object.
+ */
+ protected void initPipe() {
+ try {
+ Object aPipe = tParam.getMSF().createInstance
+ ("com.sun.star.io.Pipe");
+ Object istream = tParam.getMSF().createInstance
+ ("com.sun.star.io.ObjectInputStream");
+ Object ostream = tParam.getMSF().createInstance
+ ("com.sun.star.io.ObjectOutputStream");
+
+ // Now the objects that aren't described anywhere
+ Object mistream = tParam.getMSF().createInstance
+ ("com.sun.star.io.MarkableInputStream");
+ Object mostream = tParam.getMSF().createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+
+ XActiveDataSink xdSi = UnoRuntime.queryInterface(XActiveDataSink.class, istream);
+ XActiveDataSource xdSo = UnoRuntime.queryInterface(XActiveDataSource.class, ostream);
+ XActiveDataSink xdSmi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XInputStream miStream = UnoRuntime.queryInterface(XInputStream.class, mistream);
+ XOutputStream moStream = UnoRuntime.queryInterface(XOutputStream.class, mostream);
+ XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class, aPipe);
+ XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class,aPipe);
+
+ xdSi.setInputStream(miStream);
+ xdSo.setOutputStream(moStream);
+ xdSmi.setInputStream(PipeIn);
+ xdSmo.setOutputStream(PipeOut);
+
+ iStream = UnoRuntime.queryInterface(XObjectInputStream.class, istream);
+ oStream = UnoRuntime.queryInterface(XObjectOutputStream.class, ostream);
+
+
+ } catch (com.sun.star.uno.Exception e) {
+ System.out.println("exc " + e);
+ }
+
+ }
+
+ public static boolean isTransient(Property prop) {
+ short attr = prop.Attributes;
+ return ((attr & com.sun.star.beans.PropertyAttribute.TRANSIENT) != 0);
+ }
+
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/java/_XJavaThreadRegister_11.java b/qadevOOo/tests/java/ifc/java/_XJavaThreadRegister_11.java
new file mode 100644
index 000000000..0a704fa34
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/java/_XJavaThreadRegister_11.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.java;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.java.XJavaThreadRegister_11;
+
+/**
+* Testing <code>com.sun.star.java.XJavaThreadRegister_11</code>
+* interface methods :
+* <ul>
+* <li><code> isThreadAttached()</code></li>
+* <li><code> registerThread()</code></li>
+* <li><code> revokeThread()</code></li>
+* </ul> <p>
+* <b> Nothing tested here. </b>
+* @see com.sun.star.java.XJavaThreadRegister_11
+*/
+public class _XJavaThreadRegister_11 extends MultiMethodTest {
+ public XJavaThreadRegister_11 oObj;
+
+ @Override
+ protected void after() {
+ log.println("Skipping all XJavaThreadRegister_11 methods, since they"
+ + " can't be tested in the context");
+ throw new StatusException(Status.skipped(true));
+ }
+
+ public void _isThreadAttached() {
+ // skipping the test
+ tRes.tested("isThreadAttached()", true);
+ }
+
+ public void _registerThread() {
+ // skipping the test
+ tRes.tested("registerThread()", true);
+ }
+
+ public void _revokeThread() {
+ // skipping the test
+ tRes.tested("revokeThread()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/java/_XJavaVM.java b/qadevOOo/tests/java/ifc/java/_XJavaVM.java
new file mode 100644
index 000000000..0c8fe92a3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/java/_XJavaVM.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.java;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.java.XJavaVM;
+
+/**
+* Testing <code>com.sun.star.java.XJavaVM</code>
+* interface methods :
+* <ul>
+* <li><code> getJavaVM()</code></li>
+* <li><code> isVMStarted()</code></li>
+* <li><code> isVMEnabled()</code></li>
+* </ul> <p>
+* <b> Nothing tested here. </b>
+* @see com.sun.star.java.XJavaVM
+*/
+public class _XJavaVM extends MultiMethodTest {
+ public XJavaVM oObj;
+
+ @Override
+ protected void after() {
+ log.println("Skipping all XJavaVM methods, since they"
+ + " can't be tested in the context");
+ throw new StatusException(Status.skipped(true));
+ }
+
+ public void _getJavaVM() {
+ // skipping the test
+ tRes.tested("getJavaVM()", true);
+ }
+
+ public void _isVMEnabled() {
+ // skipping the test
+ tRes.tested("isVMEnabled()", true);
+ }
+
+ public void _isVMStarted() {
+ // skipping the test
+ tRes.tested("isVMStarted()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/lang/_ServiceManager.java b/qadevOOo/tests/java/ifc/lang/_ServiceManager.java
new file mode 100644
index 000000000..6ccf2b06e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_ServiceManager.java
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.XComponentContext;
+
+public class _ServiceManager extends MultiPropertyTest {
+
+ public void _DefaultContext() {
+ XComponentContext get = null;
+ boolean res = false;
+ try {
+ get = (XComponentContext)AnyConverter.toObject(new Type(XComponentContext.class), oObj.getPropertyValue("DefaultContext"));
+ res = get != null;
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Illegal Argument Exception");
+ res = false;
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Property is optional and not supported");
+ res = true;
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("Unexpected Exception");
+ wte.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("DefaultContext", res);
+
+ }
+
+} // EOF _ServiceManager
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XComponent.java b/qadevOOo/tests/java/ifc/lang/_XComponent.java
new file mode 100644
index 000000000..b1c8399f6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XComponent.java
@@ -0,0 +1,168 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.frame.XDesktop;
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XEventListener;
+
+/**
+* Testing <code>com.sun.star.lang.XComponent</code>
+* interface methods :
+* <ul>
+* <li><code> dispose()</code></li>
+* <li><code> addEventListener()</code></li>
+* <li><code> removeEventListener()</code></li>
+* </ul>
+* After this interface test object <b>must be recreated</b>. <p>
+* Multithreaded test ability <b>not implemented</b> yet.
+* @see com.sun.star.lang.XComponent
+*/
+public class _XComponent extends MultiMethodTest {
+
+ public static XComponent oObj = null;
+ private XComponent altDispose = null;
+
+ boolean listenerDisposed[] = new boolean[2];
+ String[] Loutput = new String[2];
+
+ /**
+ * Listener which added but not removed, and its method must be called
+ * on <code>dispose</code> call.
+ */
+ public class MyEventListener implements XEventListener {
+ public void disposing ( EventObject oEvent ) {
+ Loutput[0] = Thread.currentThread() + " is DISPOSING EV1" + this;
+ listenerDisposed[0] = true;
+ }
+ }
+
+ /**
+ * Listener which added and then removed, and its method must <b>not</b>
+ * be called on <code>dispose</code> call.
+ */
+ public class MyEventListener2 implements XEventListener {
+ public void disposing ( EventObject oEvent ) {
+ Loutput[0] = Thread.currentThread() + " is DISPOSING EV2" + this;
+ listenerDisposed[1] = true;
+ }
+ }
+
+ XEventListener listener1 = new MyEventListener();
+ XEventListener listener2 = new MyEventListener2();
+
+ /**
+ * For the (no longer existing) cfgmgr2.OSetElement tests: dispose the owner
+ * element. TODO: Is this needed for anything else, too, or should it be
+ * removed?
+ */
+ @Override
+ protected void before() {
+ // do not dispose this component, but parent instead
+ altDispose = (XComponent)tEnv.getObjRelation("XComponent.DisposeThis");
+
+ }
+
+ /**
+ * Adds two listeners. <p>
+ * Has OK status if then the first listener will receive an event
+ * on <code>dispose</code> method call.
+ */
+ public void _addEventListener() {
+
+ listenerDisposed[0] = false;
+ listenerDisposed[1] = false;
+
+ oObj.addEventListener( listener1 );
+ oObj.addEventListener( listener2 );
+ } // finished _addEventListener()
+
+ /**
+ * Removes the second of two added listeners. <p>
+ * Method tests to be completed successfully :
+ * <ul>
+ * <li> <code>addEventListener</code> : method must add two listeners. </li>
+ * </ul> <p>
+ * Has OK status if no events will be sent to the second listener on
+ * <code>dispose</code> method call.
+ */
+ public void _removeEventListener() {
+ executeMethod("addEventListener()");
+ if (disposed) return;
+ // the second listener should not be called
+ oObj.removeEventListener( listener2 );
+ log.println(Thread.currentThread() + " is removing EL " + listener2);
+ } // finished _removeEventListener()
+
+ boolean disposed = false;
+
+ /**
+ * Disposes the object and then check appropriate listeners were
+ * called or not. <p>
+ * Method tests to be completed successfully :
+ * <ul>
+ * <li> <code>removeEventListener</code> : method must remove one of two
+ * listeners. </li>
+ * </ul> <p>
+ * Has OK status if liseter removed wasn't called and other listener
+ * was.
+ */
+ public void _dispose() {
+ disposed = false;
+ executeMethod("removeEventListener()");
+
+ log.println( "begin dispose in thread " + Thread.currentThread());
+ XDesktop oDesk = (XDesktop) tEnv.getObjRelation("Desktop");
+ if (oDesk !=null) {
+ oDesk.terminate();
+ }
+ else {
+ if (altDispose == null)
+ oObj.dispose();
+ else
+ altDispose.dispose();
+ }
+
+ util.utils.shortWait();
+ if (Loutput[0]!=null) log.println(Loutput[0]);
+ if (Loutput[1]!=null) log.println(Loutput[1]);
+ log.println( "end dispose" + Thread.currentThread());
+ disposed = true;
+
+ // check that dispose() works OK.
+ tRes.tested("addEventListener()", listenerDisposed[0]);
+ tRes.tested("removeEventListener()", !listenerDisposed[1]);
+ tRes.tested("dispose()", listenerDisposed[0] && !listenerDisposed[1]);
+
+ } // finished _dispose()
+
+ /**
+ * Forces object recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // finished class _XComponent
+
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XEventListener.java b/qadevOOo/tests/java/ifc/lang/_XEventListener.java
new file mode 100644
index 000000000..2401e7d24
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XEventListener.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XEventListener;
+
+/**
+* Testing <code>com.sun.star.lang.XEventListener</code>
+* interface methods :
+* <ul>
+* <li><code> disposing()</code></li>
+* </ul> <p>
+* Tests nothing, all methods has <b>OK</b> status.
+* @see com.sun.star.lang.XEventListener
+*/
+public class _XEventListener extends MultiMethodTest {
+
+ public XEventListener oObj = null;
+
+ /**
+ * Nothing to test. Always has <b>OK</b> status.
+ */
+ public void _disposing() {
+ log.println("The method 'disposing'");
+ log.println("gets called when the broadcaster is about to be"+
+ " disposed.") ;
+ log.println("All listeners and all other objects which reference "+
+ "the broadcaster should release the references.");
+ log.println("So there is nothing to test here");
+ tRes.tested("disposing()",true);
+
+ }
+
+} //EOF of XEventListener
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XInitialization.java b/qadevOOo/tests/java/ifc/lang/_XInitialization.java
new file mode 100644
index 000000000..5566aef0c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XInitialization.java
@@ -0,0 +1,102 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XInitialization;
+
+/**
+* Testing <code>com.sun.star.lang.XInitialization</code>
+* interface methods. <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XInitialization.args'</code> (of type <code>Object[]</code>):
+* (<b>Optional</b>) : argument for <code>initialize</code>
+* method. If omitted zero length array is used. </li>
+* <ul> <p>
+* Test is multithread compliant. <p>
+* Till the present time there was no need to recreate environment
+* after this test completion.
+*/
+public class _XInitialization extends MultiMethodTest {
+
+ public static XInitialization oObj = null;
+
+ /**
+ * Test calls the method with 0 length array and checks that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _initialize() {
+ boolean result = true ;
+
+ try {
+ XInitialization xInit = (XInitialization) tEnv.getObjRelation("XInitialization.xIni");
+ if (xInit == null) xInit = oObj;
+
+ log.println("calling method with valid arguments...");
+ Object[] args = (Object[]) tEnv.getObjRelation("XInitialization.args");
+ if (args==null) {
+ System.out.println("Using new Object[0] as Argument");
+ xInit.initialize(new Object[0]);
+ } else {
+ xInit.initialize(args);
+ }
+
+ // try to call the method with invalid parameters
+ Object[] ExArgs = (Object[]) tEnv.getObjRelation("XInitialization.ExceptionArgs");
+ if (ExArgs !=null) {
+ log.println("calling method with in-valid arguments...");
+ try{
+ result = false;
+ xInit.initialize(ExArgs);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Expected Exception 'com.sun.star.uno.Exception' occurred -> OK") ;
+ result = true ;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ log.println("Expected Exception 'com.sun.star.uno.RuntimeException' occurred -> OK") ;
+ result = true ;
+ } catch (Exception e) {
+ log.println("Un-Expected Exception occurred -> FALSE") ;
+ log.println(e.toString());
+ e.printStackTrace();
+ }
+ }
+
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception occurred while method calling.") ;
+ log.println(e) ;
+ result = false ;
+ }
+
+ tRes.tested("initialize()", result) ;
+ } // finished _initialize()
+
+ /**
+ * Disposes object environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finished class _XInitialization
+
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XLocalizable.java b/qadevOOo/tests/java/ifc/lang/_XLocalizable.java
new file mode 100644
index 000000000..9a758032b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XLocalizable.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.lang.XLocalizable;
+import lib.Status;
+
+
+public class _XLocalizable extends MultiMethodTest {
+
+ public XLocalizable oObj;
+ protected Locale initialLocale;
+
+ public void _getLocale() {
+ initialLocale = oObj.getLocale();
+ tRes.tested("getLocale()", initialLocale != null);
+ }
+
+ public void _setLocale() {
+ requiredMethod("getLocale()");
+
+ String ro = (String) tEnv.getObjRelation("XLocalizable.ReadOnly");
+ if (ro != null) {
+ log.println(ro);
+ tRes.tested("setLocale()", Status.skipped(true));
+ return;
+ }
+ Locale newLocale = new Locale("de", "DE", "");
+ oObj.setLocale(newLocale);
+
+ Locale getLocale = oObj.getLocale();
+ boolean res = ((getLocale.Country.equals(newLocale.Country)) &&
+ (getLocale.Language.equals(newLocale.Language)));
+
+ if (!res) {
+ log.println("Expected Language " + newLocale.Language +
+ " and Country " + newLocale.Country);
+ log.println("Getting Language " + getLocale.Language +
+ " and Country " + getLocale.Country);
+ }
+
+ oObj.setLocale(initialLocale);
+ tRes.tested("setLocale()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/lang/_XMain.java b/qadevOOo/tests/java/ifc/lang/_XMain.java
new file mode 100644
index 000000000..b50186fe0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XMain.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XMain;
+
+
+/**
+ * Testing <code>com.sun.star.lang.XMain</code>
+ * interface methods :
+ * <ul>
+ * <li><code> run()</code></li>
+ * </ul> <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'ARGS'</code> (of type <code>String[]</code>):
+ * used as argument for <code>run</code> method. </li>
+ * <ul> <p>
+ *
+ * @see com.sun.star.lang.XMain
+ */
+public class _XMain extends MultiMethodTest{
+
+ public static XMain oObj = null;
+
+ /**
+ * Just calls the method. <p>
+ *
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _run() {
+ String[] args = (String[])tEnv.getObjRelation("ARGS");
+
+ log.println("Running with arguments:");
+ for (int i=0; i< args.length; i++)
+ log.println("#" + i + ": " + args[i]);
+
+ oObj.run(args);
+
+ tRes.tested("run()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/lang/_XMultiComponentFactory.java b/qadevOOo/tests/java/ifc/lang/_XMultiComponentFactory.java
new file mode 100644
index 000000000..424e3d576
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XMultiComponentFactory.java
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.lang.XMultiComponentFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createInstanceWithContext()</code></li>
+* <li><code> createInstanceWithArgumentsAndContext()</code></li>
+* <li><code> getAvailableServiceNames()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.lang.XMultiComponentFactory
+*/
+public class _XMultiComponentFactory extends MultiMethodTest {
+ public XMultiComponentFactory oObj = null;
+
+ public XComponentContext xContext = null;
+ private String[] availableServiceNames = null;
+
+ @Override
+ public void before(){
+ xContext = (XComponentContext)tEnv.getObjRelation("DC");
+ availableServiceNames = (String[])tEnv.getObjRelation("XMultiComponentFactory.ServiceNames");
+ }
+
+ /**
+ * Calls the method with one of the available service names
+ * obtained by method getAvailableServiceNames. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is not null.
+ */
+ public void _createInstanceWithContext() {
+ requiredMethod("getAvailableServiceNames()");
+ boolean result = true;
+
+ try {
+ XInterface component = (XInterface)
+ oObj.createInstanceWithContext(
+ availableServiceNames[0], xContext);
+ result = (component != null);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't create instance " + availableServiceNames[0]);
+ result = false;
+ }
+
+ tRes.tested("createInstanceWithContext()", result);
+ }
+
+ /**
+ * Calls the method with one of the available service names
+ * obtained by method getAvailableServiceNames. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is not null.
+ */
+ public void _createInstanceWithArgumentsAndContext() {
+ requiredMethod("getAvailableServiceNames()");
+ boolean result = true;
+ XInterface component = null;
+
+ try {
+ component = (XInterface)oObj.createInstanceWithArgumentsAndContext(
+ availableServiceNames[0], new Object[0], xContext);
+ result = (component != null);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't create instance " + availableServiceNames[0]);
+ result = false;
+ }
+
+ tRes.tested("createInstanceWithArgumentsAndContext()", result);
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is not null.
+ */
+ public void _getAvailableServiceNames() {
+ boolean result = true;
+ if (availableServiceNames == null) {
+ availableServiceNames = oObj.getAvailableServiceNames();
+ result = (availableServiceNames != null);
+ }
+ else { // if service names are given, ignore result
+ String[]erg = oObj.getAvailableServiceNames();
+ result = (erg != null);
+ }
+
+ log.println("Available service names:");
+ if (availableServiceNames != null) {
+ for(int i = 0; i < availableServiceNames.length; i++) {
+ log.println(" " + availableServiceNames[i]);
+ }
+ }
+
+ tRes.tested("getAvailableServiceNames()", result);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XMultiServiceFactory.java b/qadevOOo/tests/java/ifc/lang/_XMultiServiceFactory.java
new file mode 100644
index 000000000..ac5898edb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XMultiServiceFactory.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XMultiServiceFactory;
+
+
+/**
+* Testing <code>com.sun.star.lang.XMultiServiceFactory</code>
+* interface methods:
+* <ul>
+* <li><code>createInstance()</code></li>
+* <li><code>createInstanceWithArguments()</code></li>
+* <li><code>getAvailableServiceNames()</code></li>
+* </ul> <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XMSF.serviceNames'</code> (of type <code>String[]</code>)
+* <b>optional</b>:
+* the relation used when service names are obtained the way
+* other than calling <code>getAvailableServiceNames()</code>
+* method.
+* </li>
+* <li> <code>'XMSF.serviceNamesWithArgs'</code> (of type <code>String[]</code>)
+* <b>optional</b>:
+* the relation used when service names are obtained the way
+* other than calling <code>getAvailableServiceNames()</code>
+* method for testing <code>createInstanceWithArguments</code> method.
+* </li>
+* <li> <code>'XMSF.Args'</code> (of type <code>Object[][]</code>)
+* <b>optional</b>:
+* if this relation exists than the method
+* <code>createInstanceWithArguments</code> is tested. This relation
+* supplies arguments for creating instances. If the relation
+* <code>'XMSF.serviceNamesWithArgs'</code> is also specified
+* then for each service name from that relation appropriate arguments
+* are used from arguments array. If not than arguments with index
+* 0 are used for services creation obtained by
+* <code>getAvailableServiceNames</code> method.
+* </li>
+* </ul> <p>
+*
+* @see com.sun.star.lang.XMultiServiceFactory
+*/
+public class _XMultiServiceFactory extends MultiMethodTest {
+ public XMultiServiceFactory oObj = null;
+ public String[] services = null;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getAvailableServiceNames() {
+ services = oObj.getAvailableServiceNames();
+
+ for (int i = 0; i < services.length; i++) {
+ log.println("Service" + i + ": " + services[i]);
+ }
+
+ tRes.tested("getAvailableServiceNames()", true);
+ }
+
+ /**
+ * Test creates instance of the first service from names array
+ * get by <code>getAvailableServiceNames()</code>. If the array
+ * is empty than test looks for names from relation. <p>
+ *
+ * Has <b> OK </b> status if created instance isn't null. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getAvailableServiceNames() </code> : to have list of
+ * supported services </li>
+ * </ul>
+ */
+ public void _createInstance() {
+ requiredMethod("getAvailableServiceNames()");
+
+ if (services.length == 0) {
+ services = (String[]) tEnv.getObjRelation("XMSF.serviceNames");
+
+ if (services == null) {
+ log.println("No service to create.");
+ tRes.tested("createInstance()", true);
+
+ return;
+ }
+ }
+
+ String needArgs = (String) tEnv.getObjRelation("needArgs");
+
+ if (needArgs != null) {
+ log.println("The " + needArgs +
+ " doesn't support createInstance without arguments");
+ tRes.tested("createInstance()", true);
+
+ return;
+ }
+
+ boolean res = true;
+
+ for (int k = 0; k < services.length; k++) {
+ try {
+ log.println("Creating Instance: " + services[k]);
+
+ Object Inst = oObj.createInstance(services[k]);
+ res = (Inst != null);
+ } catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred during createInstance()");
+ ex.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("createInstance()", res);
+ }
+
+ /**
+ * If the relation with arguments is not specified test does nothing.
+ * In other case it tries to create instance by its name from
+ * relation of from array <code>getAvailableServiceNames()</code>
+ * method supplied. <p>
+ *
+ * Has <b> OK </b> status if the created instance is not null. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getAvailableServiceNames() </code> : to have list of
+ * supported services </li>
+ * </ul>
+ */
+ public void _createInstanceWithArguments() {
+ requiredMethod("getAvailableServiceNames()");
+
+ Object[][] args = (Object[][]) tEnv.getObjRelation("XMSF.Args");
+ String[] sNames = (String[]) tEnv.getObjRelation(
+ "XMSF.serviceNamesWithArgs");
+
+ if (args == null) {
+ log.println("Relation 'XMSF.serviceNamesWithArgs' not found");
+ log.println("The component assumed not support " +
+ "createInstanceWithArguments()");
+ tRes.tested("createInstanceWithArguments()", true);
+ } else {
+ if (sNames == null) {
+ sNames = services;
+ }
+
+ boolean res = true;
+
+ for (int k = 0; k < sNames.length; k++) {
+ log.println("Creating service '" + sNames[k] +
+ "' with arguments");
+
+ try {
+ Object Inst = oObj.createInstanceWithArguments(sNames[k],
+ args[k]);
+ res &= (Inst != null);
+ } catch (com.sun.star.uno.Exception ex) {
+ log.println(
+ "Exception occurred during createInstanceWithArguments()");
+ ex.printStackTrace(log);
+ res = false;
+ }
+ }
+
+ tRes.tested("createInstanceWithArguments()", res);
+ }
+ }
+} // finish class _XMultiServiceFactory
diff --git a/qadevOOo/tests/java/ifc/lang/_XServiceDisplayName.java b/qadevOOo/tests/java/ifc/lang/_XServiceDisplayName.java
new file mode 100644
index 000000000..f726f4ec8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XServiceDisplayName.java
@@ -0,0 +1,50 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.lang.XServiceDisplayName;
+
+/**
+* Testing <code>com.sun.star.lang.XServiceDisplayName</code>
+* interface methods:
+* <ul>
+* <li><code>getServiceDisplayName()</code></li>
+* </ul> <p>
+* @see com.sun.star.lang.XServiceDisplayName
+*/
+public class _XServiceDisplayName extends MultiMethodTest {
+
+ public XServiceDisplayName oObj = null;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getServiceDisplayName() {
+ String dn = oObj.getServiceDisplayName(new Locale("de","DE",""));
+
+ tRes.tested("getServiceDisplayName()", dn != null);
+ }
+
+} // finish class MTest
+
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XServiceInfo.java b/qadevOOo/tests/java/ifc/lang/_XServiceInfo.java
new file mode 100644
index 000000000..e1f2e0da3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XServiceInfo.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XServiceInfo;
+
+/**
+* Testing <code>com.sun.star.lang.XServiceInfo</code>
+* interface methods :
+* <ul>
+* <li><code> getImplementationName()</code></li>
+* <li><code> supportsService()</code></li>
+* <li><code> getSupportedServiceNames()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.lang.XServiceInfo
+*/
+public class _XServiceInfo extends MultiMethodTest {
+ public static XServiceInfo oObj = null;
+ public static String[] names = null;
+
+ /**
+ * Just calls the method.<p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getImplementationName() {
+ boolean result = true;
+ log.println("testing getImplementationName() ... ");
+
+ log.println("The ImplementationName is "+oObj.getImplementationName());
+ result=true;
+
+ tRes.tested("getImplementationName()", result);
+
+ } // end getImplementationName()
+
+
+ /**
+ * Just calls the method.<p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getSupportedServiceNames() {
+ boolean result = true;
+ log.println("getting supported Services...");
+ names = oObj.getSupportedServiceNames();
+ for (int i=0;i<names.length;i++) {
+ int k = i+1;
+ log.println(k+". Supported Service is "+names[i]);
+ }
+ result=true;
+
+ tRes.tested("getSupportedServiceNames()", result);
+
+ } // end getSupportedServiceNames()
+
+ /**
+ * Gets one of the service names returned by
+ * <code>getSupportedServiceNames</code> method and
+ * calls the <code>supportsService</code> method with this
+ * name. <p>
+ * Has <b>OK</b> status if <code>true</code> value is
+ * returned.
+ */
+ public void _supportsService() {
+ log.println("testing supportsService");
+ names = oObj.getSupportedServiceNames();
+ tRes.tested("supportsService()", oObj.supportsService(names[0]));
+ } // end supportsService()
+}
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XSingleServiceFactory.java b/qadevOOo/tests/java/ifc/lang/_XSingleServiceFactory.java
new file mode 100644
index 000000000..da039308c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XSingleServiceFactory.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+/**
+* Testing <code>com.sun.star.</code>
+* interface methods :lang.XSingleServiceFactory
+* <ul>
+* <li><code> createInstance()</code></li>
+* <li><code> createInstanceWithArguments()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XSingleServiceFactory.createInstance.negative'</code> :
+* <code>String</code> relation; If its value 'true' then
+* <code>createInstance</code> method for the object isn't
+* supported. </li>
+* <li> <code>'XSingleServiceFactory.arguments'</code> <b>(optional)</b>:
+* has <code>Object[]</code> type. This relation is used as
+* a parameter for <code>createInstanceWithArguments</code>
+* method call. If this relation doesn't exist test pass
+* zero length array as argument. </li>
+* <li> <code>'XSingleServiceFactory.MustSupport'</code> <b>(optional)</b>:
+* of type <code>java.lang.Class[]</code>. This is an array of UNO
+* interface classes which must be supported by created instance.
+* </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.lang.XSingleServiceFactory
+*/
+public class _XSingleServiceFactory extends MultiMethodTest {
+
+ public XSingleServiceFactory oObj = null;
+ private Class<?>[] mustSupport = null ;
+
+ @Override
+ public void before() {
+ mustSupport = (Class[]) tEnv.getObjRelation
+ ("XSingleServiceFactory.MustSupport") ;
+ }
+
+ /**
+ * Just calls the method and check the value returned. <p>
+ *
+ * Has <b>OK</b> status in case if this method is supported
+ * by object and non null value is returned, or if
+ * this method isn't supported then the method call must
+ * rise an exception or return <code>null</code> value.
+ * If the relation exists which specifies required interfaces
+ * supported by created instance then status is <b>OK</b>
+ * if all these interfaces are supported.
+ */
+ public void _createInstance() {
+ // for some objects the method should fail.
+ // If this is required the property is set to true.
+ String negStr = (String)tEnv.getObjRelation(
+ "XSingleServiceFactory.createInstance.negative");
+ boolean negative = (negStr != null && negStr.equalsIgnoreCase("true"));
+
+ if (negative) {
+ log.println("Negative test: createInstance should fail");
+ }
+
+ try {
+ log.println("Creating Instance: ");
+ Object Inst = oObj.createInstance();
+ boolean bOK = Inst != null ;
+
+ if (mustSupport != null && bOK) {
+ for (int i = 0; i < mustSupport.length; i++) {
+ Object ifc = UnoRuntime.queryInterface(mustSupport[i], Inst) ;
+ if (ifc == null) {
+ log.println(" !!! Created instance doesn't support " +
+ mustSupport[i].toString()) ;
+ }
+ bOK &= ifc != null ;
+ }
+ }
+
+ tRes.tested("createInstance()",
+ (negative && Inst == null) || (!negative && bOK));
+ } catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred during createInstance()");
+ if (negative) {
+ ex.printStackTrace(log);
+ }
+ tRes.tested("createInstance()", negative);
+ }
+ }
+
+ /**
+ * Calls the method and checks the value returned. If relation
+ * with method argument doesn't exist new zero length array
+ * is created. <p>
+ * Has <b>OK</b> status if non null value is returned.
+ * If the relation exists which specifies required interfaces
+ * supported by created instance then status is <b>OK</b>
+ * if all these interfaces are supported.
+ */
+ public void _createInstanceWithArguments() {
+ Object[] arg = (Object[])tEnv.getObjRelation(
+ "XSingleServiceFactory.arguments");
+
+ if (arg == null) {
+ arg = new Object[0];
+ }
+
+ try {
+ boolean bOK = true ;
+ log.println("Creating Instance with Argument");
+ Object Inst = oObj.createInstanceWithArguments(arg);
+ bOK &= Inst != null ;
+
+ if (mustSupport != null) {
+ for (int i = 0; i < mustSupport.length; i++) {
+ Object ifc = UnoRuntime.queryInterface(mustSupport[i], Inst) ;
+ if (ifc == null) {
+ log.println(" !!! Created instance doesn't support " +
+ mustSupport[i].toString()) ;
+ }
+ bOK &= ifc != null ;
+ }
+ }
+
+ tRes.tested("createInstanceWithArguments()", bOK);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred during createInstanceWithArguments()");
+ ex.printStackTrace(log);
+ tRes.tested("createInstanceWithArguments()",false);
+ }
+ }
+
+} // finish class _XSingleServiceFactory
+
+
diff --git a/qadevOOo/tests/java/ifc/lang/_XTypeProvider.java b/qadevOOo/tests/java/ifc/lang/_XTypeProvider.java
new file mode 100644
index 000000000..1d13d9f28
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/lang/_XTypeProvider.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.lang;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.lang.XTypeProvider</code>
+* interface methods :
+* <ul>
+* <li><code> getTypes()</code></li>
+* <li><code> getImplementationId()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.lang.XTypeProvider
+*/
+public class _XTypeProvider extends MultiMethodTest {
+
+ public static XTypeProvider oObj = null;
+ public static Type[] types = null;
+
+ /**
+ * Just calls the method.<p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getImplementationId() {
+ log.println("testing getImplementationId() ... ");
+
+ boolean result = oObj.getImplementationId().length > 0;
+
+ tRes.tested("getImplementationId()", result);
+
+ } // end getImplementationId()
+
+
+ /**
+ * Calls the method and checks the return value.<p>
+ * Has <b>OK</b> status if one of the return value equals to the
+ * type <code>com.sun.star.lang.XTypeProvider</code>.
+ */
+ public void _getTypes() {
+ boolean result = false;
+ log.println("getting Types...");
+ types = oObj.getTypes();
+ for (int i=0;i<types.length;i++) {
+ int k = i+1;
+ log.println(k+". Type is "+types[i].toString());
+ if (types[i].toString().equals
+ ("Type[com.sun.star.lang.XTypeProvider]")) {
+ result = true;
+ }
+ }
+ if (!result) {
+ log.println("Component must provide Type "
+ +"<com.sun.star.lang.XTypeProvider>");
+ }
+
+ tRes.tested("getTypes()", result);
+
+ } // end getTypes()
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_LinguProperties.java b/qadevOOo/tests/java/ifc/linguistic2/_LinguProperties.java
new file mode 100644
index 000000000..930986d56
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_LinguProperties.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.linguistic2.LinguProperties</code>
+* service properties:
+* <ul>
+* <li><code>'IsGermanPreReform'</code></li>
+* <li><code>'IsUseDictionaryList'</code></li>
+* <li><code>'IsIgnoreControlCharacters'</code></li>
+* <li><code>'IsSpellUpperCase'</code></li>
+* <li><code>'IsSpellWithDigits'</code></li>
+* <li><code>'IsSpellCapitalization'</code></li>
+* <li><code>'HyphMinLeading'</code></li>
+* <li><code>'HyphMinTrailing'</code></li>
+* <li><code>'HyphMinWordLength'</code></li>
+* <li><code>'DefaultLocale'</code></li>
+* <li><code>'IsHyphAuto'</code></li>
+* <li><code>'IsHyphSpecial'</code></li>
+* <li><code>'IsSpellAuto'</code></li>
+* <li><code>'IsSpellHide'</code></li>
+* <li><code>'IsSpellInAllLanguages'</code></li>
+* <li><code>'IsSpellSpecial'</code></li>
+* <li><code>'IsWrapReverse'</code></li>
+* <li><code>'DefaultLocale_CJK'</code></li>
+* <li><code>'DefaultLocale_CTL'</code></li>
+* </ul>
+* @see com.sun.star.linguistic2.LinguProperties
+*/
+public class _LinguProperties extends MultiPropertyTest {
+} // finish class _LinguProperties
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XAvailableLocales.java b/qadevOOo/tests/java/ifc/linguistic2/_XAvailableLocales.java
new file mode 100644
index 000000000..0fb7e4f88
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XAvailableLocales.java
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.XAvailableLocales;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XAvailableLocales</code>
+* interface methods:
+* <ul>
+* <li><code>getAvailableLocales()</code></li>
+* </ul> <p>
+* @see com.sun.star.linguistic2.XAvailableLocales
+*/
+public class _XAvailableLocales extends MultiMethodTest {
+
+ public XAvailableLocales oObj = null;
+
+ /**
+ * Test calls the method, stores returned value and checks it. <p>
+ * Has <b> OK </b> status if length of returned array isn't zero. <p>
+ */
+ public void _getAvailableLocales() {
+ Locale[] locales = oObj.getAvailableLocales("com.sun.star.linguistic2.Hyphenator");
+ tRes.tested("getAvailableLocales()", locales.length > 0);
+ }
+
+} // finish class XAvailableLocales
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XDictionaryList.java b/qadevOOo/tests/java/ifc/linguistic2/_XDictionaryList.java
new file mode 100644
index 000000000..edbdc1a86
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XDictionaryList.java
@@ -0,0 +1,286 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.DictionaryListEvent;
+import com.sun.star.linguistic2.XDictionary;
+import com.sun.star.linguistic2.XDictionaryList;
+import com.sun.star.linguistic2.XDictionaryListEventListener;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XDictionaryList</code>
+* interface methods:
+* <ul>
+* <li><code>getCount()</code></li>
+* <li><code>getDictionaries()</code></li>
+* <li><code>getDictionaryByName()</code></li>
+* <li><code>addDictionary()</code></li>
+* <li><code>removeDictionary()</code></li>
+* <li><code>addDictionaryListEventListener()</code></li>
+* <li><code>removeDictionaryListEventListener()</code></li>
+* <li><code>beginCollectEvents()</code></li>
+* <li><code>endCollectEvents()</code></li>
+* <li><code>flushEvents()</code></li>
+* <li><code>createDictionary()</code></li>
+* </ul> <p>
+* @see com.sun.star.linguistic2.XDictionaryList
+*/
+public class _XDictionaryList extends MultiMethodTest {
+
+ public XDictionaryList oObj = null;
+ public XDictionary addedDic = null;
+
+ /**
+ * Flag for testing of listeners.
+ */
+ public boolean listenerCalled = false;
+
+ /**
+ * Class implements interface <code>XDictionaryListEventListener</code>
+ * for test method <code>addDictionaryListEventListener</code>.
+ * @see com.sun.star.linguistic2.XDictionaryListEventListener
+ */
+ public class MyDictionaryListEventListener implements
+ XDictionaryListEventListener {
+
+ public void disposing ( EventObject oEvent ) {
+ log.println("Listener has been disposed");
+ }
+ public void processDictionaryListEvent( DictionaryListEvent aDicEvent) {
+ listenerCalled = true;
+ }
+ }
+
+ XDictionaryListEventListener listener = new MyDictionaryListEventListener();
+
+ short count = 0;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is greater than zero. <p>
+ */
+ public void _getCount() {
+ count = oObj.getCount();
+ tRes.tested("getCount()",(count > 0) );
+ }
+
+ /**
+ * Test calls the method and checks number of obtained dictionaries
+ * with value that was returned by method <code>getCount</code>. <p>
+ * Has <b> OK </b> status if values are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getCount() </code> : to have number of dictionaries </li>
+ * </ul>
+ */
+ public void _getDictionaries() {
+ requiredMethod("getCount()");
+
+ XDictionary[] dics = oObj.getDictionaries();
+ boolean res = (dics.length == count);
+ if (!res) {
+ log.println("Expected: " + oObj.getCount());
+ log.println("Gained: " + dics.length);
+ }
+ tRes.tested("getDictionaries()", res);
+ }
+
+ /**
+ * Test calls the method, makes some actions that leads to event
+ * <code>processDictionaryListEvent</code>, removes listener, checks flag
+ * <code>listenerCalled</code> and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is true and value of flag
+ * <code>listenerCalled</code> is true. <p>
+ */
+ public void _addDictionaryListEventListener() {
+ listenerCalled = false;
+
+ XDictionary xDic = oObj.createDictionary("ListenDic",
+ new Locale("en","US","WIN"),
+ com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
+
+ boolean res = oObj.addDictionaryListEventListener(listener, false);
+
+ oObj.flushEvents();
+ oObj.addDictionary(xDic);
+ xDic.add("Positive", false, "");
+ xDic.setActive(true);
+ oObj.flushEvents();
+ oObj.removeDictionary(xDic);
+
+ oObj.removeDictionaryListEventListener(listener);
+
+ tRes.tested("addDictionaryListEventListener()",listenerCalled && res);
+ }
+
+ /**
+ * Test calls the method, makes some actions that leads to event
+ * <code>processDictionaryListEvent</code>, checks flag
+ * <code>listenerCalled</code> and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is false and value of flag
+ * <code>listenerCalled</code> is false. <p>
+ */
+ public void _removeDictionaryListEventListener() {
+ listenerCalled = false;
+
+ XDictionary xDic = oObj.createDictionary("ListenDic",
+ new Locale("en","US","WIN"),
+ com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
+
+ oObj.addDictionaryListEventListener(listener,false);
+
+ oObj.flushEvents();
+ oObj.addDictionary(xDic);
+ xDic.add("Positive", false,"");
+ xDic.setActive(true);
+
+ listenerCalled = false;
+ boolean res = oObj.removeDictionaryListEventListener(listener);
+
+ oObj.flushEvents();
+ oObj.removeDictionary(xDic);
+
+ tRes.tested(
+ "removeDictionaryListEventListener()",
+ !listenerCalled && res );
+ }
+
+ /**
+ * Test creates new dictionary, adds the dictionary to list and compares
+ * number of dictionaries after adding with number of dictionaries before.<p>
+ * Has <b> OK </b> status if number of dictionaries after method call is
+ * greater than number of dictionaries before method call. <p>
+ */
+ public void _addDictionary() {
+ short previous = oObj.getCount();
+ addedDic = oObj.createDictionary("AddedDic",new Locale("en","US","WIN"),
+ com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
+ addedDic.add("Positive",false,"");
+
+ oObj.addDictionary(addedDic);
+
+ short after = oObj.getCount();
+
+ tRes.tested( "addDictionary()", (after > previous) );
+ }
+
+ /**
+ * Test calls the method and compares number of dictionaries
+ * before method call and after. <p>
+ * Has <b> OK </b> status if number of dictionaries before method call is
+ * less than number of dictionaries after method call. <p>
+ */
+ public void _removeDictionary() {
+ short previous = oObj.getCount();
+ oObj.removeDictionary(addedDic);
+ short after = oObj.getCount();
+ tRes.tested("removeDictionary()",(after < previous) );
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getDictionaryByName() {
+ XDictionary getting = oObj.getDictionaryByName("NegativDic");
+ tRes.tested("getDictionaryByName()", getting != null );
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _createDictionary() {
+ XDictionary tmpDic = oObj.createDictionary("AddedDic",
+ new Locale("en","US","WIN"),
+ com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
+ tRes.tested("createDictionary()", tmpDic != null );
+ }
+
+ /**
+ * Test creates dictionary, adds dictionary list event listener,
+ * begins collect events, makes some actions that leads to event
+ * <code>processDictionaryListEvent</code>, ends collect events,
+ * removes the listener and checks the flag <code>listenerCalled</code> . <p>
+ * Has <b> OK </b> status if value of the flag is true. <p>
+ */
+ public void _beginCollectEvents() {
+ listenerCalled = false;
+
+ XDictionary xDic = oObj.createDictionary("ListenDic",
+ new Locale("en","US","WIN"),
+ com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
+
+ oObj.addDictionaryListEventListener(listener,false);
+ oObj.beginCollectEvents();
+
+ oObj.addDictionary(xDic);
+ xDic.add("Positive",false,"");
+ xDic.setActive(true);
+
+ oObj.removeDictionary(xDic);
+ oObj.endCollectEvents();
+
+ oObj.removeDictionaryListEventListener(listener);
+
+ tRes.tested("beginCollectEvents()", listenerCalled );
+ }
+
+ /**
+ * Test does nothing. <p>
+ * Has <b> OK </b> status if method
+ * <code>addDictionaryListEventListener()</code> was completed
+ * successfully. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addDictionaryListEventListener() </code> :
+ * if listener adding worked, flushEvents was already used and worked </li>
+ * </ul>
+ */
+ public void _flushEvents() {
+ requiredMethod("addDictionaryListEventListener()");
+ // if listener adding worked, flushEvents was already used and worked
+ tRes.tested("flushEvents()",true);
+ }
+
+ /**
+ * Test does nothing. <p>
+ * Has <b> OK </b> status if method
+ * <code>beginCollectEvents()</code> was completed successfully. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> beginCollectEvents() </code> :
+ * if beginCollectEvents() worked then endCollectEvents was already
+ * used and worked </li>
+ * </ul>
+ */
+ public void _endCollectEvents() {
+ requiredMethod("beginCollectEvents()");
+ // if beginCollectEvents() worked, endCollectEvents
+ // was already used and worked
+ tRes.tested("endCollectEvents()",true);
+ }
+
+} // finish class _XDictionaryList
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XHyphenator.java b/qadevOOo/tests/java/ifc/linguistic2/_XHyphenator.java
new file mode 100644
index 000000000..907cd5aeb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XHyphenator.java
@@ -0,0 +1,102 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.XHyphenatedWord;
+import com.sun.star.linguistic2.XHyphenator;
+import com.sun.star.linguistic2.XPossibleHyphens;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XHyphenator</code>
+* interface methods:
+* <ul>
+* <li><code>hyphenate()</code></li>
+* <li><code>queryAlternativeSpelling()</code></li>
+* <li><code>createPossibleHyphens()</code></li>
+* </ul><p>
+* @see com.sun.star.linguistic2.XHyphenator
+*/
+public class _XHyphenator extends MultiMethodTest {
+
+ public XHyphenator oObj = null;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _hyphenate() {
+ boolean res = true;
+ PropertyValue[] Props = null;
+ try {
+ XHyphenatedWord result = oObj.hyphenate(
+ "wacker",new Locale("de","DE",""),(short)3,Props);
+ res &= (result != null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'hyphenate'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+ tRes.tested("hyphenate()",res);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _queryAlternativeSpelling() {
+ boolean res = true;
+ PropertyValue[] Props = null;
+ try {
+ XHyphenatedWord result = oObj.queryAlternativeSpelling(
+ "wacker",new Locale("de","DE",""),(short)2,Props);
+ res &= (result != null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'queryAlternativeSpelling'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+ tRes.tested("queryAlternativeSpelling()",res);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _createPossibleHyphens() {
+ boolean res = true;
+ PropertyValue[] Props = null;
+ try {
+ XPossibleHyphens result = oObj.createPossibleHyphens(
+ "wacker",new Locale("de","DE",""),Props);
+ res &= (result != null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'createPossibleHyphens'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+ tRes.tested("createPossibleHyphens()",res);
+ }
+
+} // \u0422\u044B finish class XHyphenator
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceEventBroadcaster.java b/qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceEventBroadcaster.java
new file mode 100644
index 000000000..9396ebf28
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceEventBroadcaster.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.linguistic2.LinguServiceEvent;
+import com.sun.star.linguistic2.XLinguServiceEventBroadcaster;
+import com.sun.star.linguistic2.XLinguServiceEventListener;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XLinguServiceEventBroadcaster</code>
+* interface methods:
+* <ul>
+* <li><code>addLinguServiceEventListener()</code></li>
+* <li><code>removeLinguServiceEventListener()</code></li>
+* </ul><p>
+* @see com.sun.star.linguistic2.XLinguServiceEventBroadcaster
+*/
+public class _XLinguServiceEventBroadcaster extends MultiMethodTest {
+
+ public XLinguServiceEventBroadcaster oObj = null;
+
+ /**
+ * Class implements interface <code>XLinguServiceEventListener</code>
+ * for test method <code>addLinguServiceEventListener</code>.
+ * @see com.sun.star.linguistic2.XLinguServiceEventListener
+ */
+ public class MyLinguServiceEventListener implements
+ XLinguServiceEventListener {
+ public void disposing ( EventObject oEvent ) {
+ log.println("Listener has been disposed");
+ }
+ public void processLinguServiceEvent(LinguServiceEvent aServiceEvent) {
+ log.println("Listener called");
+ }
+
+ }
+
+ XLinguServiceEventListener listener = new MyLinguServiceEventListener();
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is true. <p>
+ */
+ public void _addLinguServiceEventListener() {
+ boolean res = true;
+
+ res = oObj.addLinguServiceEventListener(listener);
+
+ tRes.tested("addLinguServiceEventListener()",res);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is true. <p>
+ */
+ public void _removeLinguServiceEventListener() {
+ boolean res = true;
+
+ res = oObj.removeLinguServiceEventListener(listener);
+
+ tRes.tested("removeLinguServiceEventListener()",res);
+ }
+
+} // finish class XLinguServiceEventBroadcaster
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceManager.java b/qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceManager.java
new file mode 100644
index 000000000..2f71ea372
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceManager.java
@@ -0,0 +1,174 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.LinguServiceEvent;
+import com.sun.star.linguistic2.XHyphenator;
+import com.sun.star.linguistic2.XLinguServiceEventListener;
+import com.sun.star.linguistic2.XLinguServiceManager;
+import com.sun.star.linguistic2.XSpellChecker;
+import com.sun.star.linguistic2.XThesaurus;
+
+/**
+*Testing <code>com.sun.star.linguistic2.XLinguServiceManager</code>
+* interface methods:
+* <ul>
+* <li><code>getSpellChecker()</code></li>
+* <li><code>getHyphenator()</code></li>
+* <li><code>getThesaurus()</code></li>
+* <li><code>addLinguServiceManagerListener()</code></li>
+* <li><code>removeLinguServiceManagerListener()</code></li>
+* <li><code>getAvailableServices()</code></li>
+* <li><code>setConfiguredServices()</code></li>
+* <li><code>getConfiguredServices()</code></li>
+* </ul> <p>
+*@see com.sun.star.linguistic2.XLinguServiceManager
+*/
+public class _XLinguServiceManager extends MultiMethodTest {
+
+ public XLinguServiceManager oObj = null;
+
+ /**
+ * Class implements interface <code>XLinguServiceEventListener</code>
+ * for test method <code>addLinguServiceManagerListener</code>.
+ * @see com.sun.star.linguistic2.XLinguServiceEventListener
+ */
+ public class MyLinguServiceEventListener implements
+ XLinguServiceEventListener {
+ public void disposing ( EventObject oEvent ) {
+ log.println("Listener has been disposed");
+ }
+ public void processLinguServiceEvent(LinguServiceEvent aServiceEvent) {
+ log.println("Listener called");
+ }
+ }
+
+ XLinguServiceEventListener listener = new MyLinguServiceEventListener();
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getSpellChecker() {
+ XSpellChecker SC = oObj.getSpellChecker();
+ tRes.tested("getSpellChecker()", SC != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getHyphenator() {
+ XHyphenator HN = oObj.getHyphenator();
+ tRes.tested("getHyphenator()", HN != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getThesaurus() {
+ XThesaurus TS = oObj.getThesaurus();
+ tRes.tested("getThesaurus()", TS != null);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is equal to true. <p>
+ */
+ public void _addLinguServiceManagerListener() {
+ boolean res = oObj.addLinguServiceManagerListener(listener);
+ tRes.tested("addLinguServiceManagerListener()", res);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value is equal to true. <p>
+ */
+ public void _removeLinguServiceManagerListener() {
+ boolean res = oObj.removeLinguServiceManagerListener(listener);
+ tRes.tested("removeLinguServiceManagerListener()",res);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if length of returned array is
+ * greater than zero.<p>
+ */
+ public void _getAvailableServices() {
+ String[] services = oObj.getAvailableServices(
+ "com.sun.star.linguistic2.Hyphenator",
+ new Locale("en", "US", "") );
+ tRes.tested("getAvailableServices()", services.length > 0);
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if length of returned array is
+ * greater than zero.<p>
+ */
+ public void _getConfiguredServices() {
+ String[] services = oObj.getConfiguredServices(
+ "com.sun.star.linguistic2.Hyphenator",
+ new Locale("en", "US", "") );
+ tRes.tested("getConfiguredServices()", services.length > 0);
+ }
+
+ /**
+ * Test sets empty list of service, checks value returned
+ * by method <code>getConfiguredServices()</code> and all services
+ * restored finally. <p>
+ * Has <b> OK </b> status if length of obtained service list equal to zero.
+ * <p>The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getConfiguredServices() </code></li>
+ * </ul>
+ */
+ public void _setConfiguredServices() {
+ requiredMethod("getConfiguredServices()");
+
+ String[] services = oObj.getConfiguredServices(
+ "com.sun.star.linguistic2.Hyphenator",new Locale("en","US",""));
+
+ String[] empty = new String[0];
+ oObj.setConfiguredServices(
+ "com.sun.star.linguistic2.Hyphenator",
+ new Locale("en", "US", ""),
+ empty );
+
+ String[] get = oObj.getConfiguredServices(
+ "com.sun.star.linguistic2.Hyphenator", new Locale("en","US",""));
+
+ boolean res = (get.length == 0);
+
+ oObj.setConfiguredServices(
+ "com.sun.star.linguistic2.Hyphenator",
+ new Locale("en", "US", ""),
+ services );
+
+ tRes.tested("setConfiguredServices()", res);
+ }
+
+} // finish class _XLinguServiceManager
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XSearchableDictionaryList.java b/qadevOOo/tests/java/ifc/linguistic2/_XSearchableDictionaryList.java
new file mode 100644
index 000000000..a22ecf2c8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XSearchableDictionaryList.java
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.XDictionaryEntry;
+import com.sun.star.linguistic2.XSearchableDictionaryList;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XSearchableDictionaryList</code>
+* interface methods:
+* <ul>
+* <li><code>queryDictionaryEntry()</code></li>
+* </ul> <p>
+* @see com.sun.star.linguistic2.XSearchableDictionaryList
+*/
+public class _XSearchableDictionaryList extends MultiMethodTest {
+
+ public XSearchableDictionaryList oObj = null;
+
+ /**
+ * Test calls the method for negative dictionary and for positive dictionary
+ * and checks returned values. <p>
+ * Has <b> OK </b> status if returned values are not null. <p>
+ */
+ public void _queryDictionaryEntry() {
+ XDictionaryEntry aNegativEntry = oObj.queryDictionaryEntry("Negative",
+ new Locale("en","US","WIN"),false,true);
+ if (aNegativEntry == null) {
+ log.println("'queryDictionary' didn't work for negative dictionaries");
+ } else {
+ log.println("'queryDictionary' works for negative dictionaries");
+ }
+ XDictionaryEntry aPositivEntry = oObj.queryDictionaryEntry("Positive",
+ new Locale("en","US","WIN"),true,true);
+ if (aPositivEntry == null) {
+ log.println("'queryDictionary' didn't work for positive dictionaries");
+ } else {
+ log.println("'queryDictionary' works for positive dictionaries");
+ }
+ tRes.tested("queryDictionaryEntry()",(aNegativEntry != null) &&
+ (aPositivEntry != null) );
+ }
+
+} // finish class _XSearchableDictionaryList
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XSpellChecker.java b/qadevOOo/tests/java/ifc/linguistic2/_XSpellChecker.java
new file mode 100644
index 000000000..75eaf8626
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XSpellChecker.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.XSpellAlternatives;
+import com.sun.star.linguistic2.XSpellChecker;
+import lib.Status;
+import lib.StatusException;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XSpellChecker</code>
+* interface methods:
+* <ul>
+* <li><code>isValid()</code></li>
+* <li><code>spell()</code></li>
+* </ul><p>
+* @see com.sun.star.linguistic2.XSpellChecker
+*/
+public class _XSpellChecker extends MultiMethodTest {
+
+ public XSpellChecker oObj = null;
+ XSpellChecker alternative = null;
+
+ @Override
+ public void before() {
+ alternative = (XSpellChecker) tEnv.getObjRelation("AlternativeChecker");
+ if (alternative == null) throw new StatusException(Status.failed
+ ("Relation AlternativeChecker not found")) ;
+ }
+
+ /**
+ * Test calls the method for a correctly spelled word and
+ * for an incorrectly spelled word and checks returned values. <p>
+ * Has <b> OK </b> status if returned value is equal to true in first case,
+ * if returned value is equal to false in second case and no exceptions
+ * were thrown. <p>
+ */
+ public void _isValid() {
+ boolean res = true;
+ try {
+ log.println("Checking 'original' Spellchecker");
+ PropertyValue[] empty = new PropertyValue[0] ;
+ res &= oObj.isValid("Sun", new Locale("en","US",""), empty);
+ res &= !oObj.isValid("Summersun", new Locale("en","US","") ,empty);
+ log.println("Result so far is - "+ (res ? "OK" : "failed"));
+ log.println("Checking alternative Spellchecker");
+ res &= alternative.isValid("Sun", new Locale("en","US",""), empty);
+ res &= !alternative.isValid("Summersun", new Locale("en","US","") ,empty);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'isValid'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+ tRes.tested("isValid()",res);
+ }
+
+ /**
+ * Test calls the method for an incorrectly spelled word
+ * and checks returned values. <p>
+ * Has <b> OK </b> status if at least one spell alternative exists
+ * and no exceptions were thrown. <p>
+ */
+ public void _spell() {
+ boolean res = true;
+ try {
+ log.println("Checking 'original' Spellchecker");
+ PropertyValue[] empty = new PropertyValue[0] ;
+ XSpellAlternatives alt = oObj.spell(
+ "Summersun",new Locale("en","US",""),empty);
+ String alternatives = alt.getAlternatives()[0];
+ res = (alternatives != null);
+ log.println("Result so far is - "+ (res ? "OK" : "failed"));
+ log.println("Checking alternative Spellchecker");
+ alt =alternative.spell(
+ "Summersun",new Locale("en","US",""),empty);
+ alternatives = alt.getAlternatives()[0];
+ res &= (alternatives != null);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'spell'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+ tRes.tested("spell()",res);
+ }
+
+} // finish class MTest
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XSupportedLocales.java b/qadevOOo/tests/java/ifc/linguistic2/_XSupportedLocales.java
new file mode 100644
index 000000000..a9536b8d2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XSupportedLocales.java
@@ -0,0 +1,80 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.XSupportedLocales;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XSupportedLocales</code>
+* interface methods:
+* <ul>
+* <li><code>getLocales()</code></li>
+* <li><code>hasLocale()</code></li>
+* </ul> <p>
+* @see com.sun.star.linguistic2.XSupportedLocales
+*/
+public class _XSupportedLocales extends MultiMethodTest {
+
+ public XSupportedLocales oObj = null;
+ public Locale[] locales = new Locale[0];
+
+ /**
+ * Test calls the method, stores returned value and checks it. <p>
+ * Has <b> OK </b> status if length of returned array isn't zero. <p>
+ */
+ public void _getLocales() {
+ locales = oObj.getLocales();
+ tRes.tested("getLocales()", locales.length > 0);
+ }
+
+ /**
+ * Test calls the method for every language from list of supported languages,
+ * calls the method for one unsupported language and checks
+ * all returned values. <p>
+ * Has <b> OK </b> status if all returned values for supported languages
+ * are equal to true and if returned value for unsupported language is equal
+ * to false. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getLocales() </code> : to have list of
+ * all supported languages </li>
+ * </ul>
+ */
+ public void _hasLocale() {
+ requiredMethod("getLocales()");
+ boolean res = true;
+
+ // first check all available locales
+ for (int i=0; i< locales.length; i++) {
+ res &= oObj.hasLocale(locales[i]);
+ }
+
+ // now create an invalid locale
+ Locale invalid = new Locale("myLanguage","myCountry","");
+ res &= !oObj.hasLocale(invalid);
+
+ tRes.tested("hasLocale()", res);
+ }
+
+} // finish class XSupportedLocales
+
+
diff --git a/qadevOOo/tests/java/ifc/linguistic2/_XThesaurus.java b/qadevOOo/tests/java/ifc/linguistic2/_XThesaurus.java
new file mode 100644
index 000000000..8bfcccf6e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/linguistic2/_XThesaurus.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.linguistic2;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.Locale;
+import com.sun.star.linguistic2.XMeaning;
+import com.sun.star.linguistic2.XThesaurus;
+
+/**
+* Testing <code>com.sun.star.linguistic2.XThesaurus</code>
+* interface methods:
+* <ul>
+* <li><code>queryMeanings()</code></li>
+* </ul> <p>
+* @see com.sun.star.linguistic2.XThesaurus
+*/
+public class _XThesaurus extends MultiMethodTest {
+
+ public XThesaurus oObj = null;
+
+ /**
+ * Test calls the method for one of supported language and checks
+ * returned value. <p>
+ * Has <b> OK </b> status if returned array is not empty
+ * and no exceptions were thrown. <p>
+ */
+ public void _queryMeanings() {
+ boolean res = true;
+ try {
+ XMeaning[] mean = oObj.queryMeanings(
+ "survive",new Locale("en","US",""), new PropertyValue[0]);
+ res = (mean.length > 0);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'queryMeanings'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+ tRes.tested("queryMeanings()",res);
+ }
+
+
+} // finish class
+
+
diff --git a/qadevOOo/tests/java/ifc/loader/_XImplementationLoader.java b/qadevOOo/tests/java/ifc/loader/_XImplementationLoader.java
new file mode 100644
index 000000000..1a8a05409
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/loader/_XImplementationLoader.java
@@ -0,0 +1,180 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.loader;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+import util.RegistryTools;
+
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.loader.CannotActivateFactoryException;
+import com.sun.star.loader.XImplementationLoader;
+import com.sun.star.registry.CannotRegisterImplementationException;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Testing <code>com.sun.star.loader.XImplementationLoader</code>
+ * interface methods :
+ * <ul>
+ * <li><code> activate()</code></li>
+ * <li><code> writeRegistryInfo()</code></li>
+ * </ul> <p>
+ *
+ * The following object relations required :
+ * <ul>
+ * <li> <code>'ImplementationLoader'</code> : service which is
+ * responsible for loading implementations. </li>
+ * <li> <code>'ImplementationUrl'</code> : implementation file location. </li>
+ * <li> <code>'ImplementationName'</code> : Name of the implementation.</li>
+ * </ul> <p>
+ * Object has to be recreated after this test. <p>
+ * Test is <b> Not </b> multithread compliant.
+ */
+public class _XImplementationLoader extends MultiMethodTest {
+
+ public XImplementationLoader oObj = null;
+ private String implLoader = null ;
+ private String implUrl = null ;
+ private String implName = null ;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ implLoader = (String) tEnv.getObjRelation("ImplementationLoader") ;
+ implUrl = (String) tEnv.getObjRelation("ImplementationUrl") ;
+ implName = (String) tEnv.getObjRelation("ImplementationName") ;
+
+ if (implLoader == null || implUrl == null || implName == null)
+ throw new StatusException("One of object relations not found",
+ new NullPointerException()) ;
+ }
+
+ /**
+ * First registry file created, and the root key retrieved.
+ * Then method <code>writeRegistryInfo</code> called and it must
+ * write some info into the registry root key. After all registry
+ * is destroyed.<p>
+ * Has OK status if some info was written into registry.
+ */
+ public void _writeRegistryInfo() {
+ XRegistryKey key ;
+ XSimpleRegistry xReg = null ;
+
+ String tmpDir = util.utils.getOfficeTempDir(tParam.getMSF());
+
+ try {
+ xReg = RegistryTools.createRegistryService
+ (tParam.getMSF()) ;
+
+ xReg.open(tmpDir + "XImpLoader_tmp.rdb", false, true) ;
+
+ key = xReg.getRootKey() ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can not create registry for writing") ;
+ e.printStackTrace(log) ;
+ tRes.tested("writeRegistryInfo()", false) ;
+ return ;
+ }
+
+ boolean rc ;
+ try {
+ rc = oObj.writeRegistryInfo(key, implLoader, implUrl) ;
+ } catch (CannotRegisterImplementationException e) {
+ throw new StatusException("Can not register implementation", e) ;
+ }
+
+ if (!rc)
+ log.println("Method returned false value") ;
+
+ String[] keys ;
+ try {
+ keys = key.getKeyNames() ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error retrieving key names from registry") ;
+ tRes.tested("writeRegistryInfo()", false) ;
+ return ;
+ }
+
+ // destroying registry file
+ try {
+ xReg.close() ;
+ xReg.destroy() ;
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ log.println("Can't destroy registry file.") ;
+ }
+
+ tRes.tested("writeRegistryInfo()", rc && keys.length > 0) ;
+ }
+
+ /**
+ * Tries to activate the implementation. <p>
+ *
+ * Has OK status if not <code>null</code> value returned by method,
+ * if its implementation name is the same as expected.
+ */
+ public void _activate() {
+ boolean ok = true ;
+ XInterface factory = null ;
+
+ try {
+ factory = (XInterface) oObj.activate
+ (implName, implLoader, implUrl, null) ;
+ } catch (CannotActivateFactoryException e) {
+ throw new StatusException("Can not activate factory", e) ;
+ }
+
+ XServiceInfo xServInf = UnoRuntime.queryInterface
+ (XServiceInfo.class, factory) ;
+
+ if (xServInf == null) {
+ if (factory == null) {
+ log.println("activate() returns null - FAILED.");
+ } else {
+ log.println("Activated implementation doesn't support "+
+ "XServiceInfo - FAILED.");
+ }
+ ok = false ;
+ } else {
+ String gImpName = xServInf.getImplementationName() ;
+ log.println("Implementation name returned :" + gImpName);
+
+ if (!gImpName.equals(implName)) {
+ log.println("!!! But other name was expected :" + implName);
+ ok = false ;
+ }
+ }
+
+ tRes.tested("activate()", ok) ;
+ }
+
+ /**
+ * Forces object recreation.
+ */
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/presentation/_OutlineView.java b/qadevOOo/tests/java/ifc/presentation/_OutlineView.java
new file mode 100644
index 000000000..f702a7b4c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_OutlineView.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiPropertyTest;
+
+public class _OutlineView extends MultiPropertyTest {
+
+} // finish class _PresentationView
+
+
diff --git a/qadevOOo/tests/java/ifc/presentation/_Presentation.java b/qadevOOo/tests/java/ifc/presentation/_Presentation.java
new file mode 100644
index 000000000..28f8a5aab
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_Presentation.java
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiPropertyTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.presentation.XPresentation;
+
+/**
+* Testing <code>com.sun.star.presentation.Presentation</code>
+* service properties :
+* <ul>
+* <li><code> AllowAnimations</code></li>
+* <li><code> CustomShow</code></li>
+* <li><code> FirstPage</code></li>
+* <li><code> IsAlwaysOnTop</code></li>
+* <li><code> IsAutomatic</code></li>
+* <li><code> IsEndless</code></li>
+* <li><code> IsFullScreen</code></li>
+* <li><code> IsLivePresentation</code></li>
+* <li><code> IsMouseVisible</code></li>
+* <li><code> Pause</code></li>
+* <li><code> StartWithNavigator</code></li>
+* <li><code> UsePen</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Presentation'</code> (of type <code>XPresentation</code>):
+* for test of property <code>IsLivePresentation</code>
+* presentation start needed </li>
+* <ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.presentation.Presentation
+* @see com.sun.star.presentation.XPresentation
+*/
+public class _Presentation extends MultiPropertyTest {
+
+ public void _IsLivePresentation() {
+ XPresentation aPresentation = (XPresentation)
+ tEnv.getObjRelation("Presentation");
+ if (aPresentation == null) throw new StatusException(Status.failed
+ ("Relation 'Presentation' not found"));
+
+ aPresentation.start();
+ testProperty("IsLivePresentation");
+ }
+
+ protected PropertyTester CustomShowTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if ( ((String)oldValue).equals("SecondPresentation") ) {
+ return "FirstPresentation";
+ } else {
+ return "SecondPresentation";
+ }
+ }
+ };
+
+ public void _CustomShow() {
+ testProperty("CustomShow", CustomShowTester);
+ }
+} // finish class _Presentation
+
+
diff --git a/qadevOOo/tests/java/ifc/presentation/_PresentationView.java b/qadevOOo/tests/java/ifc/presentation/_PresentationView.java
new file mode 100644
index 000000000..0846877b1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_PresentationView.java
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiPropertyTest;
+
+public class _PresentationView extends MultiPropertyTest {
+
+ /**
+ * Property tester which changes DrawPage.
+ */
+ protected PropertyTester PageTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(tEnv.getObjRelation("FirstPage")))
+ return tEnv.getObjRelation("SecondPage"); else
+ return tEnv.getObjRelation("FirstPage");
+ }
+ } ;
+
+ /**
+ * This property must be an XDrawPage
+ */
+ public void _CurrentPage() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("CurrentPage", PageTester) ;
+ }
+
+} // finish class _PresentationView
+
+
diff --git a/qadevOOo/tests/java/ifc/presentation/_PreviewView.java b/qadevOOo/tests/java/ifc/presentation/_PreviewView.java
new file mode 100644
index 000000000..a1a7a6ec5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_PreviewView.java
@@ -0,0 +1,30 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiPropertyTest;
+
+public class _PreviewView extends MultiPropertyTest {
+
+ public void _CurrentPage() {
+ Object obj1 = tEnv.getObjRelation("FirstPage");
+ Object obj2 = tEnv.getObjRelation("SecondPage");
+ testProperty("CurrentPage",obj1,obj2);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/presentation/_SlidesView.java b/qadevOOo/tests/java/ifc/presentation/_SlidesView.java
new file mode 100644
index 000000000..db688f604
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_SlidesView.java
@@ -0,0 +1,25 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiPropertyTest;
+
+public class _SlidesView extends MultiPropertyTest {
+
+}
diff --git a/qadevOOo/tests/java/ifc/presentation/_XCustomPresentationSupplier.java b/qadevOOo/tests/java/ifc/presentation/_XCustomPresentationSupplier.java
new file mode 100644
index 000000000..8ee1d2509
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_XCustomPresentationSupplier.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.presentation.XCustomPresentationSupplier;
+
+/**
+* Testing <code>com.sun.star.presentation.XCustomPresentationSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getCustomPresentations()</code></li>
+* </ul> <p>
+* @see com.sun.star.presentation.XCustomPresentationSupplier
+*/
+public class _XCustomPresentationSupplier extends MultiMethodTest {
+
+ public XCustomPresentationSupplier oObj = null;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getCustomPresentations() {
+ XNameAccess NA = oObj.getCustomPresentations();
+ tRes.tested("getCustomPresentations()", NA != null);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/presentation/_XPresentation.java b/qadevOOo/tests/java/ifc/presentation/_XPresentation.java
new file mode 100644
index 000000000..c68af3b77
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_XPresentation.java
@@ -0,0 +1,74 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.presentation.XPresentation;
+
+/**
+* Testing <code>com.sun.star.presentation.XPresentation</code>
+* interface methods :
+* <ul>
+* <li><code> start()</code></li>
+* <li><code> end()</code></li>
+* <li><code> rehearseTimings()</code></li>
+* </ul> <p>
+* @see com.sun.star.presentation.XPresentation
+*/
+public class _XPresentation extends MultiMethodTest {
+
+ public XPresentation oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ */
+ public void _start() {
+ oObj.start();
+ tRes.tested("start()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> start() </code> : presentation must be started before</li>
+ * </ul>
+ */
+ public void _end() {
+ requiredMethod("start()");
+
+ oObj.end();
+ tRes.tested("end()", true);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns. <p>
+ */
+ public void _rehearseTimings() {
+ oObj.rehearseTimings();
+ tRes.tested("rehearseTimings()", true);
+ }
+
+} // finish class _XPresentation
+
+
diff --git a/qadevOOo/tests/java/ifc/presentation/_XPresentationSupplier.java b/qadevOOo/tests/java/ifc/presentation/_XPresentationSupplier.java
new file mode 100644
index 000000000..6c32e36b4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/presentation/_XPresentationSupplier.java
@@ -0,0 +1,49 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.presentation;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.presentation.XPresentation;
+import com.sun.star.presentation.XPresentationSupplier;
+
+/**
+* Testing <code>com.sun.star.presentation.XPresentationSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getPresentation()</code></li>
+* </ul> <p>
+* @see com.sun.star.presentation.XPresentationSupplier
+*/
+public class _XPresentationSupplier extends MultiMethodTest {
+
+ public XPresentationSupplier oObj = null;
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned value isn't null. <p>
+ */
+ public void _getPresentation() {
+ XPresentation NA = oObj.getPresentation();
+ tRes.tested("getPresentation()", NA != null);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/reflection/_XIdlReflection.java b/qadevOOo/tests/java/ifc/reflection/_XIdlReflection.java
new file mode 100644
index 000000000..f77b3ba7b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/reflection/_XIdlReflection.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.reflection;
+
+import com.sun.star.reflection.XIdlClass;
+import com.sun.star.reflection.XIdlReflection;
+import com.sun.star.uno.TypeClass;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.reflection.XIdlReflection</code>
+* interface methods :
+* <ul>
+* <li><code> forName()</code></li>
+* <li><code> getType()</code></li>
+* </ul> <p>
+* @see com.sun.star.reflection.XIdlReflection
+*/
+public class _XIdlReflection extends MultiMethodTest{
+ public XIdlReflection oObj = null;
+ protected static final String typeName = "com.sun.star.container.XNameAccess";
+
+ /**
+ * Test calls the method and checks returned interface
+ * <code>com.sun.star.container.XNameAccess</code>: gets the name and the
+ * type and checks it. <p>
+ * Has <b> OK </b> status if returned name is equal to the name of the
+ * interface that was passed as parameter in the method call and if returned
+ * type is equal to <code>com.sun.star.uno.TypeClass.INTERFACE</code>. <p>
+ */
+ public void _forName() {
+ boolean result = true;
+ XIdlClass cls = oObj.forName(typeName);
+
+ if (cls != null) {
+ log.println("Class name: " + cls.getName());
+ result &= cls.getTypeClass() == TypeClass.INTERFACE;
+ result &= typeName.equals(cls.getName());
+ } else {
+ log.println("Method returned null");
+ result = false;
+ }
+
+ tRes.tested("forName()", result);
+ }
+
+ /**
+ * Test creates the instance of <code>com.sun.star.io.Pipe</code>,
+ * calls the method using this instance as parameter and checks returned
+ * value. <p>
+ * Has <b> OK </b> status if the instance was created successfully, if
+ * returned value isn't null and no exceptions were thrown. <p>
+ */
+ public void _getType() {
+ Object obj = null;
+
+ try {
+ obj = tParam.getMSF().
+ createInstance("com.sun.star.io.Pipe") ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't create object");
+ tRes.tested("getType()", false);
+ return;
+ }
+
+ if (obj == null) {
+ log.println("Object wasn't created !");
+ tRes.tested("getType()", false);
+ }
+
+ XIdlClass cls = oObj.getType(obj);
+
+ if (cls != null) {
+ log.println("The name is " + cls.getName());
+ }
+
+ tRes.tested("getType()", cls != null);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/reflection/_XProxyFactory.java b/qadevOOo/tests/java/ifc/reflection/_XProxyFactory.java
new file mode 100644
index 000000000..f278f7372
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/reflection/_XProxyFactory.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.reflection;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XInitialization;
+import com.sun.star.reflection.XProxyFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XAggregation;
+
+/**
+/**
+* Testing <code>com.sun.star.reflection.XProxyFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createProxy()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.reflection.XProxyFactory
+*/
+public class _XProxyFactory extends MultiMethodTest {
+ /** Is initialized in super class(using reflection API)
+ * when instantiating the test.
+ */
+ public XProxyFactory oObj;
+
+ /*
+ * First an implementation of
+ * <code>com.sun.star.lang.XInitialization</code> interface
+ * is made which sets a flag when its <code>initialize()</code>
+ * method is called. Then an instance of this implementation
+ * is created and a proxy object is created for it. Proxy
+ * object is tried to query for <code>XInitialization</code>
+ * interface and it's <code>initialize</code> method is
+ * called. The goal is to check if the real object method
+ * was called through its proxy. <p>
+ * Has <b>OK</b> status if the real object method was
+ * called and parameters were passed correctly.
+ */
+ public void _createProxy() {
+ class MyObject implements XInitialization {
+ Object[] params;
+
+ public void initialize(Object args[]) {
+ params = args;
+ }
+ }
+
+ MyObject obj = new MyObject();
+
+ XAggregation xAggr = oObj.createProxy(obj);
+
+ XInitialization xInit = UnoRuntime.queryInterface(
+ XInitialization.class, xAggr);
+
+ Object params[] = new Object[0];
+
+ try {
+ xInit.initialize(params);
+ } catch(com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception : " + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("createProxy()", false);
+ return;
+ }
+
+ tRes.tested("createProxy()",
+ util.ValueComparer.equalValue(params, obj.params));
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java b/qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java
new file mode 100644
index 000000000..b4efdcdd0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java
@@ -0,0 +1,86 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.reflection;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.reflection.TypeDescriptionSearchDepth;
+import com.sun.star.reflection.XTypeDescription;
+import com.sun.star.reflection.XTypeDescriptionEnumeration;
+import com.sun.star.reflection.XTypeDescriptionEnumerationAccess;
+import com.sun.star.uno.TypeClass;
+
+/**
+ * Testing <code>com.sun.star.reflection.XTypeDescriptionEnumerationAccess
+ * </code><br>
+ * Needed object relation:
+ * <ul>
+ * <li><code>SearchString</code>
+ * A string to search for as a type description</li>
+ * </ul>
+ */
+public class _XTypeDescriptionEnumerationAccess extends MultiMethodTest {
+ public XTypeDescriptionEnumerationAccess oObj = null;
+
+ /**
+ * Search the type database for all information regarding the object
+ * relation 'SearchString'. Search depth is infinite and information
+ * about all types is gathered.
+ */
+ public void _createTypeDescriptionEnumeration() {
+ int i=0;
+ TypeClass[] tClass = new TypeClass[0];
+ String sString = (String)tEnv.getObjRelation("SearchString");
+ if (sString == null || sString.equals("")) {
+ System.out.println("Cannot get object relation 'SearchString'");
+ tRes.tested("createTypeDescriptionEnumeration()", false);
+ return;
+ }
+ try {
+ XTypeDescriptionEnumeration oEnum =
+ oObj.createTypeDescriptionEnumeration(sString, tClass,
+ TypeDescriptionSearchDepth.INFINITE);
+ try {
+ log.println("Got an enumeration.");
+ while (true) {
+ XTypeDescription desc = oEnum.nextTypeDescription();
+ i++;
+ log.println("\tdesc name: " + desc.getName());
+ }
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ log.println(
+ "Correct exception caught for exiting enumeration.");
+ log.println("Returned were " + i + " type descriptions.");
+ }
+ catch(Exception e) {
+ log.println("Exception while accessing the enumeration.");
+ log.println("Index is " + i);
+ log.println(e.getMessage());
+ tRes.tested("createTypeDescriptionEnumeration()", false);
+ return;
+ }
+ tRes.tested("createTypeDescriptionEnumeration()", i>0);
+ }
+ catch(Exception e) {
+ log.println("Cannot execute method.");
+ log.println(e.getMessage());
+ tRes.tested("createTypeDescriptionEnumeration()", false);
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/registry/_XImplementationRegistration.java b/qadevOOo/tests/java/ifc/registry/_XImplementationRegistration.java
new file mode 100644
index 000000000..7603f8a00
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/registry/_XImplementationRegistration.java
@@ -0,0 +1,184 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.registry;
+
+import com.sun.star.registry.XImplementationRegistration;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.RuntimeException;
+import lib.MultiMethodTest;
+import util.RegistryTools;
+import util.utils;
+
+/**
+* Testing <code>com.sun.star.registry.XImplementationRegistration</code>
+* interface methods :
+* <ul>
+* <li><code> registerImplementation()</code></li>
+* <li><code> revokeImplementation()</code></li>
+* <li><code> getImplementations()</code></li>
+* <li><code> checkInstantiation()</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>solibrary.jar</code> : jar file with implementation
+* classes. One of the required implementation must have name
+* <code>com.ivistaportal.solibrary.HistogramImpl</code> cause
+* it is checked in <code>getImplementations</code> method. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star
+*/
+public class _XImplementationRegistration extends MultiMethodTest {
+
+ public XImplementationRegistration oObj = null;
+
+ private String url = null ;
+ private String loader = null ;
+ private XSimpleRegistry reg = null ;
+
+ /**
+ * First a registry created and opened in the temporary directory
+ * of StarOffice. Then some implementations situated in JAR file
+ * is registered in the registry opened. <p>
+ * Has <b>OK</b> status if some information is written into registry.
+ *
+ */
+ public void _registerImplementation()
+ throws RuntimeException
+ {
+ url = util.utils.getFullTestURL("qadevlibs/MyPersistObjectImpl.jar");
+ loader = "com.sun.star.loader.Java2";
+ boolean result = false ;
+ String name = null;
+
+ try {
+ name = utils.getOfficeTempDir(tParam.getMSF()) +
+ "XImplementationRegistration_tmp.rdb";
+ reg = RegistryTools.openRegistry
+ (name, tParam.getMSF()) ;
+
+ oObj.registerImplementation(loader, url, reg) ;
+
+ RegistryTools.printRegistryInfo(reg.getRootKey(), log) ;
+
+ String[] subKeys = reg.getRootKey().getKeyNames() ;
+
+ result = subKeys != null && subKeys.length > 0 ;
+
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't open registry file: " + name) ;
+ e.printStackTrace(log) ;
+ }
+ tRes.tested("registerImplementation()", result) ;
+ }
+
+ /**
+ * Retrieves an array of implementation names and check them. <p>
+ * Has <b>OK</b> status if among them an implementation name
+ * <code>com.ivistaportal.solibrary.HistogramImpl</code> exists.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerImplementation </code> </li>
+ * </ul>
+ */
+ public void _getImplementations() throws RuntimeException{
+ requiredMethod("registerImplementation()") ;
+
+ String[] impl = oObj.getImplementations(loader, url) ;
+
+ if (impl.length == 0) log.println("getImplementations() "+
+ "returns an empty array");
+ boolean result = false ;
+ log.println("Implementations found :") ;
+ for (int i = 0; i < impl.length; i++) {
+ log.println(" '" + impl[i] + "'") ;
+ if ("com.sun.star.cmp.MyPersistObject".
+ equals(impl[i])) {
+
+ result = true ;
+ break ;
+ }
+ }
+
+
+
+ tRes.tested("getImplementations()", result) ;
+ }
+
+ /**
+ * Calls the method with
+ * <code>com.sun.star.comp.stoc.JavaComponentLoader</code>
+ * implementation name.<p>
+ * Has <b>OK</b> status if not null array returned. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerImplementation </code> </li>
+ * </ul>
+ */
+ public void _checkInstantiation() throws RuntimeException {
+ requiredMethod("registerImplementation()") ;
+
+ String[] inst = oObj.checkInstantiation(
+ "com.sun.star.comp.stoc.JavaComponentLoader") ;
+
+ tRes.tested("checkInstantiation()", inst != null) ;
+ }
+
+ /**
+ * Revokes implementations from registry, and checks if
+ * all implementations' information is deleted. <p>
+ * Has <b>OK</b> status if registry has no key entries. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerImplementation </code> : to have
+ * implementation registered in registry. </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getImplementations </code>
+ * <li> <code> checkInstantiation </code>
+ * </ul>
+ */
+ public void _revokeImplementation() throws RuntimeException{
+ requiredMethod("registerImplementation()") ;
+
+ executeMethod("getImplementations()") ;
+ executeMethod("checkInstantiation()") ;
+
+ oObj.revokeImplementation(url, reg);
+ RegistryTools.printRegistryInfo(reg, log) ;
+
+ try {
+ reg.getRootKey().getKeyNames();
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ log.println("!!! Exception retrieving keys from registry :") ;
+ e.printStackTrace(log);
+ }
+
+ tRes.tested("revokeImplementation()", true) ;
+ }
+
+ @Override
+ public void after() {
+ this.disposeEnvironment() ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/registry/_XSimpleRegistry.java b/qadevOOo/tests/java/ifc/registry/_XSimpleRegistry.java
new file mode 100644
index 000000000..93dfeb533
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/registry/_XSimpleRegistry.java
@@ -0,0 +1,405 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.registry;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.RegistryTools;
+
+import com.sun.star.registry.InvalidRegistryException;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.registry.XSimpleRegistry;
+
+
+/**
+* Testing <code>com.sun.star.registry.XSimpleRegistry</code>
+* interface methods :
+* <ul>
+* <li><code> getURL()</code></li>
+* <li><code> open()</code></li>
+* <li><code> isValid()</code></li>
+* <li><code> close()</code></li>
+* <li><code> destroy()</code></li>
+* <li><code> getRootKey()</code></li>
+* <li><code> isReadOnly()</code></li>
+* <li><code> mergeKey()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'NR'</code> <b>optional</b> (of type <code>String</code>):
+* if this object relation isn't null than the testing component
+* doesn't support some methods of the interface
+* (<code>open(), close(), destroy()</code>)</li>
+* <li> <code>'XSimpleRegistry.open'</code> (of type <code>String</code>):
+* The full system path to the registry file which is opened and modified.
+* </li>
+* <li> <code>'XSimpleRegistry.destroy'</code> (of type <code>String</code>):
+* The full system path to the registry file which is destroyed.
+* </li>
+* <li> <code>'XSimpleRegistry.merge'</code> (of type <code>String</code>):
+* The full system path to the registry file which is merged with the
+* registry tested.
+* </li>
+* </ul> <p>
+* @see com.sun.star.registry.XSimpleRegistry
+*/
+public class _XSimpleRegistry extends MultiMethodTest {
+ public XSimpleRegistry oObj = null;
+ protected String nr = null;
+ protected boolean configuration = false;
+ protected String openF = null;
+ protected String destroyF = null;
+ protected String mergeF = null;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of required relations not found.
+ */
+ @Override
+ protected void before() {
+ if (tEnv.getObjRelation("configuration") != null) {
+ configuration = true;
+ }
+
+ nr = (String) tEnv.getObjRelation("NR");
+
+ openF = (String) tEnv.getObjRelation("XSimpleRegistry.open");
+
+ if (openF == null) {
+ throw new StatusException(Status.failed(
+ "Relation 'XSimpleRegistry.open' not found"));
+ }
+
+ destroyF = (String) tEnv.getObjRelation("XSimpleRegistry.destroy");
+
+ if (destroyF == null) {
+ throw new StatusException(Status.failed(
+ "Relation 'XSimpleRegistry.destroy' not found"));
+ }
+
+ mergeF = (String) tEnv.getObjRelation("XSimpleRegistry.merge");
+
+ if (mergeF == null) {
+ throw new StatusException(Status.failed(
+ "Relation 'XSimpleRegistry.merge' not found"));
+ }
+ }
+
+ /**
+ * If the method is supported opens the registry key with the URL
+ * from <code>'XSimpleRegistry.open'</code> relation, then closes it. <p>
+ *
+ * Has <b> OK </b> status if the method isn't supported by the component
+ * (the object relation <code>'NR'</code> isn't null) or no exceptions were
+ * thrown during open/close operations. <p>
+ */
+ public void _open() {
+ if (nr != null) {
+ log.println("'open()' isn't supported by '" + nr + "'");
+ tRes.tested("open()", true);
+
+ return;
+ }
+
+ log.println("Trying to open registry :" + openF);
+
+ try {
+ oObj.open(openF, false, true);
+ oObj.close();
+ } catch (InvalidRegistryException e) {
+ e.printStackTrace(log);
+ tRes.tested("open()", false);
+
+ return;
+ }
+
+ tRes.tested("open()", true);
+ }
+
+ /**
+ * Test opens the registry key with the URL from
+ * <code>'XSimpleRegistry.open'</code> relation not only for read,
+ * calls the method, checks returned value and closes the registry. <p>
+ *
+ * Has <b> OK </b> status if returned value is false and no exceptions were
+ * thrown. <p>
+ */
+ public void _isReadOnly() {
+ boolean result = false;
+
+ try {
+ openReg(oObj, openF, false, true);
+ result = !oObj.isReadOnly();
+ closeReg(oObj);
+ } catch (InvalidRegistryException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("isReadOnly()", result);
+ }
+
+ /**
+ * Test opens the registry key with the URL from
+ * <code>'XSimpleRegistry.open'</code> relation, calls the method,
+ * checks returned value and closes the registry key. <p>
+ *
+ * Has <b>OK</b> status if returned value isn't null and no exceptions were
+ * thrown. <p>
+ */
+ public void _getRootKey() {
+ boolean result = false;
+
+ try {
+ openReg(oObj, openF, false, true);
+
+ XRegistryKey rootKey = oObj.getRootKey();
+ result = rootKey != null;
+ closeReg(oObj);
+ } catch (InvalidRegistryException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("getRootKey()", result);
+ }
+
+ /**
+ * Merges the current registry with the registry from URL got from
+ * <code>'XSimpleRegistry.merge'</code> relation under 'MergeKey' key.
+ * Then the keys of these two registries retrieved :
+ * <ul>
+ * <li> Root key from 'XSimpleRegistry.merge' registry </li>
+ * <li> 'MergeKey' key from the current registry </li>
+ * </ul>
+ * Then these two keys are recursively compared. <p>
+ *
+ * Has <b> OK </b> status if the method isn't supported by the component
+ * (the object relation <code>'NR'</code> isn't null)
+ * or
+ * if it's supported and after successful merging the keys mentioned
+ * above are recursively equal. <p>
+ */
+ public void _mergeKey() {
+ if (configuration) {
+ log.println(
+ "You can't merge into this registry. It's just a wrapper for a configuration node, which has a fixed structure which can not be modified");
+ tRes.tested("mergeKey()", true);
+
+ return;
+ }
+
+ if (nr != null) {
+ log.println("'mergeKey()' isn't supported by '" + nr + "'");
+ tRes.tested("mergeKey()", true);
+
+ return;
+ }
+
+ openReg(oObj, openF, false, true);
+
+ try {
+ RegistryTools.printRegistryInfo(oObj.getRootKey(), log);
+ oObj.mergeKey("MergeKey", mergeF);
+ RegistryTools.printRegistryInfo(oObj.getRootKey(), log);
+ } catch (com.sun.star.registry.MergeConflictException e) {
+ e.printStackTrace(log);
+ tRes.tested("mergeKey()", false);
+
+ return;
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ e.printStackTrace(log);
+ tRes.tested("mergeKey()", false);
+
+ return;
+ }
+
+ boolean isEqual = false;
+ XSimpleRegistry reg = null;
+
+ try {
+ reg = RegistryTools.createRegistryService(tParam.getMSF());
+ } catch (com.sun.star.uno.Exception e) {
+ log.print("Can't create registry service: ");
+ e.printStackTrace(log);
+ tRes.tested("mergeKey()", false);
+
+ return;
+ }
+
+ openReg(reg, mergeF, false, true);
+
+ try {
+ XRegistryKey key = oObj.getRootKey().openKey("MergeKey");
+ XRegistryKey mergeKey = reg.getRootKey();
+ isEqual = RegistryTools.compareKeyTrees(key, mergeKey);
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ log.print("Can't get root key: ");
+ e.printStackTrace(log);
+ tRes.tested("mergeKey()", false);
+
+ return;
+ }
+
+ closeReg(reg);
+ closeReg(oObj);
+
+ tRes.tested("mergeKey()", isEqual);
+ }
+
+ /**
+ * Test opens the registry key with the URL from
+ * <code>'XSimpleRegistry.open'</code> relation, calls the method,
+ * checks returned value and closes the registry key. <p>
+ *
+ * Has <b> OK </b> status if returned value isn't null and if length of the
+ * returned string is greater than 0. <p>
+ */
+ public void _getURL() {
+ openReg(oObj, openF, false, true);
+
+ String url = oObj.getURL();
+ closeReg(oObj);
+ log.println("Getting URL: " + url+";");
+ tRes.tested("getURL()", (url != null));
+ }
+
+ /**
+ * Test checks value returned by the object relation <code>'NR'</code>,
+ * opens the registry key with the URL from
+ * <code>XSimpleRegistry.open'</code> relation, calls the method
+ * and checks the validity of the registry key. <p>
+ *
+ * Has <b> OK </b> status if the registry key isn't valid after the method
+ * call, or if the method isn't supported by the component (the object
+ * relation <code>'NR'</code> isn't null). <p>
+ */
+ public void _close() {
+ if (nr != null) {
+ log.println("'close()' isn't supported by '" + nr + "'");
+ tRes.tested("close()", true);
+
+ return;
+ }
+
+ try {
+ oObj.open(openF, false, true);
+ oObj.close();
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ e.printStackTrace(log);
+ tRes.tested("close()", false);
+
+ return;
+ }
+
+ tRes.tested("close()", !oObj.isValid());
+ }
+
+ /**
+ * Test checks value returned by the object relation <code>'NR'</code>,
+ * opens the registry key with the URL from
+ * <code>'XSimpleRegistry.destroy'</code> relation, calls the method
+ * and checks the validity of the registry key. <p>
+ *
+ * Has <b> OK </b> status if the registry key isn't valid after the method
+ * call, or if the method isn't supported by the component (the object
+ * relation <code>'NR'</code> isn't null). <p>
+ */
+ public void _destroy() {
+ if (configuration) {
+ log.println(
+ "This registry is a wrapper for a configuration access. It can not be destroyed.");
+ tRes.tested("destroy()", true);
+
+ return;
+ }
+
+ if (nr != null) {
+ log.println("'destroy()' isn't supported by '" + nr + "'");
+ tRes.tested("destroy()", true);
+
+ return;
+ }
+
+ try {
+ oObj.open(destroyF, false, true);
+ oObj.destroy();
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ e.printStackTrace(log);
+ tRes.tested("destroy()", false);
+
+ return;
+ }
+
+ tRes.tested("destroy()", !oObj.isValid());
+ }
+
+ /**
+ * Test opens the registry key with the URL from
+ * <code>'XSimpleRegistry.open'</code> relation, calls the method,
+ * checks returned value and closes the registry key. <p>
+ * Has <b> OK </b> status if returned value is true. <p>
+ */
+ public void _isValid() {
+ boolean valid = true;
+
+ openReg(oObj, openF, false, true);
+ valid = oObj.isValid();
+ closeReg(oObj);
+
+ tRes.tested("isValid()", valid);
+ }
+
+ /**
+ * Method calls <code>close()</code> of the interface
+ * <code>com.sun.star.registry.XRegistryKey</code>. <p>
+ * @param reg interface <code>com.sun.star.registry.XRegistryKey</code>
+ * @param url specifies the complete URL to access the data source
+ * @param arg1 specifies if the data source should be opened for read only
+ * @param arg2 specifies if the data source should be created if it does not
+ * already exist
+ */
+ public void openReg(XSimpleRegistry reg, String url, boolean arg1,
+ boolean arg2) {
+ if (nr == null) {
+ try {
+ reg.open(url, arg1, arg2);
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ log.print("Couldn't open registry:");
+ e.printStackTrace(log);
+ }
+ }
+ }
+
+ /**
+ * Method calls <code>close()</code> of the interface
+ * <code>com.sun.star.registry.XRegistryKey</code>. <p>
+ * @param reg <code>com.sun.star.registry.XRegistryKey</code>
+ */
+ public void closeReg(XSimpleRegistry reg) {
+ if (nr == null) {
+ try {
+ reg.close();
+ } catch (com.sun.star.registry.InvalidRegistryException e) {
+ log.print("Couldn't close registry:");
+ e.printStackTrace(log);
+ }
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java b/qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java
new file mode 100644
index 000000000..b0375c257
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java
@@ -0,0 +1,492 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.script;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.script.ScriptEvent;
+import com.sun.star.script.ScriptEventDescriptor;
+import com.sun.star.script.XEventAttacherManager;
+import com.sun.star.script.XScriptListener;
+
+/**
+* Testing <code>com.sun.star.script.XEventAttacherManager</code>
+* interface methods :
+* <ul>
+* <li><code> registerScriptEvent()</code></li>
+* <li><code> registerScriptEvents()</code></li>
+* <li><code> revokeScriptEvent()</code></li>
+* <li><code> revokeScriptEvents()</code></li>
+* <li><code> insertEntry()</code></li>
+* <li><code> removeEntry()</code></li>
+* <li><code> getScriptEvents()</code></li>
+* <li><code> attach()</code></li>
+* <li><code> detach()</code></li>
+* <li><code> addScriptListener()</code></li>
+* <li><code> removeScriptListener()</code></li>
+* </ul> <p>
+* @see com.sun.star.script.XEventAttacherManager
+*/
+public class _XEventAttacherManager extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XEventAttacherManager oObj = null;
+
+ private static final int index = 0;
+
+ /**
+ * Test calls the method and stores index of new entry. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _insertEntry() {
+ try {
+ oObj.insertEntry(index);
+ tRes.tested("insertEntry()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("insertEntry(" + index
+ + ") throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("insertEntry()", false);
+ }
+ }
+
+ ScriptEventDescriptor desc;
+
+ /**
+ * Test creates <code>ScriptEventDescriptor</code>, registers
+ * the script event and stores the descriptor. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> : to have entry's index</li>
+ * </ul>
+ * @see com.sun.star.script.ScriptEventDescriptor
+ */
+ public void _registerScriptEvent() {
+ requiredMethod("insertEntry()");
+ desc = new ScriptEventDescriptor(
+ "XEventListener1",
+ "disposing", "", "Basic", "");
+
+ try {
+ oObj.registerScriptEvent(index, desc);
+ tRes.tested("registerScriptEvent()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("registerScriptEvent() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("registerScriptEvent()", false);
+ }
+ }
+
+ ScriptEventDescriptor descs[];
+
+ /**
+ * Test creates array of <code>ScriptEventDescriptor</code>, registers
+ * this script events and stores the descriptors. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> : to have entry's index</li>
+ * </ul>
+ * @see com.sun.star.script.ScriptEventDescriptor
+ */
+ public void _registerScriptEvents() {
+ requiredMethod("insertEntry()");
+ descs = new ScriptEventDescriptor[] {
+ new ScriptEventDescriptor(
+ "XEventListener2",
+ "disposing", "", "Basic", ""),
+ new ScriptEventDescriptor(
+ "XEventListener3",
+ "disposing", "", "Basic", "")
+ };
+
+ try {
+ oObj.registerScriptEvents(index, descs);
+ tRes.tested("registerScriptEvents()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("registerScriptEvents() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("registerScriptEvents()", false);
+ }
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned array of descriptors contains
+ * array of descriptors registered by methods <code>registerScriptEvents</code>
+ * and <code>registerScriptEvent</code> and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerScriptEvent() </code> :
+ * to have registered descriptor </li>
+ * <li> <code> registerScriptEvents() </code> :
+ * to have registered descriptors </li>
+ * </ul>
+ */
+ public void _getScriptEvents() {
+ requiredMethod("registerScriptEvent()");
+ requiredMethod("registerScriptEvents()");
+
+ ScriptEventDescriptor[] res;
+
+ try {
+ res = oObj.getScriptEvents(index);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("registerScriptEvents() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("registerScriptEvents()", false);
+ return;
+ }
+
+ // checking the desc and descs are in script events
+ tRes.tested("getScriptEvents()",
+ contains(res, desc) && containsArray(res, descs));
+
+ log.println("Script events :") ;
+ printEvents(res) ;
+ }
+
+ /**
+ * Method checks that array of descriptors contains the concrete descriptor.
+ * @param container the array of descriptors
+ * @param evt the descriptor which presence in the array is checked
+ * @return true if the descriptor presence in the array
+ */
+ boolean contains(ScriptEventDescriptor[] container,
+ ScriptEventDescriptor evt) {
+ for (int i = 0; i < container.length; i++) {
+ if (equal(container[i], evt)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Method checks that one array of descriptors contains
+ * another array of descriptors.
+ * @param container the array of descriptors
+ * @param events the array of descriptors which presence
+ * in array <code>container</code> is checked
+ * @return true if the array <code>events</code> contains in the array
+ * <code>container</code>
+ */
+ boolean containsArray(ScriptEventDescriptor[] container,
+ ScriptEventDescriptor[] events) {
+ for (int i = 0; i < events.length; i++) {
+ if (!contains(container, events[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Compares descriptor <code>evt1</code> to descriptor <code>evt2</code>.
+ * Two descriptors are considered equal if all their fields are equal.
+ * @return true if the argument is not <code>null</code> and
+ * the descriptors are equal; false otherwise
+ */
+ boolean equal(ScriptEventDescriptor evt1,
+ ScriptEventDescriptor evt2) {
+ return evt1.ListenerType.equals(evt2.ListenerType)
+ && evt1.EventMethod.equals(evt2.EventMethod)
+ && evt1.ScriptType.equals(evt2.ScriptType)
+ && evt1.ScriptCode.equals(evt2.ScriptCode)
+ && evt1.AddListenerParam.equals(evt2.AddListenerParam);
+ }
+
+ /**
+ * Prints fields of descriptor <code>evt</code> to log.
+ * @param evt the descriptor that needs to be printed to log
+ */
+ void printEvent(ScriptEventDescriptor evt) {
+ if (evt == null) {
+ log.println("null");
+ } else {
+ log.println("\"" + evt.ListenerType + "\",\""
+ + evt.EventMethod + "\",\""
+ + evt.ScriptType + "\",\""
+ + evt.ScriptCode + "\",\""
+ + evt.AddListenerParam + "\"");
+ }
+ }
+
+ /**
+ * Prints the descriptors to log.
+ * @param events the array of descriptors that need to be printed to log
+ */
+ void printEvents(ScriptEventDescriptor events[]) {
+ if (events == null) {
+ log.println("null");
+ } else {
+ for (int i = 0; i < events.length; i++) {
+ printEvent(events[i]);
+ }
+ }
+ }
+
+ Object attachedObject;
+
+ /**
+ * Test creates instance of <code>NamingService</code> (arbitrarily),
+ * stores it and attaches it to the entry with index stored in the method
+ * <code>insertEntry()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> : to have entry's index for attach</li>
+ */
+ public void _attach() {
+ requiredMethod("insertEntry()");
+
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ attachedObject = xMSF.createInstance
+ ( "com.sun.star.uno.NamingService" );
+ } catch( com.sun.star.uno.Exception e ) {
+ log.println("com.sun.star.uno.NamingService not available" );
+ e.printStackTrace(log);
+ tRes.tested("attach()", false);
+ return;
+ }
+ if (attachedObject == null) {
+ log.println("com.sun.star.uno.NamingService not available" );
+ tRes.tested("attach()", false);
+ return;
+ }
+
+ try {
+ oObj.attach(index, attachedObject, "param");
+ tRes.tested("attach()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("attach() throws exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("attach()", false);
+ } catch (com.sun.star.lang.ServiceNotRegisteredException e) {
+ log.println("attach() throws exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("attach()", false);
+ }
+ }
+
+ /**
+ * Test calls the method for the object that was stored in the method
+ * <code>attach()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> attach() </code> : to have attached object </li>
+ * </ul>
+ */
+ public void _detach() {
+ requiredMethod("attach()");
+
+ try {
+ oObj.detach(index, attachedObject);
+ tRes.tested("detach()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("detach() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("detach()", false);
+ }
+ }
+
+ /**
+ * Test revokes script event that was registered by method
+ * <code>registerScriptEvent()</code> and checks that the description
+ * was removed. <p>
+ * Has <b> OK </b> status if description was successfully removed. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerScriptEvent() </code> :
+ * to have registered descriptor </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getScriptEvents() </code> :
+ * this method must be executed first </li>
+ * </ul>
+ */
+ public void _revokeScriptEvent() {
+ requiredMethod("registerScriptEvent()");
+ executeMethod("getScriptEvents()") ;
+
+ try {
+ oObj.revokeScriptEvent(index, desc.ListenerType,
+ desc.EventMethod, "");
+
+ ScriptEventDescriptor[] res = oObj.getScriptEvents(index);
+ // checking that the desc has been removed
+ tRes.tested("revokeScriptEvent()", !contains(res, desc));
+ printEvents(res) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("revokeScriptEvent() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("revokeScriptEvent()", false);
+ }
+ }
+
+ /**
+ * Test revokes script events that was registered by method
+ * <code>registerScriptEvents()</code> and checks that the descriptions
+ * were removed. <p>
+ * Has <b> OK </b> status if descriptions were successfully removed. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> revokeScriptEvent() </code> :
+ * this method must be executed first </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getScriptEvents() </code> :
+ * this method must be executed first </li>
+ * </ul>
+ */
+ public void _revokeScriptEvents() {
+ requiredMethod("revokeScriptEvent()");
+ executeMethod("getScriptEvents()") ;
+
+ try {
+ oObj.revokeScriptEvents(index);
+
+ ScriptEventDescriptor[] res = oObj.getScriptEvents(index);
+ // checking that all events have been removed
+ tRes.tested("revokeScriptEvents()",
+ res == null || res.length == 0);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("revokeScriptEvents() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("revokeScriptEvents()", false);
+ }
+ }
+
+ /**
+ * Test calls the method with entry's index that was stored in method
+ * <code>insertEntry()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> :
+ * to have entry's index </li>
+ */
+ public void _removeEntry() {
+ requiredMethod("insertEntry()");
+ try {
+ oObj.removeEntry(index);
+ tRes.tested("removeEntry()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("removeEntry(" + index
+ + ") throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("removeEntry()", false);
+ }
+ }
+
+ XScriptListener listener;
+
+ /**
+ * Test creates object that supports interface <code>XScriptListener</code>,
+ * stores it and adds this scripts listener. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * @see com.sun.star.script.XScriptListener
+ */
+ public void _addScriptListener() {
+ listener = new MyScriptListener();
+
+ try {
+ oObj.addScriptListener(listener);
+ tRes.tested("addScriptListener()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("addScriptListener() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("addScriptListener()", false);
+ }
+ }
+
+ /**
+ * Test removes script listener that was stored in method
+ * <code>addScriptListener()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addScriptListener() </code> :
+ * to have script listener </li>
+ * </ul>
+ */
+ public void _removeScriptListener() {
+ requiredMethod("addScriptListener()");
+
+ try {
+ oObj.removeScriptListener(listener);
+ tRes.tested("removeScriptListener()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("removeScriptListener() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("removeScriptListener()", false);
+ }
+ }
+
+ /**
+ * Class implement interface <code>XScriptListener</code>
+ * for test of the method <code>addScriptListener()</code>.
+ * No functionality implemented.
+ * @see com.sun.star.script.XScriptListener
+ */
+ static class MyScriptListener implements XScriptListener {
+ public void firing(ScriptEvent evt) {
+ }
+
+ public Object approveFiring(ScriptEvent evt) {
+ return evt.Helper;
+ }
+
+ public void disposing(EventObject evt) {
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java
new file mode 100644
index 000000000..1475b7380
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java
@@ -0,0 +1,103 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.script;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.script.XInvocation;
+import com.sun.star.script.XInvocationAdapterFactory;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.script.XInvocationAdapterFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createAdapter()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.script.XInvocationAdapterFactory
+*/
+public class _XInvocationAdapterFactory extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XInvocationAdapterFactory oObj = null;
+
+ /**
+ * First an invocation object of <code>com.sun.star.io.Pipe</code>
+ * instance is created using <code>com.sun.star.script.Invocation
+ * </code> service. Then trying to create an adapter of this
+ * invocation for <code>com.sun.star.io.XInputStream</code>
+ * interface. <p>
+ * Has <b>OK</b> status if the adapter returned is successfully
+ * queried for <code>com.sun.star.io.XInputStream</code>
+ * interface.
+ * @see com.sun.star.script.Invocation
+ * @see com.sun.star.script.XInvocation
+ * @see com.sun.star.io.Pipe
+ */
+ public void _createAdapter() {
+ XInvocation xInv = null ;
+ XMultiServiceFactory xMSF = null;
+ try {
+ xMSF = tParam.getMSF();
+ Object[] args = {xMSF.createInstance
+ ("com.sun.star.io.Pipe")};
+
+ Object oInvFac = xMSF.createInstance
+ ("com.sun.star.script.Invocation") ;
+
+ XSingleServiceFactory xInvFac = UnoRuntime.
+ queryInterface(XSingleServiceFactory.class, oInvFac) ;
+
+ Object oInv = xInvFac.createInstanceWithArguments(args) ;
+
+ xInv = UnoRuntime.queryInterface
+ (XInvocation.class, oInv) ;
+
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create invocation for object", e) ;
+ }
+
+ XInterface xInStr = null ;
+
+ Object adp = oObj.createAdapter(xInv,
+ new Type(XInputStream.class)) ;
+
+ xInStr = UnoRuntime.queryInterface
+ (XInputStream.class, adp) ;
+
+
+ if (xInStr != null)
+ tRes.tested("createAdapter()", true) ;
+ else {
+ log.println("Adapter created doesn't implement required interface") ;
+ tRes.tested("createAdapter()", false) ;
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java
new file mode 100644
index 000000000..ba38e2e72
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.script;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.script.XInvocation;
+import com.sun.star.script.XInvocationAdapterFactory2;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.script.XInvocationAdapterFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createAdapter()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.script.XInvocationAdapterFactory
+*/
+public class _XInvocationAdapterFactory2 extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XInvocationAdapterFactory2 oObj = null;
+
+ /**
+ * First an invocation object of <code>com.sun.star.io.Pipe</code>
+ * instance is created using <code>com.sun.star.script.Invocation
+ * </code> service. Then trying to create an adapter of this
+ * invocation for <code>com.sun.star.io.XInputStream</code>
+ * interface. <p>
+ * Has <b>OK</b> status if the adapter returned is successfully
+ * queried for <code>com.sun.star.io.XInputStream</code>
+ * interface.
+ * @see com.sun.star.script.Invocation
+ * @see com.sun.star.script.XInvocation
+ * @see com.sun.star.io.Pipe
+ */
+ public void _createAdapter() {
+ XInvocation xInv = null ;
+ XMultiServiceFactory xMSF = null;
+ try {
+ xMSF = tParam.getMSF();
+ Object[] args = {xMSF.createInstance
+ ("com.sun.star.io.Pipe")};
+
+ Object oInvFac = xMSF.createInstance
+ ("com.sun.star.script.Invocation") ;
+
+ XSingleServiceFactory xInvFac = UnoRuntime.
+ queryInterface(XSingleServiceFactory.class, oInvFac) ;
+
+ Object oInv = xInvFac.createInstanceWithArguments(args) ;
+
+ xInv = UnoRuntime.queryInterface
+ (XInvocation.class, oInv) ;
+
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create invocation for object", e) ;
+ }
+
+ XInterface xInStr = null ;
+
+ Type[] types = new Type[1];
+ types[0] = new Type(XInputStream.class);
+
+ Object adp = oObj.createAdapter(xInv,types);
+
+ xInStr = UnoRuntime.queryInterface
+ (XInputStream.class, adp) ;
+
+
+ if (xInStr != null)
+ tRes.tested("createAdapter()", true) ;
+ else {
+ log.println("Adapter created doesn't implement required interface") ;
+ tRes.tested("createAdapter()", false) ;
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/script/_XTypeConverter.java b/qadevOOo/tests/java/ifc/script/_XTypeConverter.java
new file mode 100644
index 000000000..3e42a16d9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XTypeConverter.java
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.script;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XSet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.script.XTypeConverter;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.TypeClass;
+
+/**
+* Testing <code>com.sun.star.script.XTypeConverter</code>
+* interface methods :
+* <ul>
+* <li><code> convertTo()</code></li>
+* <li><code> convertToSimpleType()</code></li>
+* </ul> <p>
+* @see com.sun.star.script.XTypeConverter
+*/
+public class _XTypeConverter extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XTypeConverter oObj = null;
+
+ /**
+ * Test creates instance of <code>TypeDescriptionManager</code>,
+ * and converts it to <code>XSet</code>. <p>
+ * Has <b> OK </b> status if returned value is instance of <code>XSet</code>
+ * and no exceptions were thrown. <p>
+ * @see com.sun.star.comp.stoc.TypeDescriptionManager
+ * @see com.sun.star.container.XSet
+ */
+ public void _convertTo() {
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ Object value = null ;
+
+ try {
+ value = xMSF.createInstance
+ ("com.sun.star.comp.stoc.TypeDescriptionManager") ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't create value to convert") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertTo()", false) ;
+ }
+
+ try {
+ Type destType = new Type(XSet.class) ;
+
+ Object o = oObj.convertTo(value, destType);
+
+ boolean result;
+ if (o instanceof Any) {
+ result = ((Any)o).getType().equals(destType);
+ }
+ else {
+ result = (o instanceof XSet);
+ }
+
+ tRes.tested("convertTo()", result) ;
+ } catch (com.sun.star.script.CannotConvertException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertTo()", false) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertTo()", false) ;
+ }
+ }
+
+ /**
+ * Test creates instance of <code>Integer</code>,
+ * and converts it to <code>String</code>. <p>
+ * Has <b> OK </b> status if returned value is instance of <code>String</code>,
+ * if returned value is string representation of integer value that
+ * was passed to method and no exceptions were thrown. <p>
+ */
+ public void _convertToSimpleType() {
+ Object value = Integer.valueOf(123) ;
+ Object destValue = null ;
+
+ try {
+ destValue = oObj.convertToSimpleType(value, TypeClass.STRING) ;
+ } catch (com.sun.star.script.CannotConvertException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertToSimpleType()", false) ;
+ return ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertToSimpleType()", false) ;
+ return ;
+ }
+
+ tRes.tested("convertToSimpleType()", destValue != null &&
+ destValue instanceof String &&
+ ((String) destValue).equals("123")) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java b/qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java
new file mode 100644
index 000000000..fda6ad192
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java
@@ -0,0 +1,116 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiPropertyTest;
+
+public class _DataAccessDescriptor extends MultiPropertyTest {
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ResultSet() {
+ String propName = "ResultSet";
+ try{
+
+ log.println("try to get value from property...");
+ UnoRuntime.queryInterface(XResultSet.class,oObj.getPropertyValue(propName));
+
+ log.println("try to get value from object relation...");
+ XResultSet newValue = UnoRuntime.queryInterface(XResultSet.class,tEnv.getObjRelation("DataAccessDescriptor.XResultSet"));
+
+ log.println("set property to a new value...");
+ oObj.setPropertyValue(propName, newValue);
+
+ log.println("get the new value...");
+ XResultSet getValue = UnoRuntime.queryInterface(XResultSet.class,oObj.getPropertyValue(propName));
+
+ tRes.tested(propName, this.compare(newValue, getValue));
+ } catch (com.sun.star.beans.PropertyVetoException e){
+ log.println("could not set property '"+ propName +"' to a new value!");
+ tRes.tested(propName, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("could not set property '"+ propName +"' to a new value!");
+ tRes.tested(propName, false);
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ if (this.isOptional(propName)){
+ // skipping optional property test
+ log.println("Property '" + propName
+ + "' is optional and not supported");
+ tRes.tested(propName,true);
+
+ } else {
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ActiveConnection() {
+ String propName = "ActiveConnection";
+ try{
+
+ log.println("try to get value from property...");
+ UnoRuntime.queryInterface(XConnection.class,oObj.getPropertyValue(propName));
+
+ log.println("try to get value from object relation...");
+ XConnection newValue = UnoRuntime.queryInterface(XConnection.class,tEnv.getObjRelation("DataAccessDescriptor.XConnection"));
+
+ log.println("set property to a new value...");
+ oObj.setPropertyValue(propName, newValue);
+
+ log.println("get the new value...");
+ XConnection getValue = UnoRuntime.queryInterface(XConnection.class,oObj.getPropertyValue(propName));
+
+ tRes.tested(propName, this.compare(newValue, getValue));
+ } catch (com.sun.star.beans.PropertyVetoException e){
+ log.println("could not set property '"+ propName +"' to a new value! " + e.toString());
+ tRes.tested(propName, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("could not set property '"+ propName +"' to a new value! " + e.toString());
+ tRes.tested(propName, false);
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ if (this.isOptional(propName)){
+ // skipping optional property test
+ log.println("Property '" + propName
+ + "' is optional and not supported");
+ tRes.tested(propName,true);
+
+ } else {
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_DataSource.java b/qadevOOo/tests/java/ifc/sdb/_DataSource.java
new file mode 100644
index 000000000..e693d781a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_DataSource.java
@@ -0,0 +1,165 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.beans.PropertyValue;
+
+/**
+ * Testing <code>com.sun.star.sdb.DataSource</code>
+ * service properties :
+ * <ul>
+ * <li><code> Name</code></li>
+ * <li><code> URL</code></li>
+ * <li><code> Info</code></li>
+ * <li><code> User</code></li>
+ * <li><code> Password</code></li>
+ * <li><code> IsPasswordRequired</code></li>
+ * <li><code> SuppressVersionColumns</code></li>
+ * <li><code> IsReadOnly</code></li>
+ * <li><code> NumberFormatsSupplier</code></li>
+ * <li><code> TableFilter</code></li>
+ * <li><code> TableTypeFilter</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code> <p>.
+* After this interface test <b>it's better to recreate</b> object tested.
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XPropertySetInfo
+* @see com.sun.star.beans.Property
+* @see com.sun.star.lang.XServiceInfo
+*/
+public class _DataSource extends MultiPropertyTest {
+
+ /**
+ * This property is an array of additional parameters for database
+ * connecting. Parameter is <code>PropertyValue</code> structure.
+ * The test just changes existing array onto array with a single
+ * element <code>("user", "API_QA_Tester")</code> <p>
+ *
+ * After testing old value is set for this property. <p>
+ *
+ * Result is OK: if property successfully changed with no exceptions.
+ * @see com.sun.star.beans.PropertyValue
+ */
+ public void _Info() {
+ try {
+ Object oldInfo = oObj.getPropertyValue("Info") ;
+
+ testProperty("Info", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+
+ PropertyValue propUsr = new PropertyValue(),
+ propPass = new PropertyValue() ;
+
+ propUsr.Name = "user" ;
+ propUsr.Value = "API_QA_Tester" ;
+ propPass.Name = "password" ;
+ propPass.Value = "guest" ;
+
+ return new PropertyValue[] { propUsr, propPass } ;
+ }
+ }) ;
+
+ oObj.setPropertyValue("Info", oldInfo) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * Property is tested by the common method, but after testing
+ * old value is set for this property.
+ */
+ public void _URL() {
+ try {
+ Object oldURL = oObj.getPropertyValue("URL") ;
+
+ testProperty("URL") ;
+
+ oObj.setPropertyValue("URL", oldURL) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * Property is tested by the common method, but after testing
+ * old value is set for this property.
+ */
+ public void _User() {
+ try {
+ Object oldUser = oObj.getPropertyValue("User") ;
+
+ testProperty("User") ;
+
+ oObj.setPropertyValue("User", oldUser) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * Property is tested by the common method, but after testing
+ * old value is set for this property.
+ */
+ public void _Password() {
+ try {
+ Object oldPass = oObj.getPropertyValue("Password") ;
+
+ testProperty("Password") ;
+
+ oObj.setPropertyValue("Password", oldPass) ;
+ } catch(com.sun.star.beans.UnknownPropertyException e) {}
+ catch(com.sun.star.beans.PropertyVetoException e) {}
+ catch(com.sun.star.lang.IllegalArgumentException e) {}
+ catch(com.sun.star.lang.WrappedTargetException e) {}
+ }
+
+ /**
+ * New value for the test is always <code>null</code>.
+ */
+ public void _NumberFormatsSupplier() {
+ testProperty("NumberFormatsSupplier", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ return null ;
+ }
+ }) ;
+ }
+
+ /**
+ * If object test allows to recreate environment it is better to do it.
+ */
+ @Override
+ public void after() {
+ try {
+ oObj.setPropertyValue("IsPasswordRequired",Boolean.FALSE);
+ } catch (Exception e) {
+ log.println("Couldn't set 'IsPasswordRequired' to false");
+ }
+ }
+
+} // finish class _DataSource
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java b/qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java
new file mode 100644
index 000000000..747ffe5d0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.DatasourceAdministrationDialog</code>
+ * service properties :
+ * <ul>
+ * <li><code> Title</code></li>
+ * <li><code> ParentWindow</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.DatasourceAdministrationDialog
+ */
+public class _DatasourceAdministrationDialog extends MultiPropertyTest {
+
+} // EOF DatasourceAdministrationDialog
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java b/qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java
new file mode 100644
index 000000000..fcdc4f3f9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.ErrorMessageDialog</code>
+ * service properties :
+ * <ul>
+ * <li><code> Title</code></li>
+ * <li><code> ParentWindow</code></li>
+ * <li><code> SQLException</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'ERR1', 'ERR2'</code>
+ * (of type <code>com.sun.star.sdbc.SQLException</code>):
+ * two objects which are used for changing 'SQLException'
+ * property. </li>
+ * <ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.ErrorMessageDialog
+ */
+public class _ErrorMessageDialog extends MultiPropertyTest {
+
+ /**
+ * <code>SQLException</code> instances must be used as property
+ * value.
+ */
+ public void _SQLException() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("SQLException", tEnv.getObjRelation("ERR1"),
+ tEnv.getObjRelation("ERR2")) ;
+ }
+
+ public void _ParentWindow(){
+ log.println("Testing with custom Property tester");
+ testProperty("ParentWindow", tEnv.getObjRelation("ERR_XWindow"), null);
+ }
+
+} // finish class _ErrorMessageDialog
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java b/qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java
new file mode 100644
index 000000000..efd49829b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java
@@ -0,0 +1,46 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.QueryDefinition</code>
+ * service properties :
+ * <ul>
+ * <li><code> Name</code></li>
+ * <li><code> Command</code></li>
+ * <li><code> EscapeProcessing</code></li>
+ * <li><code> UpdateTableName</code></li>
+ * <li><code> UpdateCatalogName</code></li>
+ * <li><code> UpdateSchemaName</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.QueryDefinition
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertySetInfo
+ * @see com.sun.star.beans.Property
+ * @see com.sun.star.lang.XServiceInfo
+ */
+public class _QueryDefinition extends MultiPropertyTest {
+
+
+} // finish class _QueryDefinition
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_RowSet.java b/qadevOOo/tests/java/ifc/sdb/_RowSet.java
new file mode 100644
index 000000000..9064a1411
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_RowSet.java
@@ -0,0 +1,144 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiPropertyTest;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+ * Testing <code>com.sun.star.sdb.RowSet</code>
+ * service properties :
+ * <ul>
+ * <li><code> ActiveConnection</code></li>
+ * <li><code> DataSourceName</code></li>
+ * <li><code> Command</code></li>
+ * <li><code> CommandType</code></li>
+ * <li><code> ActiveCommand</code></li>
+ * <li><code> IgnoreResult</code></li>
+ * <li><code> Filter</code></li>
+ * <li><code> ApplyFilter</code></li>
+ * <li><code> Order</code></li>
+ * <li><code> Privileges</code></li>
+ * <li><code> IsModified</code></li>
+ * <li><code> IsNew</code></li>
+ * <li><code> RowCount</code></li>
+ * <li><code> IsRowCountFinal</code></li>
+ * <li><code> UpdateTableName</code></li>
+ * <li><code> UpdateCatalogName</code></li>
+ * <li><code> UpdateSchemaName</code></li>
+ * </ul> <p>
+ *
+ * Properties are tested in a safe way, this means that old
+ * properties' values are restored to their previous values
+ * after testing. These values are meaningful for further
+ * testing. <p>
+ *
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.RowSet
+ */
+public class _RowSet extends MultiPropertyTest {
+
+ /**
+ * The tester implementation which restores properties
+ * values after testing.
+ */
+ protected class SafeTester extends PropertyTester {
+ Object oldValue = null ;
+
+ @Override
+ protected Object getNewValue(String prop, Object old) {
+ log.println("Testing with SafeTester ...") ;
+ oldValue = old ;
+ return super.getNewValue(prop, old) ;
+ }
+
+ @Override
+ protected void checkResult(String propName, Object oldValue,
+ Object newValue, Object resValue, Exception exception)
+ throws Exception {
+
+ super.checkResult(propName, oldValue, newValue, resValue, exception);
+
+ try {
+ oObj.setPropertyValue(propName, this.oldValue);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while setting property to its old value '" +
+ this.oldValue + "' (ignoring) : " + e );
+ }
+
+ }
+ }
+
+ /**
+ * Overridden method which tests all the properties
+ * with <code>SafeTester</code>.
+ *
+ * @see SafeTester
+ */
+ @Override
+ protected void testProperty(String propName) {
+ testProperty(propName, new SafeTester()) ;
+ }
+
+ public void _ActiveConnection() {
+ boolean result = false;
+ try {
+ XConnection the_connection = null;
+
+ try {
+ the_connection = (XConnection) AnyConverter.toObject(
+ new Type(XConnection.class),
+ oObj.getPropertyValue("ActiveConnection"));
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ throw new StatusException("couldn't convert Any",iae);
+ }
+
+ result = (the_connection != null);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("the property is unknown");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println(e.getMessage());
+ }
+
+ tRes.tested("ActiveConnection", result) ;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // EOF DatasourceAdministrationDialog
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java b/qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java
new file mode 100644
index 000000000..082bb7415
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.sdb.SingleSelectQueryComposer</code>
+ * service properties :
+ * <ul>
+ * <li><code> Original</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.sdb.SingleSelectQueryComposer
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertySetInfo
+ * @see com.sun.star.beans.Property
+ * @see com.sun.star.lang.XServiceInfo
+ */
+public class _SingleSelectQueryComposer extends MultiPropertyTest {
+
+
+} // finish class _SingleSelectQueryComposer
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java
new file mode 100644
index 000000000..a0ddfdd57
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XBookmarksSupplier;
+
+
+/**
+ * Testing <code>com.sun.star.sdb.XBookmarksSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getBookmarks()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.sdb.XBookmarksSupplier
+ */
+public class _XBookmarksSupplier extends MultiMethodTest {
+
+ public XBookmarksSupplier oObj = null ;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getBookmarks() {
+ XNameAccess bookmarks = oObj.getBookmarks();
+ tRes.tested("getBookmarks()",bookmarks != null);
+ }
+
+} // finish class _XBookmarksSupplier
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java b/qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java
new file mode 100644
index 000000000..12542edaa
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.sdb.XCompletedConnection;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.task.XInteractionHandler;
+
+/**
+ * Testing <code>com.sun.star.sdb.XCompletedConnection</code>
+ * interface methods :
+ * <ul>
+ * <li><code> connectWithCompletion()</code></li>
+ * </ul> <p>
+* The following object relations required :
+* <ul>
+* <li> <code>'XCompletedConnection.Handler'</code> : passed as parameter
+* to <code>connectWithCompletion</code> method. </li>
+* </ul>
+* @see com.sun.star.sdb.XCompletedConnection
+* @see com.sun.star.task.XInteractionHandler
+* @see com.sun.star.sdbc.XConnection
+*/
+public class _XCompletedConnection extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCompletedConnection oObj = null ;
+
+ /**
+ * Test call the method with handler passed as object relation.
+ * Then value returned is checked.<p>
+ * Has OK status if not null value returned. <&nbsp>
+ * FAILED if exception occurred, null value returned or object
+ * relation was not found.
+ */
+ public void _connectWithCompletion() throws StatusException {
+ XInteractionHandler handler = (XInteractionHandler)
+ tEnv.getObjRelation("XCompletedConnection.Handler") ;
+
+ if (handler == null) {
+ log.println("Required object relation not found !") ;
+ tRes.tested("connectWithCompletion()", false) ;
+ return ;
+ }
+
+ XConnection con = null ;
+ try {
+ con = oObj.connectWithCompletion(handler) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ throw new StatusException("Exception while method calling", e) ;
+ }
+
+ tRes.tested("connectWithCompletion()", con != null) ;
+ }
+} // finish class _XCompletedConnection
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java b/qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java
new file mode 100644
index 000000000..548b86c96
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.sdb;
+
+import com.sun.star.sdb.XCompletedExecution;
+import com.sun.star.task.XInteractionHandler;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+/**
+ *
+ */
+public class _XCompletedExecution extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCompletedExecution oObj = null ;
+
+ private CheckInteractionHandler checkHandler = null;
+ /**
+ * Interface to implement so the call of the listener can be checked.
+ */
+ public interface CheckInteractionHandler extends XInteractionHandler {
+ /**
+ * Set a log of the listener, so messages of the listener get printed
+ * into the file of the interface
+ */
+ void setLog(PrintWriter log);
+ /**
+ * Return True, when the listener was called correctly.
+ */
+ boolean checkInteractionHandler();
+ }
+
+ @Override
+ protected void before() {
+ checkHandler = (CheckInteractionHandler)
+ tEnv.getObjRelation("InteractionHandlerChecker");
+ if (checkHandler == null)
+ throw new StatusException("Missing object relation 'InteractionHandlerChecker'", new Exception());
+ checkHandler.setLog(log);
+ }
+
+
+ public void _executeWithCompletion() {
+ try {
+ oObj.executeWithCompletion(checkHandler);
+ }
+ catch(com.sun.star.sdbc.SQLException e) {
+ e.printStackTrace(log);
+ tRes.tested("executeWithCompletion()", false);
+ return;
+ }
+
+ tRes.tested("executeWithCompletion()", checkHandler.checkInteractionHandler());
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java
new file mode 100644
index 000000000..3ca625281
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XFormDocumentsSupplier;
+
+/**
+* <code>com.sun.star.sdb.XFormDocumentsSupplier</code> interface
+* testing.
+* @see com.sun.star.sdb.XFormDocumentsSupplier
+*/
+public class _XFormDocumentsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XFormDocumentsSupplier oObj = null ;
+
+ /**
+ * Has OK status if not null returned. <p>
+ */
+ public void _getFormDocuments() {
+
+ XNameAccess docs = oObj.getFormDocuments() ;
+
+ String[] docNames = docs.getElementNames() ;
+ if (docNames != null) {
+ log.println("Totally " + docNames.length + " documents :") ;
+ for (int i = 0; i < docNames.length; i++)
+ log.println(" " + docNames[i]) ;
+ }
+
+ tRes.tested("getFormDocuments()", docNames != null) ;
+ }
+
+} // finish class _XFormDocumentsSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java
new file mode 100644
index 000000000..0c40f8547
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.sdb.XParametersSupplier;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.sdb.XParametersSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getParameters()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.sdb.XParametersSupplier
+*/
+public class _XParametersSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XParametersSupplier oObj = null ;
+
+ /**
+ * checks of the return of <code>getParameters()</code>
+ * is not null
+ */
+ public void _getParameters() {
+
+ XIndexAccess the_Set = oObj.getParameters();
+ if (the_Set == null) log.println("'getParameters()' returns NULL");
+ tRes.tested("getParameters()",the_Set != null);
+
+ }
+} // finish class _XParametersSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java
new file mode 100644
index 000000000..a8d88983a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XQueryDefinitionsSupplier;
+
+/**
+ * Testing <code>com.sun.star.sdb.XQueryDefinitionsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getQueryDefinitions()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.sdb.XQueryDefinitionsSupplier
+ */
+public class _XQueryDefinitionsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XQueryDefinitionsSupplier oObj = null ;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getQueryDefinitions() {
+
+ XNameAccess docs = oObj.getQueryDefinitions() ;
+
+ String[] docNames = docs.getElementNames() ;
+ if (docNames != null) {
+ log.println("Totally " + docNames.length + " queries :") ;
+ for (int i = 0; i < docNames.length; i++)
+ log.println(" " + docNames[i]) ;
+ }
+
+ tRes.tested("getQueryDefinitions()", docNames != null) ;
+ }
+
+} // finish class _XQueryDefinitionsSupplier
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java b/qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java
new file mode 100644
index 000000000..fe1b5f0b1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdb.XReportDocumentsSupplier;
+
+/**
+* <code>com.sun.star.sdb.XReportDocumentsSupplier</code> interface
+* testing.
+* @see com.sun.star.sdb.XReportDocumentsSupplier
+*/
+public class _XReportDocumentsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XReportDocumentsSupplier oObj = null ;
+
+ /**
+ * Has OK status if not null returned. <p>
+ */
+ public void _getReportDocuments() {
+
+ XNameAccess docs = oObj.getReportDocuments() ;
+
+ String[] docNames = docs.getElementNames() ;
+ if (docNames != null) {
+ log.println("Totally " + docNames.length + " documents :") ;
+ for (int i = 0; i < docNames.length; i++)
+ log.println(" " + docNames[i]) ;
+ }
+
+ tRes.tested("getReportDocuments()", docNames != null) ;
+ }
+
+} // finish class _XReportDocumentsSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java b/qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java
new file mode 100644
index 000000000..f689c6cbf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.sdb.XResultSetAccess;
+import com.sun.star.sdbc.XResultSet;
+
+/**
+* Testing <code>com.sun.star.sdb.XResultSetAccess</code>
+* interface methods :
+* <ul>
+* <li><code> createResultSet()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.sdb.XResultSetAccess
+*/
+public class _XResultSetAccess extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XResultSetAccess oObj = null ;
+
+ /**
+ * tries to create a ResultSet for the Object</br>
+ * an XResultSet is returned.</br>
+ * The test is OK if a not null ResultSet is returned
+ */
+ public void _createResultSet() {
+
+ try {
+ XResultSet the_Set = oObj.createResultSet();
+ if (the_Set == null) log.println("'createResulSet()' returns NULL");
+ tRes.tested("createResultSet()",the_Set != null);
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Exception while checking 'createResultSet()'");
+ e.printStackTrace(log);
+ tRes.tested("createResultSet()",false);
+ }
+
+ }
+} // finish class _XResultSetAccess
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java b/qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java
new file mode 100644
index 000000000..62911c851
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java
@@ -0,0 +1,207 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.sdb.RowChangeEvent;
+import com.sun.star.sdb.XRowSetApproveBroadcaster;
+import com.sun.star.sdb.XRowSetApproveListener;
+
+/**
+* <code>com.sun.star.sdb.XRowSetApproveBroadcaster</code> interface test. <p>
+* Required object relations :
+* <ul>
+* <li> <code>'XRowSetApproveBroadcaster.ApproveChecker'</code>:
+* implementation of inner interface <code>RowSetApproveChecker</code>
+* which can move cursor within a rowset, change row, and change the
+* whole rowset. </li>
+* </ul> <p>
+* It is better to recreate the object after test, because of unknown
+* actions made by <code>RowSetApproveChecker</code> interface implementation.
+*
+* @see com.sun.star.sdb.XRowSetApproveBroadcaster
+* @see _XRowSetApproveBroadcaster.RowSetApproveChecker
+*/
+public class _XRowSetApproveBroadcaster extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XRowSetApproveBroadcaster oObj = null ;
+
+ /**
+ * The purpose of this interface is to pass to this test
+ * relation which can make some operations with row set
+ * on which <code>XRowSetApproveListener</code>s can react.
+ * @see com.sun.star.sdb.XRowSetApproveListener
+ */
+ public interface RowSetApproveChecker {
+ /**
+ * Moves cursor within row set. Method <code>approveCursorMove</code>
+ * of <code>XRowSetApproveListener</code> must be called.
+ */
+ void moveCursor() ;
+ /**
+ * Change rows in row set. Method <code>approveRowChange</code>
+ * of <code>XRowSetApproveListener</code> must be called.
+ * @return <code>RowChangeEvent</code> structure which contains
+ * what type of change was made and how many rows it affected.
+ * @see com.sun.star.sdb.RowChangeEvent
+ */
+ RowChangeEvent changeRow() ;
+ /**
+ * Change the whole row set. Method <code>approveRowSetChange</code>
+ * of <code>XRowSetApproveListener</code> must be called.
+ */
+ void changeRowSet() ;
+ }
+
+ /**
+ * Implementation of <code>XRowSetApproveListener</code> interface
+ * which just detects and stores approve requirements. They are checked
+ * later.
+ */
+ private static class TestListener implements XRowSetApproveListener {
+ public boolean approveRequests = true ;
+ public boolean approveCursorMoveCalled = false ;
+ public boolean approveRowChangeCalled = false ;
+ public RowChangeEvent approveRowChangeEvent = null ;
+ public boolean approveRowSetChangeCalled = false ;
+
+ public TestListener(boolean approve) {
+ approveRequests = approve ;
+ }
+
+ public void reset() {
+ approveCursorMoveCalled = false ;
+ approveRowChangeCalled = false ;
+ approveRowSetChangeCalled = false ;
+ }
+ public boolean approveCursorMove(EventObject ev) {
+ approveCursorMoveCalled = true ;
+ return approveRequests ;
+ }
+ public boolean approveRowChange(RowChangeEvent ev) {
+ approveRowChangeCalled = true ;
+ approveRowChangeEvent = ev ;
+ return approveRequests ;
+ }
+ public boolean approveRowSetChange(EventObject ev) {
+ approveRowSetChangeCalled = true ;
+ return approveRequests ;
+ }
+ public void disposing(EventObject ev) {}
+ }
+ private TestListener listener1 = null ;
+
+ private RowSetApproveChecker checker = null ;
+
+ /**
+ * Tries to retrieve object relation.
+ */
+ @Override
+ public void before() {
+ checker = (RowSetApproveChecker) tEnv.getObjRelation
+ ("XRowSetApproveBroadcaster.ApproveChecker") ;
+
+ if (checker == null) {
+ log.println("!!! Relation for test not found !!!") ;
+ throw new StatusException(Status.failed
+ ("!!! Relation for test not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates and adds listener, then call <code>RowSetApproveChecker</code>
+ * methods for listener methods to be called. Then checks if
+ * listener methods were called on appropriate actions. <p>
+ * Has OK status : If and only if appropriate listener methods called,
+ * and listener <code>approveRowChange</code> method has write parameter,
+ * i.e. type and rows number expected.
+ */
+ public void _addRowSetApproveListener() {
+ listener1 = new TestListener(true) ;
+ oObj.addRowSetApproveListener(listener1) ;
+ log.println("Listener added.") ;
+
+ boolean result = true ;
+
+ checker.moveCursor() ;
+ log.println("Cursor moved.") ;
+ result &= listener1.approveCursorMoveCalled ;
+
+ listener1.reset() ;
+ RowChangeEvent actualEvent = checker.changeRow() ;
+ log.println("Row changed.") ;
+
+ RowChangeEvent event = listener1.approveRowChangeEvent ;
+ result &= listener1.approveRowChangeCalled ;
+
+ boolean eventOK = event.Action == actualEvent.Action &&
+ event.Rows == actualEvent.Rows ;
+
+ result &= eventOK ;
+
+ listener1.reset() ;
+ checker.changeRowSet();
+ log.println("Row set changed.") ;
+ result &= listener1.approveRowSetChangeCalled ;
+
+ tRes.tested("addRowSetApproveListener()", result) ;
+ }
+
+ /**
+ * Removes listener inserted before, then perform all actions
+ * on which listener must react. <p>
+ * Has OK status if no listener methods were called. <p>
+ * Methods required to pass before :
+ * <ul>
+ * <li> <code>_addRowSetApproveListener</code> </li>
+ * </ul>
+ */
+ public void _removeRowSetApproveListener() {
+ requiredMethod("addRowSetApproveListener()") ;
+
+ listener1.reset() ;
+
+ oObj.removeRowSetApproveListener(listener1) ;
+
+ checker.moveCursor() ;
+ checker.changeRow() ;
+ checker.changeRowSet() ;
+
+ tRes.tested("removeRowSetApproveListener()",
+ !listener1.approveCursorMoveCalled &&
+ !listener1.approveRowChangeCalled &&
+ !listener1.approveRowSetChangeCalled) ;
+ }
+
+ /**
+ * Disposes object environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finish class _XRowSetApproveBroadcaster
+
+
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java b/qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java
new file mode 100644
index 000000000..ca2efa664
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java
@@ -0,0 +1,29 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.sdb;
+
+import com.sun.star.sdb.XSQLErrorBroadcaster;
+import lib.MultiMethodTest;
+
+/**
+ *
+ */
+public class _XSQLErrorBroadcaster extends MultiMethodTest {
+
+ public XSQLErrorBroadcaster oObj = null;
+}
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java
new file mode 100644
index 000000000..39aabf688
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java
@@ -0,0 +1,290 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import com.sun.star.sdb.XSingleSelectQueryAnalyzer;
+import lib.MultiMethodTest;
+import com.sun.star.sdb.XSingleSelectQueryComposer;
+import com.sun.star.uno.UnoRuntime;
+import lib.StatusException;
+import lib.Status;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+
+/**
+* Testing <code>com.sun.star.sdb.XSingleSelectQueryAnalyzer</code>
+* interface methods :
+* <ul>
+* <li><code>getQuery()</code></li>
+* <li><code>setQuery()</code></li>
+* <li><code>getFilter()</code></li>
+* <li><code>getStructuredFilter()</code></li>
+* <li><code>getGroup()</code></li>
+* <li><code>getGroupColumns()</code></li>
+* <li><code>getHavingClause()</code></li>
+* <li><code>getStructuredHavingClause()</code></li>
+* <li><code>getOrder()</code></li>
+* <li><code>getOrderColumns()</code></li>
+
+* </ul> <p>
+* @see com.sun.star.sdb.XSingleSelectQueryAnalyzer
+*/
+public class _XSingleSelectQueryAnalyzer extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XSingleSelectQueryAnalyzer oObj = null ;
+
+ private static final String queryString = "SELECT * FROM \"biblio\"";
+
+ private XSingleSelectQueryComposer xComposer = null;
+
+ /**
+ * Receives the object relations:
+ * <ul>
+ * <li><code>XSingleSelectQueryComposer xCompoer</code></li>
+ * </ul> <p>
+ * @see com.sun.star.sdb.XSingleSelectQueryComposer
+ */
+ @Override
+ protected void before() {
+
+ xComposer = UnoRuntime.queryInterface(XSingleSelectQueryComposer.class,
+ tEnv.getObjRelation("xComposer"));
+
+ if (xComposer == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xComposer'. Test must be modified"));
+
+ }
+
+ }
+ /**
+ * call <code>setQuery()</code> once with valid query, once with invalid
+ * query. Has ok if only on second call <code>SQLException</code> was thrown
+ */
+ public void _setQuery() {
+
+ try{
+ oObj.setQuery("This is an invalid SQL query");
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("expected Exception. ");
+ }
+
+ try{
+ oObj.setQuery(queryString);
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setQuery()", false);
+ }
+ tRes.tested("setQuery()", true);
+ }
+
+ /**
+ * checks of the returned value of <code>getQuery()</code>
+ * equals the string which was set by <code>setQuery()</code>
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setQuery</code></li>
+ *</ul>
+ */
+ public void _getQuery() {
+ this.requiredMethod("setQuery()");
+
+ boolean res = false;
+
+ res = oObj.getQuery().equals(queryString);
+
+ tRes.tested("getQuery()", res);
+ }
+
+
+ /**
+ * Object relation <code>xComposer</code> set a filter. This filter
+ * must returned while calling <code>getFilter</code>
+ */
+ public void _getFilter() {
+ try{
+ String filter = "\"Identifier\" = 'BOR02b'";
+ xComposer.setFilter(filter);
+ tRes.tested("getFilter()", oObj.getFilter().equals(filter));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getFilter()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a complex filter with method
+ . <code>setFilter</code>. Then <code>getStructuredFilter</code> returns a
+ * sequence of <code>PropertyValue</code> which was set with method
+ * <code>setStructuredFilter</code> from <xComposer>.
+ * Then test has ok status if <getFilter> returns the complex filter.
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setQuery</code></li>
+ * <li><code>getFilter</code></li>
+ *</ul>
+ */
+ public void _getStructuredFilter() {
+ requiredMethod("setQuery()");
+ requiredMethod("getFilter()");
+ try{
+ oObj.setQuery("SELECT \"Identifier\", \"Type\", \"Address\" FROM \"biblio\" \"biblio\"");
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ xComposer.setFilter(complexFilter);
+ PropertyValue[][] aStructuredFilter = oObj.getStructuredFilter();
+
+ xComposer.setFilter("");
+ xComposer.setStructuredFilter(aStructuredFilter);
+ tRes.tested("getStructuredFilter()", oObj.getFilter().equals(complexFilter));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getStructuredFilter()", false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getStructuredFilter()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a goup. This group
+ * must returned while calling <code>getGroup</code>
+ */
+ public void _getGroup() {
+ try{
+ String group = "\"Identifier\"";
+ xComposer.setGroup(group);
+ tRes.tested("getGroup()", oObj.getGroup().equals(group));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getGroup()", false);
+ }
+ }
+
+ /**
+ * Method <code>getGroupColumns</code> returns a <code>XIndexAccess</code>
+ * Test has ok status if returned value is a usable <code>XIndexAccess</code>
+ */
+ public void _getGroupColumns() {
+ try{
+ XIndexAccess xGroupColumns = oObj.getGroupColumns();
+
+ tRes.tested("getGroupColumns()", (xGroupColumns != null &&
+ xGroupColumns.getCount() == 1 &&
+ xGroupColumns.getByIndex(0) != null));
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getGroupColumns()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getGroupColumns()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a clause. This clause
+ * must returned while calling <code>getHavingClause</code>
+ */
+ public void _getHavingClause() {
+ try{
+ String clause = "\"Identifier\" = 'BOR02b'";
+ xComposer.setHavingClause(clause);
+ tRes.tested("getHavingClause()", oObj.getHavingClause().equals(clause));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getHavingClause()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set a clause. This clause
+ * must returned while calling <code>getHavingClause</code>
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setQuery</code></li>
+ * <li><code>getFilter</code></li>
+ * <li><code>getStructuredFilter</code></li>
+ *</ul>
+ */
+ public void _getStructuredHavingClause() {
+ requiredMethod("setQuery()");
+ requiredMethod("getFilter()");
+ executeMethod("getStructuredFilter()");
+
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ try{
+ xComposer.setHavingClause(complexFilter);
+ PropertyValue[][] aStructuredHaving = oObj.getStructuredHavingClause();
+ xComposer.setHavingClause("");
+ xComposer.setStructuredHavingClause(aStructuredHaving);
+ tRes.tested("getStructuredHavingClause()",
+ oObj.getHavingClause().equals(complexFilter));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getStructuredHavingClause()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xComposer</code> set an order. This order
+ * must returned while calling <code>getOrder</code>
+ */
+ public void _getOrder() {
+ try{
+ String order = "\"Identifier\"";
+ xComposer.setOrder(order);
+ tRes.tested("getOrder()", oObj.getOrder().equals(order));
+
+ } catch (com.sun.star.sdbc.SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getOrder()", false);
+ }
+ }
+
+ /**
+ * Method <code>getGroupColumns</code> returns a <code>XIndexAccess</code>
+ * Test has ok status if returned value is a usable <code>XIndexAccess</code>
+ */
+ public void _getOrderColumns() {
+ try{
+ XIndexAccess xOrderColumns = oObj.getOrderColumns();
+ tRes.tested("getOrderColumns()", (xOrderColumns != null &&
+ xOrderColumns.getCount() == 1 &&
+ xOrderColumns.getByIndex(0) != null));
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getOrderColumns()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("getOrderColumns()", false);
+ }
+ }
+
+
+} // finish class _XSingleSelectQueryAnalyzer
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
new file mode 100644
index 000000000..53b31f693
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
@@ -0,0 +1,521 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdb;
+
+import com.sun.star.sdb.XSingleSelectQueryComposer;
+import lib.MultiMethodTest;
+import com.sun.star.sdb.XSingleSelectQueryAnalyzer;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import lib.StatusException;
+import lib.Status;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.sdb.SQLFilterOperator;
+import com.sun.star.sdbc.SQLException;
+
+/**
+* Testing <code>com.sun.star.sdb.XSingleSelectQueryComposer</code>
+* interface methods :
+* <ul>
+* <li><code>setFilter()</code></li>
+* <li><code>setStructuredFilter()</code></li>
+* <li><code>appendFilterByColumn()</code></li>
+* <li><code>appendGroupByColumn()</code></li>
+* <li><code>setGroup()</code></li>
+* <li><code>setHavingClause()</code></li>
+* <li><code>setStructuredHavingClause()</code></li>
+* <li><code>appendHavingClauseByColumn()</code></li>
+* <li><code>appendOrderByColumn()</code></li>
+* <li><code>setOrder()</code></li>
+
+* </ul> <p>
+* @see com.sun.star.sdb.XSingleSelectQueryComposer
+*/
+public class _XSingleSelectQueryComposer extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XSingleSelectQueryComposer oObj = null ;
+
+ private XSingleSelectQueryAnalyzer xQueryAna = null;
+
+ private XPropertySet xProp = null;
+
+ private String colName = null;
+
+ private XResultSet xReSet = null;
+
+ /**
+ * Retrieves the object relations:
+ * <ul>
+ * <li><code>XSingleSelectQueryAnalyzer xQueryAna</code></li>
+ * <li><code>XPropertySet xProp</code></li>
+ * <li><code>String colName</code></li>
+ * </ul> <p>
+ * @see com.sun.star.sdb.XSingleSelectQueryAnalyzer
+ * @see com.sun.star.beans.XPropertySet
+ */
+ @Override
+ protected void before() /* throws Exception*/ {
+
+ xQueryAna = UnoRuntime.queryInterface(XSingleSelectQueryAnalyzer.class,
+ tEnv.getObjRelation("xQueryAna"));
+
+ if (xQueryAna == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xQueryAna'. Test must be modified"));
+
+ }
+
+ xProp = UnoRuntime.queryInterface(XPropertySet.class,
+ tEnv.getObjRelation("xProp"));
+
+ if (xProp == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xProp'. Test must be modified"));
+
+ }
+
+ xReSet = UnoRuntime.queryInterface(XResultSet.class,
+ tEnv.getObjRelation("xResultSet"));
+
+ if (xReSet == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'xResultSet'. Test must be modified"));
+
+ }
+
+ try
+ {
+ colName = AnyConverter.toString(tEnv.getObjRelation("colName"));
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ colName = null;
+ }
+
+ if (colName == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get object relation 'colName'. Test must be modified"));
+
+ }
+
+ }
+
+
+ /**
+ * Object relation <code>xQueryAna</code> set a filter. This filter
+ * must returned while calling <code>getFilter</code>
+ */
+ public void _setFilter() {
+ try{
+ String filter = "\"Identifier\" = 'BOR02b'";
+ oObj.setFilter(filter);
+ tRes.tested("setFilter()", xQueryAna.getFilter().equals(filter));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setFilter()", false);
+ }
+ }
+
+ /**
+ * Object relation <code>xQueryAna</code> set a complex filter with method
+ . <code>setFilter</code>. Then <code>getStructuredFilter</code> returns a
+ * sequence of <code>PropertyValue</code> which was set with method
+ * <code>setStructuredFilter</code> from <code>xQueryAna</code>.
+ * Then test has ok status if <code>getFilter</code> returns the complex filter.
+ */
+ public void _setStructuredFilter() {
+ requiredMethod("setFilter()");
+ try{
+ xQueryAna.setQuery("SELECT \"Identifier\", \"Type\", \"Address\" FROM \"biblio\" \"biblio\"");
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ oObj.setFilter(complexFilter);
+ PropertyValue[][] aStructuredFilter = xQueryAna.getStructuredFilter();
+ oObj.setFilter("");
+ oObj.setStructuredFilter(aStructuredFilter);
+ tRes.tested("setStructuredFilter()", xQueryAna.getFilter().equals(complexFilter));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setStructuredFilter()", false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setStructuredFilter()", false);
+ }
+ }
+
+ /**
+ * At first the object relation <code>xProp</code> was set as parameter.
+ * Relation <code>xQueryAna</code> was used to check if relation
+ * <code>colName</code> was found.
+ * Second an empty <code>XPropertySet</code> was used as parameter. A
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendFilterByColumn() {
+ boolean ok = true;
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ try
+ {
+ oObj.appendFilterByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendFilterByColumn()", false);
+ ok = false;
+ }
+ catch (com.sun.star.uno.RuntimeException e)
+ {
+ log.println("expected Exception: " + e.toString());
+ ok = ok && true;
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try
+ {
+ xReSet.first();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ try{
+
+ oObj.appendFilterByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("appendFilterByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try{
+
+ oObj.appendFilterByColumn(xProp, false,SQLFilterOperator.EQUAL);
+ log.println("appendFilterByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try{
+ XPropertySet dummy = null;
+ oObj.appendFilterByColumn(dummy, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendFilterByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendFilterByColumn()", false);
+ }
+ tRes.tested("appendFilterByColumn()", ok);
+ }
+
+ /**
+ * At first the object relation <code>xProp</code> was used as parameter.
+ * Relation <code>xQueryAna</code> was used to check if relation
+ * <code>colName</code> was found.
+ * Second an empty <code>XPropertySet</code> was used as parameter. An
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendGroupByColumn() {
+ boolean ok = true;
+ try{
+
+ oObj.appendGroupByColumn(xProp);
+ log.println("appendGroupByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendGroupByColumn()", false);
+ }
+ try{
+ XPropertySet dummy = null;
+ oObj.appendGroupByColumn(dummy);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendGroupByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ }
+ tRes.tested("appendGroupByColumn()", ok);
+ }
+
+ /**
+ * The group which was set by <code>setGroup</code> must be returned
+ * while calling from object relation <code>XQueryAna</code>
+ * method <code>getGroup</code>
+ */
+ public void _setGroup() {
+ try{
+ String group = "\"Identifier\"";
+ oObj.setGroup(group);
+ tRes.tested("setGroup()", xQueryAna.getGroup().equals(group));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setGroup()", false);
+ }
+ }
+
+
+ /**
+ * The clause which was set by <code>setHavingClause</code> must be returned
+ * while calling from object relation <code>XQueryAna</code>
+ * method <code>getHavingClause</code>
+ */
+ public void _setHavingClause() {
+ try{
+ String clause = "\"Identifier\" = 'BOR02b'";
+ oObj.setHavingClause(clause);
+ tRes.tested("setHavingClause()",
+ xQueryAna.getHavingClause().equals(clause));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setHavingClause()", false);
+ }
+ }
+
+ /**
+ * At first <code>setHavingClause</code> sets a complex clause.
+ * Then method <code>getStructuredHavingClause</code> from object relation
+ * <code>xQueryAna</code> returns a valid <code>PropertyValue[][]</code>
+ * Method <code>setHavingClause</code> was called with an empty string to
+ * reset filter. Now <code>setStructuredHavingClause</code> with the valid
+ * <code>PropertyValue[][]</code> as parameter was called.
+ * Test is ok if <code>getHavingClause</code> from <code>xQueryAna</code>
+ * returns the complex clause from beginning.
+ * <p>
+ * required methods:
+ *<ul>
+ * <li><code>setHavingClause</code></li>
+ * <li><code>setStructuredFilter</code></li>
+ *</ul>
+ */
+ public void _setStructuredHavingClause() {
+ requiredMethod("setHavingClause()");
+ executeMethod("setStructuredFilter()");
+ String complexFilter = "( \"Identifier\" >= '1' AND \"Type\" <= '4' ) OR ( \"Identifier\" <> '2' AND \"Type\" = '5' ) OR ( \"Identifier\" < '3' AND \"Type\" > '6' AND \"Address\" = '7' ) OR ( \"Address\" >= '8' ) OR ( \"Type\" = '9' )";
+ try{
+ oObj.setHavingClause(complexFilter);
+ PropertyValue[][] aStructuredHaving =
+ xQueryAna.getStructuredHavingClause();
+ oObj.setHavingClause("");
+ oObj.setStructuredHavingClause(aStructuredHaving);
+ tRes.tested("setStructuredHavingClause()",
+ xQueryAna.getHavingClause().equals(complexFilter));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setStructuredHavingClause()", false);
+ }
+ }
+
+ /**
+ * First object relation <code>xProp</code> was used as parameter. Relation
+ * <code>xQueryAna</code> was used to check if relation <code>colName</code>
+ * was found.
+ * Second an empty <code>XPropertySet</code> was given as parameter. An
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendHavingClauseByColumn() {
+ boolean ok = true;
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+ try{
+
+ oObj.appendHavingClauseByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendHavingClauseByColumn()", false);
+ ok = false;
+
+ }
+ catch (com.sun.star.uno.RuntimeException e)
+ {
+ log.println("expected Exception: " + e.toString());
+ ok = ok && true;
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+
+ try
+ {
+ xReSet.first();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+ try{
+
+ oObj.appendHavingClauseByColumn(xProp, true,SQLFilterOperator.EQUAL);
+ log.println("appendHavingClauseByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+
+ try{
+ XPropertySet dummy = null;
+ oObj.appendHavingClauseByColumn(dummy, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendHavingClauseByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ } catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+
+ // cleanup
+ try
+ {
+ xReSet.beforeFirst();
+ }
+ catch (SQLException e)
+ {
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendHavingClauseByColumn()", false);
+ }
+ tRes.tested("appendHavingClauseByColumn()", ok);
+ }
+
+ /**
+ * First object relation <code>xProp</code> was set as parameter. Relation
+ * <code>xQueryAna</code> was used to check if relation <code>colName</code>
+ * was found.
+ * Second an empty <code>XPropertySet</code> was given as parameter. An
+ * <code>SQLException</code> must be thrown.
+ */
+ public void _appendOrderByColumn() {
+ boolean ok = true;
+ try{
+
+ oObj.appendOrderByColumn(xProp, true);
+ log.println("appendOrderByColumn: " + xQueryAna.getFilter());
+ ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("appendOrderByColumn()", false);
+ }
+ try{
+ XPropertySet dummy = null;
+ oObj.appendOrderByColumn(dummy, true);
+ log.println("expected Exception was not thrown");
+ tRes.tested("appendOrderByColumn()", false);
+
+ } catch (SQLException e){
+ log.println("expected Exception");
+ ok = ok && true;
+ }
+ tRes.tested("appendOrderByColumn()", ok);
+ }
+
+
+ /**
+ * Method <code>getOrder</code> from object relation <code>xQueryAna</code>
+ * checks the order which was set while calling <code>setOrder</code>
+ */
+ public void _setOrder() {
+ try{
+ String order = "\"Identifier\"";
+ oObj.setOrder(order);
+ tRes.tested("setOrder()", xQueryAna.getOrder().equals(order));
+
+ } catch (SQLException e){
+ log.println("unexpected Exception: " + e.toString());
+ tRes.tested("setOrder()", false);
+ }
+ }
+
+
+
+} // finish class _XSingleSelectQueryComposer
diff --git a/qadevOOo/tests/java/ifc/sdbc/_ResultSet.java b/qadevOOo/tests/java/ifc/sdbc/_ResultSet.java
new file mode 100644
index 000000000..56724524e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_ResultSet.java
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.sdbc.ResultSet</code>
+* service properties :
+* <ul>
+* <li><code> CursorName</code></li>
+* <li><code> ResultSetConcurrency</code></li>
+* <li><code> ResultSetType</code></li>
+* <li><code> FetchDirection</code></li>
+* <li><code> FetchSize</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.sdbc.ResultSet
+*/
+public class _ResultSet extends MultiPropertyTest {
+
+
+} // finish class _ResultSet
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_RowSet.java b/qadevOOo/tests/java/ifc/sdbc/_RowSet.java
new file mode 100644
index 000000000..fae52a637
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_RowSet.java
@@ -0,0 +1,72 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.uno.Any;
+
+
+/**
+* Testing <code>com.sun.star.sdbc.RowSet</code>
+* service properties :
+* <ul>
+* <li><code> DataSourceName</code></li>
+* <li><code> URL</code></li>
+* <li><code> Command</code></li>
+* <li><code> TransactionIsolation</code></li>
+* <li><code> TypeMap</code></li>
+* <li><code> EscapeProcessing</code></li>
+* <li><code> QueryTimeOut</code></li>
+* <li><code> MaxFieldSize</code></li>
+* <li><code> MaxRows</code></li>
+* <li><code> User</code></li>
+* <li><code> Password</code></li>
+* <li><code> ResultSetType</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.sdbc.RowSet
+*/
+public class _RowSet extends MultiPropertyTest {
+
+ /**
+ * Redefined method returns object, that contains changed property value.
+ */
+ public void _TypeMap() {
+ boolean result = false;
+ try {
+ Any TypeMap = (Any) oObj.getPropertyValue("TypeMap");
+ String TypeName = TypeMap.getType().getTypeName();
+ String expected = "com.sun.star.container.XNameAccess";
+ result = TypeName.equals(expected);
+ if (! result ) {
+ log.println("Expected Type is "+expected);
+ log.println("but the returned is "+TypeName);
+ }
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception " + e.getMessage());
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception " + e.getMessage());
+ }
+
+ tRes.tested("TypeMap",result);
+ }
+
+} // finish class _RowSet
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XCloseable.java b/qadevOOo/tests/java/ifc/sdbc/_XCloseable.java
new file mode 100644
index 000000000..efd39fd1f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XCloseable.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XCloseable;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.sdbc.XCloseable</code>
+* interface methods :
+* <ul>
+* <li><code> close()</code></li>
+* </ul> <p>
+* After test object must be recreated.
+* @see com.sun.star.sdbc.XCloseable
+*/
+public class _XCloseable extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCloseable oObj = null ;
+
+ /**
+ * Closes row set. If the component implements the interface
+ * <code>com.sun.star.sdbc.XResultSet</code> then tries to move
+ * the cursor to the first row in the result set.
+ * Has OK status if no exceptions were thrown during first call and
+ * if expected SQL exception was thrown during cursor moving.
+ */
+ public void _close() throws StatusException {
+ boolean res = false;
+ try {
+ oObj.close();
+ res = true;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL Exception occurred:" + e) ;
+ res = false;
+ }
+
+ XResultSet resSet = UnoRuntime.queryInterface(XResultSet.class, oObj);
+
+ if (resSet != null) {
+ try {
+ resSet.first();
+ log.println("Expected SQLException not occurred !");
+ res = false;
+ } catch(SQLException e) {
+ log.println("Expected SQLException occurred");
+ res = true;
+ }
+ }
+
+ tRes.tested("close()", res);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finish class _XCloseable
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XColumnLocate.java b/qadevOOo/tests/java/ifc/sdbc/_XColumnLocate.java
new file mode 100644
index 000000000..f1d57c5b7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XColumnLocate.java
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XColumnLocate;
+
+/**
+/**
+* Testing <code>com.sun.star.sdbc.XColumnLocate</code>
+* interface methods :
+* <ul>
+* <li><code> findColumn()</code></li>
+* </ul> <p>
+* The test required the following relations :
+* <ul>
+* <li> <code> XColumnLocate.ColumnName </code> : The name of the first
+* column. </li>
+* </ul>
+* @see com.sun.star.sdbc.XColumnLocate
+*/
+public class _XColumnLocate extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XColumnLocate oObj = null ;
+
+ /**
+ * Using column name from object relation trying to find out
+ * the index of this column. <p>
+ * Has OK status if column index returned by method equals to 1,
+ * FAILED otherwise.
+ */
+ public void _findColumn() {
+ boolean result = false ;
+ String colName = (String) tEnv.getObjRelation("XColumnLocate.ColumnName") ;
+
+ if (colName == null) {
+ throw new StatusException(
+ Status.failed("Object relation 'XColumnLocate.ColumnName' " +
+ "for this interface not found"));
+ }
+
+ try {
+ int colIdx = oObj.findColumn(colName) ;
+ result = colIdx == 1 ;
+ } catch (SQLException e) {
+ log.println("Exception occurred:");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("findColumn()", result);
+ }
+
+} // finish class _XColumnLocate
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XDataSource.java b/qadevOOo/tests/java/ifc/sdbc/_XDataSource.java
new file mode 100644
index 000000000..304ea7ded
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XDataSource.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XDataSource;
+
+/**
+* Testing <code>com.sun.star.sdbc.XDataSource</code>
+* interface methods :
+* <ul>
+* <li><code>getConnection()</code></li>
+* <li><code>setLoginTimeout()</code></li>
+* <li><code>getLoginTimeout()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbc.XDataSource
+*/
+public class _XDataSource extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XDataSource oObj = null;
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if exception wasn't thrown and
+ * if returned value isn't null.
+ */
+ public void _getConnection() {
+ boolean res = true;
+
+ try {
+ XConnection connection = oObj.getConnection("", "");
+ res = connection != null;
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception:");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("getConnection()", res);
+ }
+
+ /**
+ * Sets new timeout, compares with timeout returned by the method
+ * <code>getLoginTimeout()</code>.
+ * Has OK status if exception wasn't thrown and if timeout values are equal.
+ */
+ public void _setLoginTimeout() {
+ requiredMethod("getLoginTimeout()");
+ boolean res = true;
+
+ try {
+ final int TO = 111;
+ log.println("setLoginTimeout(" + TO + ")");
+ oObj.setLoginTimeout(TO);
+ int timeout = oObj.getLoginTimeout();
+ res = timeout == TO;
+ log.println("getLoginTimeout(): " + timeout);
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception:");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("setLoginTimeout()", res);
+ }
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if exception wasn't thrown and
+ * if returned value is equal to zero.
+ */
+ public void _getLoginTimeout() {
+ boolean res = true;
+
+ try {
+ int timeout = oObj.getLoginTimeout();
+ log.println("getLoginTimeout(): " + timeout);
+ res = timeout == 0;
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception:");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("getLoginTimeout()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XDriver.java b/qadevOOo/tests/java/ifc/sdbc/_XDriver.java
new file mode 100644
index 000000000..4b0eb147f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XDriver.java
@@ -0,0 +1,205 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.sdbc.DriverPropertyInfo;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XDriver;
+
+/**
+* Testing <code>com.sun.star.sdbc.XDriver</code>
+* interface methods :
+* <ul>
+* <li><code> connect()</code></li>
+* <li><code> acceptsURL()</code></li>
+* <li><code> getPropertyInfo()</code></li>
+* <li><code> getMajorVersion()</code></li>
+* <li><code> getMinorVersion()</code></li>
+* </ul> <p>
+* Required object relations :
+* <ul>
+* <li> <code>'XDriver.URL'</code>:
+* is the URL of the database to which to connect</code></li>
+* <li><code>'XDriver.UNSUITABLE_URL'</code>:
+* the wrong kind of URL to connect using given driver</li>
+* <li><code>'XDriver.INFO'</code>:
+* a list of arbitrary string tag/value pairs as connection arguments</li>
+* </ul> <p>
+* @see com.sun.star.sdbc.XDriver
+*/
+public class _XDriver extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XDriver oObj = null;
+ String url = null;
+ String wrongUrl = null;
+ String nbu = null;
+ PropertyValue[] info = null;
+
+ /**
+ * Retrieves relations.
+ * @throw StatusException If any relation not found.
+ */
+ @Override
+ protected void before() {
+ nbu = (String) tEnv.getObjRelation("NoBadURL");
+ url = (String)tEnv.getObjRelation("XDriver.URL");
+ if (url == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XDriver.URL'"));
+ }
+ wrongUrl = (String)tEnv.getObjRelation("XDriver.UNSUITABLE_URL");
+ if (wrongUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XDriver.WRONG_URL'"));
+ }
+ info = (PropertyValue[])tEnv.getObjRelation("XDriver.INFO");
+ if (info == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XDriver.INFO'"));
+ }
+ }
+
+ /**
+ * Connects to <code>'XDriver.URL'</code>,
+ * to <code>'XDriver.UNSUITABLE_URL'</code> and to wrong URL using
+ * <code>'XDriver.INFO'</code>.
+ * Has OK status if the method returns not null for <code>'XDriver.URL'</code>,
+ * null for <code>'XDriver.UNSUITABLE_URL'</code> and
+ * exception was thrown during the call with a wrong URL.
+ */
+ public void _connect() {
+ boolean res = true;
+
+ try {
+ log.println("Trying to connect to " + url);
+ XConnection connection = oObj.connect(url, info);
+ res = (connection != null);
+ log.println("Connected? " + res);
+ log.println("Trying to connect to " + wrongUrl);
+ connection = oObj.connect(wrongUrl, info);
+ res &= (connection == null);
+ log.println("Connected? " + !res);
+ } catch(SQLException e) {
+ log.println("Unexpected exception");
+ res &= false;
+ }
+
+ if (nbu==null) {
+ try {
+ String badUrl = url + "bla";
+ log.println("Trying to connect to " + badUrl);
+ oObj.connect(badUrl, info);
+ res &= false;
+ log.println("Expected exception isn't thrown");
+ } catch(SQLException e) {
+ log.println("Expected exception");
+ res &= true;
+ }
+ }
+
+ tRes.tested("connect()", res);
+ }
+
+ /**
+ * Calls the method for <code>'XDriver.URL'</code> and
+ * for <code>'XDriver.UNSUITABLE_URL'</code>.
+ * Has OK status if the method returns true for <code>'XDriver.URL'</code>
+ * and false for <code>'XDriver.UNSUITABLE_URL'</code>.
+ */
+ public void _acceptsURL() {
+ boolean res = false;
+
+ try {
+ res = oObj.acceptsURL(url);
+ log.println("Accepts " + url + "? " + res);
+ res &= !oObj.acceptsURL(wrongUrl);
+ log.println("Accepts " + wrongUrl + "? " + !res);
+ } catch(SQLException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("acceptsURL()", res);
+ }
+
+ /**
+ * Calls the method with passed <code>'XDriver.URL'</code> and
+ * <code>'XDriver.INFO'</code>. Prints obtained driver properties info
+ * to log.
+ * Has OK status if returned value isn't null.
+ */
+ public void _getPropertyInfo() {
+ requiredMethod("acceptsURL()");
+ boolean res = false;
+ DriverPropertyInfo[] dpi = null;
+ try {
+ dpi = oObj.getPropertyInfo(url, info);
+ } catch(SQLException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ if (dpi != null) {
+ res = true;
+ log.println("Driver properties info:");
+ for(int i = 0; i < dpi.length; i++) {
+ log.println("Property: " + dpi[i].Name);
+ log.println("Description: " + dpi[i].Description);
+ log.println("IsRequired? " + dpi[i].IsRequired);
+ log.println("Value: " + dpi[i].Value);
+ log.println("Choices: ");
+ for(int j = 0; j < dpi[i].Choices.length; j++) {
+ log.println("\t" + dpi[i].Choices[j]);
+ }
+ }
+ }
+
+ tRes.tested("getPropertyInfo()", res);
+ }
+
+ /**
+ * Calls the method.
+ * Has OK status if returned value is greater than or is equal to 1.
+ */
+ public void _getMajorVersion() {
+ int majorVer = oObj.getMajorVersion();
+ boolean res = majorVer >= 1;
+ log.println("Major version " + majorVer);
+ tRes.tested("getMajorVersion()", res);
+ }
+
+ /**
+ * Calls the method.
+ * Has OK status if returned value is greater than or is equal to 0.
+ */
+ public void _getMinorVersion() {
+ int minorVer = oObj.getMinorVersion();
+ boolean res = minorVer >= 0;
+ log.println("Minor version " + minorVer);
+ tRes.tested("getMinorVersion()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XDriverManager.java b/qadevOOo/tests/java/ifc/sdbc/_XDriverManager.java
new file mode 100644
index 000000000..57477b4a7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XDriverManager.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XDriverManager;
+
+/**
+* Testing <code>com.sun.star.sdbc.XDriverManager</code>
+* interface methods :
+* <ul>
+* <li><code> getConnection()</code></li>
+* <li><code> getConnectionWithInfo()</code></li>
+* <li><code> setLoginTimeout()</code></li>
+* <li><code> getLoginTimeout()</code></li>
+* </ul> <p>
+* Required object relations :
+* <ul>
+* <li> <code>'SDBC.URL'</code>:
+* is the URL of the database to which to connect using sdbc-driver
+* </code></li>
+* <li> <code>'JDBC.URL'</code>:
+* is the URL of the database to which to connect using jdbc-driver
+* </code></li>
+* <li> <code>'JDBC.INFO'</code> of type <code>PropertyValue[]</code>:
+* a list of arbitrary string tag/value pairs as connection arguments;
+* normally at least a "user" and "password" property should be included
+* </code></li>
+* </ul> <p>
+* @see com.sun.star.sdbc.XDriverManager
+*/
+public class _XDriverManager extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XDriverManager oObj = null;
+ String sdbcURL = null;
+ String jdbcURL = null;
+ PropertyValue[] jdbcINFO = null;
+
+ /**
+ * Retrieves the required object relations.
+ */
+ @Override
+ protected void before() {
+ sdbcURL = (String)tEnv.getObjRelation("SDBC.URL");
+ if (sdbcURL == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get relation 'SDBC.URL'"));
+ }
+ jdbcURL = (String)tEnv.getObjRelation("JDBC.URL");
+ if (jdbcURL == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get relation 'JDBC.URL'"));
+ }
+ jdbcINFO = (PropertyValue[])tEnv.getObjRelation("JDBC.INFO");
+ if (jdbcINFO == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get relation 'JDBC.INFO'"));
+ }
+ }
+
+ /**
+ * Calls the method with the url received from the relation
+ * <code>SDBC.URL</code>.
+ * Has OK status if exception wasn't thrown and
+ * if returned value isn't null.
+ */
+ public void _getConnection() {
+ boolean res = true;
+
+ try {
+ log.println("getConnection(" + sdbcURL + ")");
+ XConnection connection = oObj.getConnection(sdbcURL);
+ res = connection != null;
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("getConnection()", res);
+ }
+
+ /**
+ * Calls the method with the url received from the relation
+ * <code>JDBC.URL</code> and with info received from the relation
+ * <code>JDBC.INFO</code>.
+ * Has OK status if exception wasn't thrown and
+ * if returned value isn't null.
+ */
+ public void _getConnectionWithInfo() {
+ boolean res = true;
+
+ try {
+ log.println("getConnectionWithInfo(" + jdbcURL + ")");
+ XConnection connection =
+ oObj.getConnectionWithInfo(jdbcURL, jdbcINFO);
+ res = connection != null;
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("getConnectionWithInfo()", res);
+ }
+
+ /**
+ * Calls the method and checks returned value.
+ * Has OK status if timeout that was set and timeout that was returned by
+ * the method <code>getLoginTimeout()</code> are equal.
+ */
+ public void _setLoginTimeout() {
+ requiredMethod("getLoginTimeout()");
+ final int TO = 111;
+ log.println("setLoginTimeout(" + TO + ")");
+ oObj.setLoginTimeout(TO);
+ int timeout = oObj.getLoginTimeout();
+ log.println("getLoginTimeout(): " + timeout);
+ tRes.tested("setLoginTimeout()", timeout == TO);
+ }
+
+ /**
+ * Calls the method.
+ */
+ public void _getLoginTimeout() {
+ int timeout = oObj.getLoginTimeout();
+ log.println("getLoginTimeout(): " + timeout);
+
+ tRes.tested("getLoginTimeout()", true);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XIsolatedConnection.java b/qadevOOo/tests/java/ifc/sdbc/_XIsolatedConnection.java
new file mode 100644
index 000000000..64af7feb5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XIsolatedConnection.java
@@ -0,0 +1,111 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XIsolatedConnection;
+import com.sun.star.task.XInteractionHandler;
+
+/**
+ * Testing <code>com.sun.star.sdb.XCompletedConnection</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getIsolatedConnectionWithCompletion()</code></li>
+ * <li><code> getIsolatedConnection()</code></li>
+ * </ul> <p>
+* The following object relations required :
+* <ul>
+* <li> <code>'XCompletedConnection.Handler'</code> : passed as parameter
+* to <code>connectWithCompletion</code> method. </li>
+* </ul>
+* @see com.sun.star.sdb.XIsolatedConnection
+* @see com.sun.star.task.XInteractionHandler
+* @see com.sun.star.sdbc.XConnection
+*/
+public class _XIsolatedConnection extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XIsolatedConnection oObj = null ;
+
+ /**
+ * Test call the method with handler passed as object relation.
+ * Then value returned is checked.<p>
+ * Has OK status if not null value returned. <&nbsp>
+ * FAILED if exception occurred, null value returned or object
+ * relation was not found.
+ */
+ public void _getIsolatedConnectionWithCompletion() throws StatusException {
+ XInteractionHandler handler = (XInteractionHandler)
+ tEnv.getObjRelation("XCompletedConnection.Handler") ;
+
+ if (handler == null) {
+ log.println("Required object relation not found !") ;
+ tRes.tested("getIsolatedConnectionWithCompletion()", false) ;
+ return ;
+ }
+
+ XConnection con = null ;
+ try {
+ con = oObj.getIsolatedConnectionWithCompletion(handler) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ throw new StatusException("Exception while method calling", e) ;
+ }
+
+ tRes.tested("getIsolatedConnectionWithCompletion()", con != null) ;
+ }
+
+ /**
+ * Test call the method with handler passed as object relation.
+ * Then value returned is checked.<p>
+ * Has OK status if not null value returned. <&nbsp>
+ * FAILED if exception occurred, null value returned or object
+ * relation was not found.
+ */
+ public void _getIsolatedConnection() throws StatusException {
+ String[] userSettings = (String[])
+ tEnv.getObjRelation("UserAndPassword") ;
+
+ String user = null;
+ String pwd = null;
+
+ if (userSettings[0] != null)
+ user = userSettings[0].equals("")?"<empty>":userSettings[0];
+ else
+ user = "<null>";
+ if (userSettings[1] != null)
+ pwd = userSettings[1].equals("")?"<empty>":userSettings[1];
+ else
+ pwd = "<null>";
+
+ log.println("Testing \"getIsolatedConnection('user', 'password')\"\n" +
+ "with user = '" + user + "'; password = '" + pwd + "'");
+ XConnection con = null ;
+ try {
+ con = oObj.getIsolatedConnection(user, pwd) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ throw new StatusException("Exception while method calling", e) ;
+ }
+
+ tRes.tested("getIsolatedConnection()", con != null) ;
+ }
+} // finish class _XIsolatedConnection
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XParameters.java b/qadevOOo/tests/java/ifc/sdbc/_XParameters.java
new file mode 100644
index 000000000..4284931fe
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XParameters.java
@@ -0,0 +1,564 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import java.util.List;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.io.XDataInputStream;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XTextInputStream;
+import com.sun.star.sdbc.DataType;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XParameters;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.Date;
+import com.sun.star.util.DateTime;
+import com.sun.star.util.Time;
+
+/**
+/**
+* Testing <code>com.sun.star.sdbc.XParameters</code>
+* interface methods :
+* <ul>
+* <li><code> setNull()</code></li>
+* <li><code> setObjectNull()</code></li>
+* <li><code> setBoolean()</code></li>
+* <li><code> setByte()</code></li>
+* <li><code> setShort()</code></li>
+* <li><code> setInt()</code></li>
+* <li><code> setLong()</code></li>
+* <li><code> setFloat()</code></li>
+* <li><code> setDouble()</code></li>
+* <li><code> setString()</code></li>
+* <li><code> setBytes()</code></li>
+* <li><code> setDate()</code></li>
+* <li><code> setTime()</code></li>
+* <li><code> setTimestamp()</code></li>
+* <li><code> setBinaryStream()</code></li>
+* <li><code> setCharacterStream()</code></li>
+* <li><code> setObject()</code></li>
+* <li><code> setObjectWithInfo()</code></li>
+* <li><code> setRef()</code></li>
+* <li><code> setBlob()</code></li>
+* <li><code> setClob()</code></li>
+* <li><code> setArray()</code></li>
+* <li><code> clearParameters()</code></li>
+* </ul> <p>
+* Object relations required :
+* <ul>
+* <li> <code>'XParameters.ParamValues'</code> : is a
+* <code>java.util.Vector</code> object
+* that contains parameter types and values of the statement. Each
+* element of vector corresponds to appropriate parameter (element
+* with index 0 to parameter #1, 1 -> #2, etc.). <p>
+* The following <code>XParameters</code> methods correspond to classes
+* in Vector :
+* <ul>
+* <li> <code>setBinaryStream</code> -
+* <code>com.sun.star.io.XDataInputStream</code> class. </li>
+* <li> <code>setCharacterStream</code> -
+* <code>com.sun.star.io.XTextInputStream</code> class. </li>
+* <li> <code>setObject</code> -
+* <code>java.lang.Object[]</code> class, the element with
+* index 0 must be used. </li>
+* </ul>
+* Other methods uses types of their arguments (i.e.
+* <code>String</code>
+* for <code>setString</code> method, <code>com.sun.star.sdbc.XRef</code>
+* for <code>setRef</code> method).
+* </li>
+* </ul>
+* @see com.sun.star.sdbc.XParameters
+*/
+public class _XParameters extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XParameters oObj = null ;
+
+ private List<Object> data = null ;
+
+ /**
+ * Gets object relation
+ */
+ @Override
+ public void before() {
+ data = (List<Object>) tEnv.getObjRelation("XParameters.ParamValues") ;
+ if (data == null) {
+ log.println("!!! Relation not found !!!") ;
+ }
+ }
+
+ /**
+ * Sets String parameter (if exists) to SQL NULL value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setNull() {
+ boolean result = true ;
+ int idx = findParamOfType(String.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setNull(idx, DataType.VARCHAR) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setNull()", result) ;
+ }
+
+ public void _setObjectNull() {
+ /*
+ !!! TO DO !!!
+ */
+ tRes.tested("setObjectNull()", Status.skipped(true)) ;
+ }
+
+ /**
+ * Sets String parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setString() {
+ boolean result = true ;
+ int idx = findParamOfType(String.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setString(idx, "XParameters") ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setString()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setBoolean() {
+ boolean result = true ;
+ int idx = findParamOfType(Boolean.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setBoolean(idx, true) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setBoolean()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setByte() {
+ boolean result = true ;
+ int idx = findParamOfType(Byte.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setByte(idx, (byte)122) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setByte()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setShort() {
+ boolean result = true ;
+ int idx = findParamOfType(Short.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setShort(idx, (short)133) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setShort()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setInt() {
+ boolean result = true ;
+ int idx = findParamOfType(Integer.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setInt(idx, 13300) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setInt()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setLong() {
+ boolean result = true ;
+ int idx = findParamOfType(Long.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setLong(idx, 13362453) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setLong()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setFloat() {
+ boolean result = true ;
+ int idx = findParamOfType(Float.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setFloat(idx, (float)133.55) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setFloat()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setDouble() {
+ boolean result = true ;
+ int idx = findParamOfType(Double.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setDouble(idx, 133) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setDouble()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setBytes() {
+ boolean result = true ;
+ int idx = findParamOfType(byte[].class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setBytes(idx, new byte[] {5}) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setBytes()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setDate() {
+ boolean result = true ;
+ int idx = findParamOfType(Date.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setDate(
+ idx, new Date ((short)19, (short)1, (short)1979)) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setDate()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setTime() {
+ boolean result = true ;
+ int idx = findParamOfType(Time.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setTime(
+ idx, new Time((short)1,(short)2,(short)3,(short)44, false));
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setTime()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setTimestamp() {
+ boolean result = true ;
+ int idx = findParamOfType(DateTime.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.setTimestamp(idx, new DateTime((short)1,(short)2,(short)3,
+ (short)4, (short)19, (short)1, (short)1979, false)) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setTimestamp()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setBinaryStream() {
+ boolean result = true ;
+ int idx = findParamOfType(XDataInputStream.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ Object oStream = tParam.getMSF().
+ createInstance("com.sun.star.io.DataInputStream") ;
+ XInputStream xStream = UnoRuntime.queryInterface
+ (XInputStream.class, oStream);
+
+ oObj.setBinaryStream(idx, xStream, 2) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setBinaryStream()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setCharacterStream() {
+ boolean result = true ;
+ int idx = findParamOfType(XTextInputStream.class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ Object oStream = tParam.getMSF()
+ .createInstance("com.sun.star.io.TextInputStream") ;
+ XInputStream xStream = UnoRuntime.queryInterface
+ (XInputStream.class, oStream);
+
+ oObj.setCharacterStream(idx, xStream, 2) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setCharacterStream()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setObject() {
+ boolean result = true ;
+ int idx = findParamOfType(Object[].class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ Object obj = tParam.getMSF().
+ createInstance("com.sun.star.io.Pipe") ;
+
+ oObj.setObject(idx, obj) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setObject()", result) ;
+ }
+
+ /**
+ * Sets parameter (if exists) to new value. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _setObjectWithInfo() {
+ boolean result = true ;
+ int idx = findParamOfType(Object[].class) ;
+ if (idx < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ Object obj = tParam.getMSF().
+ createInstance("com.sun.star.io.Pipe") ;
+
+ oObj.setObjectWithInfo(idx, obj, DataType.OBJECT, 0) ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("setObjectWithInfo()", result) ;
+ }
+
+ public void _setRef() {
+ /*
+ !!! TO DO !!!
+ */
+ tRes.tested("setRef()", Status.skipped(true)) ;
+ }
+ public void _setBlob() {
+ /*
+ !!! TO DO !!!
+ */
+ tRes.tested("setBlob()", Status.skipped(true)) ;
+ }
+ public void _setClob() {
+ /*
+ !!! TO DO !!!
+ */
+ tRes.tested("setClob()", Status.skipped(true)) ;
+ }
+ public void _setArray() {
+ /*
+ !!! TO DO !!!
+ */
+ tRes.tested("setArray()", Status.skipped(true)) ;
+ }
+
+ /**
+ * Calls method. <p>
+ * Has OK status if no exceptions occurred.
+ */
+ public void _clearParameters() {
+ boolean result = true ;
+ try {
+ oObj.clearParameters() ;
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+
+ tRes.tested("clearParameters()", result) ;
+ }
+
+
+ /**
+ * Finds in relation vector index of parameter of the appropriate
+ * type.
+ */
+ private int findParamOfType(Class<?> clz) {
+ for (int i = 0; i < data.size(); i++)
+ if (clz.isInstance(data.get(i))) return i + 1 ;
+ return -1 ;
+ }
+
+} // finish class _XParameters
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XResultSet.java b/qadevOOo/tests/java/ifc/sdbc/_XResultSet.java
new file mode 100644
index 000000000..a2114d7d0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XResultSet.java
@@ -0,0 +1,497 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.sdbc.XRowUpdate;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+/**
+* Testing <code>com.sun.star.sdbc.XResultSet</code>
+* interface methods :
+* <ul>
+* <li><code> next()</code></li>
+* <li><code> isBeforeFirst()</code></li>
+* <li><code> isAfterLast()</code></li>
+* <li><code> isFirst()</code></li>
+* <li><code> isLast()</code></li>
+* <li><code> beforeFirst()</code></li>
+* <li><code> afterLast()</code></li>
+* <li><code> first()</code></li>
+* <li><code> last()</code></li>
+* <li><code> getRow()</code></li>
+* <li><code> absolute()</code></li>
+* <li><code> relative()</code></li>
+* <li><code> previous()</code></li>
+* <li><code> refreshRow()</code></li>
+* <li><code> rowUpdated()</code></li>
+* <li><code> rowInserted()</code></li>
+* <li><code> rowDeleted()</code></li>
+* <li><code> getStatement()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XResultSet.hasStatement'</code> (<b>optional</b> of type
+* <code>Object</code>):
+* it the relation exists than <code>getStatement</code> method
+* must not return <code>null</code> </li>
+* <ul> <p>
+* Test places DB cursor to different positions and then checks
+* its current position. <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.sdbc.XResultSet
+*/
+public class _XResultSet extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XResultSet oObj = null ;
+
+ /**
+ * Positions the cursor to the first row.
+ * Forces method tests to be executed in definite order.
+ */
+ @Override
+ public void before() {
+ try {
+ oObj.last() ;
+ log.println("Totally number of rows is " + oObj.getRow()) ;
+ oObj.first() ;
+ } catch (SQLException e) {
+ log.println("Ignored exception :") ;
+ e.printStackTrace(log);
+ }
+
+ executeMethod("isBeforeFirst()") ;
+ executeMethod("isAfterLast()") ;
+ executeMethod("isLast()") ;
+ executeMethod("isFirst()") ;
+ executeMethod("next()") ;
+ executeMethod("previous()") ;
+ }
+
+ /**
+ * Places the cursor before the first row. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _beforeFirst() {
+ try {
+ oObj.beforeFirst() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("beforeFirst()", false) ;
+ return ;
+ }
+ tRes.tested("beforeFirst()", true) ;
+ }
+
+ /**
+ * The method is called immediately after <code>beforeFirst</code>
+ * method test. <p>
+ * Has <b>OK</b> status if method returns <code>true</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> beforeFirst </code> : to position cursor before
+ * the first row. </li>
+ * </ul>
+ */
+ public void _isBeforeFirst() {
+ requiredMethod("beforeFirst()") ;
+
+ boolean result = true ;
+
+ try {
+ result = oObj.isBeforeFirst() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("isBeforeFirst()", result) ;
+ }
+
+ /**
+ * Places the cursor after the last row. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _afterLast() {
+ try {
+ oObj.afterLast() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("afterLast()", false) ;
+ return ;
+ }
+ tRes.tested("afterLast()", true) ;
+ }
+
+ /**
+ * The method is called immediately after <code>afterLast</code>
+ * method test. <p>
+ * Has <b>OK</b> status if method returns <code>true</code> <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> afterLast </code> : to position cursor after
+ * the last row. </li>
+ * </ul>
+ */
+ public void _isAfterLast() {
+ requiredMethod("afterLast()") ;
+
+ boolean result = true ;
+
+ try {
+ result = oObj.isAfterLast() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("isAfterLast()", result) ;
+ }
+
+ /**
+ * Places the cursor on the first row. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _first() {
+ try {
+ oObj.first() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("first()", false) ;
+ return ;
+ }
+ tRes.tested("first()", true) ;
+ }
+
+ /**
+ * The method is called immediately after <code>first</code>
+ * method test. <p>
+ * Has <b>OK</b> status if method returns <code>true</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> first </code> : to position cursor on
+ * the first row. </li>
+ * </ul>
+ */
+ public void _isFirst() {
+ requiredMethod("first()") ;
+
+ boolean result = true ;
+
+ try {
+ result = oObj.isFirst() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("isFirst()", result) ;
+ }
+
+ /**
+ * Places the cursor on the last row. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _last() {
+ try {
+ oObj.last() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("last()", false) ;
+ return ;
+ }
+ tRes.tested("last()", true) ;
+ }
+
+ /**
+ * The method is called immediately after <code>last</code>
+ * method test. <p>
+ * Has <b>OK</b> status if method returns <code>true</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> last </code> : to position cursor on
+ * the last row. </li>
+ * </ul>
+ */
+ public void _isLast() {
+ requiredMethod("last()") ;
+ boolean result = true ;
+
+ try {
+ result = oObj.isLast() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("isLast()", result) ;
+ }
+
+ /**
+ * Places the cursor on the row number 1. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _absolute() {
+ boolean result = true ;
+
+ try {
+ oObj.absolute(1) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("absolute()", result) ;
+ }
+
+ /**
+ * The method is called immediately after <code>absolute</code>
+ * method test. <p>
+ * Has <b>OK</b> status if method returns 1. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> absolute </code> : to position cursor on
+ * the row number 1. </li>
+ * </ul>
+ */
+ public void _getRow() {
+ requiredMethod("absolute()");
+ boolean result = true;
+
+ try {
+ result &= oObj.getRow() == 1;
+ } catch (SQLException e) {
+ log.println("Exception occurred:");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ tRes.tested("getRow()", result);
+ }
+
+ /**
+ * Positions the cursor to the next row. Current row
+ * number is retrieved before and after method call. <p>
+ * Has <b>OK</b> status if current row number increases
+ * by 1 after method call.
+ */
+ public void _next() {
+ boolean result = true ;
+
+ try {
+ int prevRow = oObj.getRow() ;
+ oObj.next() ;
+
+ log.println("Row was : " + prevRow + ", row is : " + oObj.getRow());
+ result &= prevRow + 1 == oObj.getRow() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("next()", result) ;
+ }
+
+ /**
+ * Positions the cursor to the previous row. Current row
+ * number is retrieved before and after method call. <p>
+ * Has <b>OK</b> status if current row number decreases
+ * by 1 after method call.
+ */
+ public void _previous() {
+ boolean result = true ;
+
+ try {
+ int prevRow = oObj.getRow() ;
+ oObj.previous() ;
+
+ log.println("Row was : " + prevRow + ", row is : " + oObj.getRow());
+ result &= prevRow - 1 == oObj.getRow() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("previous()", result) ;
+ }
+
+ /**
+ * Positions the cursor relatively by 2 rows forward.
+ * Current row number is retrieved before and after method call. <p>
+ * Has <b>OK</b> status if current row number increases
+ * by 2 after method call.
+ */
+ public void _relative() {
+ boolean result = true ;
+
+ try {
+ oObj.first() ;
+ int prevRow = oObj.getRow() ;
+ oObj.relative(2) ;
+
+ log.println("Row was : " + prevRow + ", row is : " + oObj.getRow());
+
+ result &= prevRow + 2 == oObj.getRow() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("relative()", result) ;
+ }
+
+ /**
+ * If component supports XRow and XRowUpdate then:
+ * test saves current value of string field, updates string,
+ * calls refreshRow() and checks that value of
+ * string field was refetched from DB
+ * else: just calls method.<p>
+ * Has <b>OK</b> status if no exceptions were thrown and value after
+ * refreshRow() equals to saved value.
+ */
+ public void _refreshRow() {
+ XRowUpdate xRowUpdate = UnoRuntime.queryInterface(XRowUpdate.class, oObj);
+ XRow xRow = UnoRuntime.queryInterface(XRow.class, oObj);
+
+ if (xRowUpdate == null || xRow == null) {
+ log.println("Test must be modified because XRow or XRowUpdate is't supported");
+ log.println("Only call method");
+ try {
+ oObj.refreshRow() ;
+ tRes.tested("refreshRow()", true) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("refreshRow()", false) ;
+ }
+ } else {
+ log.println("Testing of refreshRow()...");
+ try {
+ String oldValue = xRow.getString(util.DBTools.TST_STRING);
+ log.println("Old value: " + oldValue);
+ xRowUpdate.updateString(util.DBTools.TST_STRING,
+ "Test method refreshRow");
+ log.println("New value: "
+ + xRow.getString(util.DBTools.TST_STRING));
+ oObj.refreshRow();
+ String valAfterRefresh =
+ xRow.getString(util.DBTools.TST_STRING);
+ log.println("Value after refresh: " + valAfterRefresh);
+ tRes.tested("refreshRow()", valAfterRefresh.equals(oldValue));
+ } catch(SQLException e) {
+ log.println("Exception occurred :");
+ e.printStackTrace(log);
+ tRes.tested("refreshRow()", false);
+ }
+ }
+ }
+
+ /**
+ * Just the method is called. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _rowUpdated() {
+
+ try {
+ oObj.rowUpdated();
+ tRes.tested("rowUpdated()", true) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("rowUpdated()", false) ;
+ }
+ }
+
+ /**
+ * Just the method is called. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _rowInserted() {
+ try {
+ oObj.rowInserted();
+ tRes.tested("rowInserted()", true) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("rowInserted()", false) ;
+ }
+ }
+
+ /**
+ * Just the method is called. <p>
+ * Has <b>OK</b> status if no exceptions were thrown.
+ */
+ public void _rowDeleted() {
+ try {
+ oObj.rowDeleted();
+ tRes.tested("rowDeleted()", true) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("rowDeleted()", false) ;
+ }
+ }
+
+ /**
+ * Just the method is called. <p>
+ * Has <b>OK</b> status if the statement returned isn't null or
+ * the relation exists that informs that statement absent (e.g. for
+ * MetaData row set).
+ */
+ public void _getStatement() {
+ try {
+ boolean hasStatement =
+ tEnv.getObjRelation("XResultSet.hasStatement") != null ;
+ Object res = oObj.getStatement() ;
+ tRes.tested("getStatement()",
+ (hasStatement && res != null) || !hasStatement) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ tRes.tested("getStatement()", false) ;
+ }
+ }
+
+ /**
+ * Moves the cursor to the first row to avoid affection to
+ * the following interfaces tests
+ */
+ @Override
+ public void after() {
+ log.println("Finally moving cursor to the first row ...");
+ try {
+ oObj.first();
+ } catch (SQLException e) {
+ log.println("Exception occurred :") ;
+ e.printStackTrace(log) ;
+ }
+ }
+
+} // finish class _XResultSet
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XResultSetMetaDataSupplier.java b/qadevOOo/tests/java/ifc/sdbc/_XResultSetMetaDataSupplier.java
new file mode 100644
index 000000000..0a721b368
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XResultSetMetaDataSupplier.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.sdbc.XResultSetMetaData;
+import com.sun.star.sdbc.XResultSetMetaDataSupplier;
+
+/**
+* Testing <code>com.sun.star.sdbc.XResultSetMetaDataSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getMetaData()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.sdbc.XResultSetMetaDataSupplier
+*/
+public class _XResultSetMetaDataSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XResultSetMetaDataSupplier oObj = null ;
+
+ /**
+ * Tries to get the ResultSetMetaData of the Object</br>
+ * an XResultSetMetaData is returned.</br>
+ * The test is OK if a not null ResultSetMetaData is returned
+ */
+ public void _getMetaData() {
+
+ try {
+ XResultSetMetaData the_Meta = oObj.getMetaData();
+ if (the_Meta == null) log.println("'getMetaData()' returns NULL");
+ tRes.tested("getMetaData()",the_Meta != null);
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Exception while checking 'createResultSet()'");
+ e.printStackTrace(log);
+ tRes.tested("getMetaData()",false);
+ }
+
+ }
+} // finish class _XResultSetMetaDataSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XResultSetUpdate.java b/qadevOOo/tests/java/ifc/sdbc/_XResultSetUpdate.java
new file mode 100644
index 000000000..372373910
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XResultSetUpdate.java
@@ -0,0 +1,255 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.sdbc.XRowUpdate;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+/**
+* Testing <code>com.sun.star.sdbc.XResultSetUpdate</code>
+* interface methods :
+* <ul>
+* <li><code> insertRow()</code></li>
+* <li><code> updateRow()</code></li>
+* <li><code> deleteRow()</code></li>
+* <li><code> cancelRowUpdates()</code></li>
+* <li><code> moveToInsertRow()</code></li>
+* <li><code> moveToCurrentRow()</code></li>
+* </ul> <p>
+* The test requires the following object relations :
+* <ul>
+* <li><code>'XResultSetUpdate.UpdateTester'</code>
+* inner <code>UpdateTester</code> interface implementation :
+* is used for checking test results. See interface
+* documentation for more information.</li>
+* </ul>
+* The test is <b>not designed</b> for multithreaded testing. <p>
+* After it's execution environment must be recreated.
+* @see com.sun.star.sdbc.XResultSetUpdate
+*/
+public class _XResultSetUpdate extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XResultSetUpdate oObj = null ;
+
+ private UpdateTester tester = null ;
+
+ /**
+ * Interface contains some methods for checking
+ * test results. It's implementation must be passed
+ * to this test.
+ */
+ public interface UpdateTester {
+ /**
+ * @return Current number of rows.
+ */
+ int rowCount() throws SQLException ;
+ /**
+ * Updates some data in the current row but doesn't commit
+ * changes to the source.
+ */
+ void update() throws SQLException ;
+ /**
+ * Checks if updates made by method <code>update</code> was
+ * committed to the data source.
+ */
+ boolean wasUpdated() throws SQLException ;
+ /**
+ * Returns current row number. Really it must returns value
+ * < 1 if the current position is on insert row.
+ */
+ int currentRow() throws SQLException ;
+ }
+
+ /**
+ * Retrieves relation.
+ * @throw StatusException If relation not found.
+ */
+ @Override
+ public void before() throws StatusException {
+ tester = (UpdateTester)tEnv.getObjRelation
+ ("XResultSetUpdate.UpdateTester") ;
+
+ if (tester == null) {
+ log.println("Required relation not found !!!") ;
+ throw new StatusException("Required relation not found !!!",
+ new NullPointerException()) ;
+ }
+ }
+
+ /**
+ * Calls method when the cursor position is on existing row.
+ * Checks total number of rows before and after method call. <p>
+ * Executes <code>moveToCurrentRow</code> method test before to
+ * be sure that cursor is not on the insert row. <p>
+ * Has OK status if after method execution number of rows decreased
+ * by one.
+ */
+ public void _deleteRow() {
+ executeMethod("moveToCurrentRow()") ;
+
+ //temporary to avoid SOffice hanging
+ executeMethod("updateRow()") ;
+ executeMethod("cancelRowUpdates()") ;
+
+ boolean result = true ;
+ try {
+ int rowsBefore = tester.rowCount() ;
+ oObj.deleteRow() ;
+ int rowsAfter = tester.rowCount() ;
+
+ result = rowsBefore == rowsAfter + 1 ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("deleteRow()", result) ;
+ }
+
+ /**
+ * Using relation methods first updates some data in the current
+ * row, then calls <code>updateRow</code> method to commit data.
+ * Then checks if the data changed was committed. <p>
+ * Executes <code>moveToCurrentRow</code> method test before to
+ * be sure that cursor is not on the insert row. <p>
+ * Has OK status if data in the source was changed.
+ */
+ public void _updateRow() {
+ executeMethod("moveToCurrentRow()") ;
+ boolean result = true ;
+ try {
+ tester.update() ;
+ oObj.updateRow() ;
+
+ result = tester.wasUpdated() ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("updateRow()", result) ;
+ }
+
+ /**
+ * Using relation methods first updates some data in the current
+ * row, then calls <code>cancelRowUpdates</code> method.
+ * Then checks if the data changed was not committed. <p>
+ * Executes <code>moveToCurrentRow</code> method test before to
+ * be sure that cursor is not on the insert row. <p>
+ * Has OK status if data in the source was not changed.
+ */
+ public void _cancelRowUpdates() {
+ executeMethod("moveToCurrentRow()") ;
+ boolean result = true ;
+ try {
+ tester.update() ;
+ oObj.cancelRowUpdates() ;
+
+ result = !tester.wasUpdated() ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("cancelRowUpdates()", result) ;
+ }
+
+ /**
+ * Tries to move cursor to insert row. Then checks current row
+ * number. It must be less than 1. (0 as I know) <p>
+ */
+ public void _moveToInsertRow() {
+ boolean result = true ;
+ try {
+ oObj.moveToInsertRow() ;
+
+ result = tester.currentRow() < 1 ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("moveToInsertRow()", result) ;
+ }
+
+ /**
+ * Returns cursor from insert row back to previous row. <p>
+ * <code>moveToInsertRow</code> method test must be executed
+ * first for positioning cursor to insert row. <p>
+ * Has OK status if after method call current row number is
+ * above 0.
+ */
+ public void _moveToCurrentRow() {
+ boolean result = true ;
+ try {
+ oObj.moveToCurrentRow() ;
+
+ result = tester.currentRow() >= 1 ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ tRes.tested("moveToCurrentRow()", result) ;
+ }
+
+ /**
+ * Moves cursor to the insert row, then calls the method
+ * <code>insertRow</code>. Before and after call stores
+ * total number of rows. <p>
+ * Has OK status if after method call rows number increases
+ * by one.
+ */
+ public void _insertRow() {
+ executeMethod("moveToInsertRow()") ;
+ boolean result = true ;
+ try {
+ oObj.moveToCurrentRow();
+ int rowsBefore = tester.rowCount() ;
+ oObj.moveToInsertRow() ;
+ XRowUpdate rowU = UnoRuntime.queryInterface(XRowUpdate.class, oObj);
+ rowU.updateString(1,"open");
+ rowU.updateInt(2,5);
+ rowU.updateDouble(5,3.4);
+ rowU.updateBoolean(10,true);
+ oObj.insertRow() ;
+ oObj.moveToCurrentRow();
+ int rowsAfter = tester.rowCount() ;
+ result = rowsBefore + 1 == rowsAfter ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ log.println("******"+e.getMessage());
+ result = false ;
+ }
+ tRes.tested("insertRow()", result) ;
+ }
+
+ /**
+ * Forces environment to be recreated.
+ */
+ @Override
+ public void after() {
+ //disposeEnvironment() ;
+ }
+} // finish class _XResultSetUpdate
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XRow.java b/qadevOOo/tests/java/ifc/sdbc/_XRow.java
new file mode 100644
index 000000000..70a60b0cf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XRow.java
@@ -0,0 +1,527 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import java.util.List;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XDataInputStream;
+import com.sun.star.io.XTextInputStream;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XArray;
+import com.sun.star.sdbc.XBlob;
+import com.sun.star.sdbc.XClob;
+import com.sun.star.sdbc.XRef;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.util.Date;
+import com.sun.star.util.DateTime;
+import com.sun.star.util.Time;
+
+/**
+* Testing <code>com.sun.star.sdbc.XRow</code>
+* interface methods :
+* <ul>
+* <li><code> wasNull()</code></li>
+* <li><code> getString()</code></li>
+* <li><code> getBoolean()</code></li>
+* <li><code> getByte()</code></li>
+* <li><code> getShort()</code></li>
+* <li><code> getInt()</code></li>
+* <li><code> getLong()</code></li>
+* <li><code> getFloat()</code></li>
+* <li><code> getDouble()</code></li>
+* <li><code> getBytes()</code></li>
+* <li><code> getDate()</code></li>
+* <li><code> getTime()</code></li>
+* <li><code> getTimestamp()</code></li>
+* <li><code> getBinaryStream()</code></li>
+* <li><code> getCharacterStream()</code></li>
+* <li><code> getObject()</code></li>
+* <li><code> getRef()</code></li>
+* <li><code> getBlob()</code></li>
+* <li><code> getClob()</code></li>
+* <li><code> getArray()</code></li>
+* </ul> <p>
+*
+* This interface is full tested in XRowUpdate interface test. Here
+* only exceptions checked.
+* <p>
+*
+* Object relations required :
+* <ul>
+* <li> <code>'CurrentRowData'</code> : (may be used in other
+* interface tests) is a <code>java.util.Vector</code> object
+* that contains column types and values in current row. Each
+* element of vector corresponds to appropriate column (element
+* with index 0 to column 1, 1 -> 2, etc.). <p>
+* The following <code>XRow</code> methods correspond to classes
+* in Vector :
+* <ul>
+* <li> <code>getBinaryStream</code> -
+* <code>com.sun.star.io.XDataInputStream</code> class. </li>
+* <li> <code>getCharacterStream</code> -
+* <code>com.sun.star.io.XTextInputStream</code> class. </li>
+* <li> <code>getObject</code> -
+* <code>java.lang.Object[]</code> class, the element with
+* index 0 must be used. </li>
+* </ul>
+* Other methods uses types they return (i.e. <code>String</code>
+* for <code>getString</code> method, <code>com.sun.star.sdbc.XRef</code>
+* for <code>getRef</code> method).
+* </li>
+* </ul>
+* @see com.sun.star.sdbc.XRaw
+* @see ifc.sdbc._XRowUpdate
+*/
+public class _XRow extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XRow oObj = null ;
+ private List<Object> data = null ;
+ private static final boolean notNullRes = true;
+
+ /**
+ * Retrieves object relation first.
+ */
+ @Override
+ public void before() {
+ data = (List<Object>) tEnv.getObjRelation("CurrentRowData") ;
+ }
+
+ /**
+ * Always has <b>OK</b> status.
+ */
+ public void _wasNull() {
+ executeMethod("getString()") ;
+ executeMethod("getBoolean()") ;
+ executeMethod("getByte()") ;
+ executeMethod("getShort()") ;
+ executeMethod("getInt()") ;
+ executeMethod("getLong()") ;
+ executeMethod("getFloat()") ;
+ executeMethod("getDouble()") ;
+ executeMethod("getBytes()") ;
+ executeMethod("getDate()") ;
+ executeMethod("getTime()") ;
+ executeMethod("getTimestamp()") ;
+ executeMethod("getBinaryStream()") ;
+ executeMethod("getCharacterStream()") ;
+ executeMethod("getObject()") ;
+ executeMethod("getRef()") ;
+ executeMethod("getBlob()") ;
+ executeMethod("getClob()") ;
+ executeMethod("getArray()") ;
+
+ tRes.tested("wasNull()", notNullRes) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getString() {
+ boolean result = true ;
+ int col = findColumnOfType(String.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getString(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getString()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getBoolean() {
+ boolean result = true ;
+ int col = findColumnOfType(Boolean.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getBoolean(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getBoolean()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getByte() {
+ boolean result = true ;
+ int col = findColumnOfType(Byte.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getByte(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getByte()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getShort() {
+ boolean result = true ;
+ int col = findColumnOfType(Short.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getShort(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getShort()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getInt() {
+ boolean result = true ;
+ int col = findColumnOfType(Integer.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getInt(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getInt()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getLong() {
+ boolean result = true ;
+ int col = findColumnOfType(Long.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getLong(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getLong()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getFloat() {
+ boolean result = true ;
+ int col = findColumnOfType(Float.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getFloat(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getFloat()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getDouble() {
+ boolean result = true ;
+ int col = findColumnOfType(Double.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getDouble(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getDouble()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getBytes() {
+ boolean result = true ;
+ int col = findColumnOfType(byte[].class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getBytes(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getBytes()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getDate() {
+ boolean result = true ;
+ int col = findColumnOfType(Date.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getDate(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getDate()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getTime() {
+ boolean result = true ;
+ int col = findColumnOfType(Time.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getTime(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getTime()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getTimestamp() {
+ boolean result = true ;
+ int col = findColumnOfType(DateTime.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getTimestamp(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getTimestamp()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getBinaryStream() {
+ boolean result = true ;
+ int col = findColumnOfType(XDataInputStream.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getBinaryStream(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getBinaryStream()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getCharacterStream() {
+ boolean result = true ;
+ int col = findColumnOfType(XTextInputStream.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getCharacterStream(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getCharacterStream()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getObject() {
+ boolean result = true ;
+ int col = findColumnOfType(Object[].class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getObject(col, null);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getObject()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getRef() {
+ boolean result = true ;
+ int col = findColumnOfType(XRef.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getRef(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getRef()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getBlob() {
+ boolean result = true ;
+ int col = findColumnOfType(XBlob.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getBlob(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getBlob()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getClob() {
+ boolean result = true ;
+ int col = findColumnOfType(XClob.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getClob(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getClob()", result) ;
+ }
+
+ /**
+ * Has <b>OK</b> status if no exceptions occurred in method call.
+ */
+ public void _getArray() {
+ boolean result = true ;
+ int col = findColumnOfType(XArray.class) ;
+ if (col < 0) log.println("Type not found in relation: not tested");
+ else {
+ try {
+ oObj.getArray(col);
+ } catch (SQLException e) {
+ log.println("Unexpected SQL exception:") ;
+ log.println(e) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("getArray()", result) ;
+ }
+
+ /**
+ * Finds in relation vector index of column of the appropriate
+ * type.
+ */
+ protected int findColumnOfType(Class<?> clz) {
+
+ for (int i = 0; i < data.size(); i++)
+ if (clz.isInstance(data.get(i))) return i + 1 ;
+ return -1 ;
+ }
+} // finish class _XRow
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XRowSet.java b/qadevOOo/tests/java/ifc/sdbc/_XRowSet.java
new file mode 100644
index 000000000..cda9da30b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XRowSet.java
@@ -0,0 +1,192 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import ifc.sdb._XRowSetApproveBroadcaster;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XRowSet;
+import com.sun.star.sdbc.XRowSetListener;
+
+/**
+* Testing <code>com.sun.star.sdbc.XRowSet</code>
+* interface methods :
+* <ul>
+* <li><code> execute()</code></li>
+* <li><code> addRowSetListener()</code></li>
+* <li><code> removeRowSetListener()</code></li>
+* </ul> <p>
+* Required object relations :
+* <ul>
+* <li> <code>'XRowSetApproveBroadcaster.ApproveChecker'</code>:
+* implementation of inner interface
+* <code>ifs.sdb._XRowSetApproveBroadcaster.RowSetApproveChecker</code>
+* which can move cursor within a rowset, change row, and change the
+* whole rowset. </li>
+* </ul> <p>
+* It is better to recreate the object after test, because of unknown
+* actions made by <code>RowSetApproveChecker</code> interface implementation.
+* @see com.sun.star.sdbc.XRowSet
+* @see ifc.sdb._XRowSetApproveBroadcaster
+*/
+public class _XRowSet extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XRowSet oObj = null ;
+ private _XRowSetApproveBroadcaster.RowSetApproveChecker checker = null ;
+ private final TestListener listener = new TestListener() ;
+
+ private static class TestListener implements XRowSetListener {
+ public boolean cursorMoved = false ;
+ public boolean rowChanged = false ;
+ public boolean rowSetChanged = false ;
+
+ public void reset() {
+ cursorMoved = false ;
+ rowChanged = false ;
+ rowSetChanged = false ;
+ }
+ public void cursorMoved(EventObject ev) {
+ cursorMoved = true ;
+ }
+ public void rowChanged(EventObject ev) {
+ rowChanged = true ;
+ }
+ public void rowSetChanged(EventObject ev) {
+ rowSetChanged = true ;
+ }
+ public void disposing(EventObject ev) {}
+ }
+
+ /**
+ * Retrieves relation.
+ * @throw StatusException If relation not found.
+ */
+ @Override
+ public void before() throws StatusException {
+ checker = (_XRowSetApproveBroadcaster.RowSetApproveChecker)
+ tEnv.getObjRelation("XRowSetApproveBroadcaster.ApproveChecker") ;
+
+ if (checker == null) {
+ log.println("Required relation not found !!!") ;
+ throw new StatusException("Required relation not found !!!",
+ new NullPointerException()) ;
+ }
+ }
+
+ /**
+ * Reexecutes the RowSet and checks that listener was called. <p>
+ * Has OK status if no exceptions were raised and listener was called.
+ */
+ public void _execute() {
+ requiredMethod("addRowSetListener()");
+ listener.reset();
+ try {
+ oObj.execute() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ }
+
+ tRes.tested("execute()", listener.rowSetChanged);
+ }
+
+ /**
+ * Adds listener and calls methods moveCursor, changeRow,
+ * changeRowSet of the relation and then checks if appropriate
+ * methods of the listener were called. <p>
+ * Has OK status if all listener methods were called.
+ */
+ public void _addRowSetListener() {
+ boolean result = true ;
+
+ oObj.addRowSetListener(listener) ;
+
+ checker.moveCursor() ;
+ result &= listener.cursorMoved ;
+ if (!listener.cursorMoved)
+ log.println("cursorMoved event wasn't called") ;
+ listener.reset() ;
+
+ checker.changeRow() ;
+ result &= listener.rowChanged ;
+ if (!listener.rowChanged)
+ log.println("rowChanged event wasn't called") ;
+ listener.reset() ;
+
+ checker.changeRowSet() ;
+ result &= listener.rowSetChanged ;
+ if (!listener.rowSetChanged)
+ log.println("rowSetChanged event wasn't called") ;
+ listener.reset() ;
+
+ tRes.tested("addRowSetListener()", result) ;
+ }
+
+ /*
+ * Removes listener added before, and checks for no listener
+ * methods were called on response to rowSet manipulations. <p>
+ * Methods to be successfully completed before :
+ * <ul>
+ * <li> <code>addRowSetListener()</code> </li>
+ * </ul> <p>
+ * Has OK status if no listeners methods were called.
+ */
+ public void _removeRowSetListener() {
+ requiredMethod("addRowSetListener()") ;
+
+ boolean result = true ;
+
+ oObj.removeRowSetListener(listener) ;
+
+ checker.moveCursor() ;
+ if (listener.cursorMoved) {
+ log.println("cursorMoved is erroneously set");
+ result = false;
+ }
+ listener.reset() ;
+
+ checker.changeRow() ;
+ if (listener.rowChanged) {
+ log.println("rowChanged is erroneously set");
+ result = false;
+ }
+ listener.reset() ;
+
+ checker.changeRowSet() ;
+ if (listener.rowSetChanged) {
+ log.println("rowSetChanged is erroneously set");
+ result = false;
+ }
+
+ tRes.tested("removeRowSetListener()", result) ;
+ }
+
+ /**
+ * Disposes test environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finish class _XRowSet
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XRowUpdate.java b/qadevOOo/tests/java/ifc/sdbc/_XRowUpdate.java
new file mode 100644
index 000000000..e57b2f062
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XRowUpdate.java
@@ -0,0 +1,683 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import java.util.List;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import util.utils;
+import util.ValueComparer;
+
+import com.sun.star.io.XDataInputStream;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XTextInputStream;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.sdbc.XRowUpdate;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.Date;
+import com.sun.star.util.DateTime;
+import com.sun.star.util.Time;
+
+/**
+* Testing <code>com.sun.star.sdbc.XRowUpdate</code>
+* interface methods :
+* <ul>
+* <li><code> updateNull()</code></li>
+* <li><code> updateBoolean()</code></li>
+* <li><code> updateByte()</code></li>
+* <li><code> updateShort()</code></li>
+* <li><code> updateInt()</code></li>
+* <li><code> updateLong()</code></li>
+* <li><code> updateFloat()</code></li>
+* <li><code> updateDouble()</code></li>
+* <li><code> updateString()</code></li>
+* <li><code> updateBytes()</code></li>
+* <li><code> updateDate()</code></li>
+* <li><code> updateTime()</code></li>
+* <li><code> updateTimestamp()</code></li>
+* <li><code> updateBinaryStream()</code></li>
+* <li><code> updateCharacterStream()</code></li>
+* <li><code> updateObject()</code></li>
+* <li><code> updateNumericObject()</code></li>
+* </ul> <p>
+* Object relations required :
+* <ul>
+* <li> <code>'CurrentRowData'</code> : (may be used in other
+* interface tests) is a <code>java.util.Vector</code> object
+* that contains column types and values in current row. Each
+* element of vector corresponds to appropriate column (element
+* with index 0 to column 1, 1 -> 2, etc.). <p>
+* The following <code>XRowUpdate</code> methods correspond to classes
+* in Vector :
+* <ul>
+* <li> <code>setBinaryStream</code> -
+* <code>com.sun.star.io.XDataInputStream</code> class. </li>
+* <li> <code>setCharacterStream</code> -
+* <code>com.sun.star.io.XTextInputStream</code> class. </li>
+* <li> <code>setObject</code> -
+* <code>java.lang.Object[]</code> class, the element with
+* index 0 must be used. </li>
+* </ul>
+* Other methods uses types they return (i.e. <code>String</code>
+* for <code>setString</code> method, <code>com.sun.star.sdbc.XRef</code>
+* for <code>setRef</code> method).
+* </li>
+* <li> <code>'XRowUpdate.XRow'</code> : implementation of <code>
+* com.sun.star.sdbc.XRow</code> interface for checking updated data.
+* </li>
+* </ul> <p>
+* The test <b>damages</b> the object, so it is recreated finally.
+* @see com.sun.star.sdbc.XRowUpdate
+* @see com.sun.star.sdbc.XRow
+*/
+public class _XRowUpdate extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XRowUpdate oObj = null ;
+
+ private List<Object> rowData = null ;
+ private XRow row = null ;
+
+ /**
+ * Gets relations.
+ */
+ @Override
+ public void before() {
+ rowData = (List<Object>) tEnv.getObjRelation("CurrentRowData") ;
+ if (rowData == null) {
+ log.println("!!! 'CurrentRowData' relation not found !!!") ;
+ }
+ row = (XRow) tEnv.getObjRelation("XRowUpdate.XRow") ;
+ if (rowData == null) {
+ log.println("!!! 'XRowUpdate.XRow' relation not found !!!") ;
+ }
+ }
+
+ /**
+ * Try to set NULL value for each column. Then using <code>XRow</code>
+ * relation check if NULL was really set. <p>
+ * Has OK status if for every column NULL value was successfully set.
+ * @see com.sun.star.sdbc.XRow
+ */
+ public void _updateNull() {
+ boolean result = true ;
+ for (int i = 0; i < rowData.size(); i++) {
+ if (rowData.get(i) == null) continue ;
+ log.print(" Setting NULL at column #" + (i+1) + " ...") ;
+ try {
+ oObj.updateNull(i + 1) ;
+
+ if (rowData.get(i) instanceof String) row.getString(i + 1) ;
+ if (rowData.get(i) instanceof Boolean) row.getBoolean(i + 1) ;
+ if (rowData.get(i) instanceof Byte) row.getByte(i + 1) ;
+ if (rowData.get(i) instanceof Short) row.getShort(i + 1) ;
+ if (rowData.get(i) instanceof Integer) row.getInt(i + 1) ;
+ if (rowData.get(i) instanceof Long) row.getLong(i + 1) ;
+ if (rowData.get(i) instanceof Float) row.getFloat(i + 1) ;
+ if (rowData.get(i) instanceof Double) row.getDouble(i + 1) ;
+ if (rowData.get(i) instanceof byte[]) row.getBytes(i + 1) ;
+ if (rowData.get(i) instanceof Date) row.getDate(i + 1) ;
+ if (rowData.get(i) instanceof Time) row.getTime(i + 1) ;
+ if (rowData.get(i) instanceof DateTime)
+ row.getTimestamp(i + 1) ;
+ if (rowData.get(i) instanceof XDataInputStream)
+ row.getBinaryStream(i + 1) ;
+ if (rowData.get(i) instanceof XTextInputStream)
+ row.getCharacterStream(i + 1) ;
+
+ if (!row.wasNull()) {
+ log.println("FAILED") ;
+ log.println("Not NULL was returned !!!") ;
+ result = false ;
+ } else {
+ log.println("OK") ;
+ }
+ } catch (SQLException e) {
+ log.println("FAILED") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("updateNull()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateBoolean() {
+ boolean result = true ;
+ int idx = findColumnOfType(Boolean.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateBoolean()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ boolean newVal = !row.getBoolean(idx) ;
+ oObj.updateBoolean(idx, newVal) ;
+ boolean getVal = row.getBoolean(idx) ;
+ result = newVal == getVal ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateBoolean()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateByte() {
+ boolean result = true ;
+ int idx = findColumnOfType(Byte.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateByte()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ byte newVal = (byte) (row.getByte(idx) + 1) ;
+ oObj.updateByte(idx, newVal) ;
+ byte getVal = row.getByte(idx) ;
+ result = newVal == getVal ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateByte()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateShort() {
+ boolean result = true ;
+ int idx = findColumnOfType(Short.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateShort()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ short newVal = (short) (row.getShort(idx) + 1) ;
+ oObj.updateShort(idx, newVal) ;
+ short getVal = row.getShort(idx) ;
+ result = newVal == getVal ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateShort()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateInt() {
+ boolean result = true ;
+ int idx = findColumnOfType(Integer.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateInt()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ int newVal = 1 + row.getInt(idx) ;
+ oObj.updateInt(idx, newVal) ;
+ int getVal = row.getInt(idx) ;
+ result = newVal == getVal ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateInt()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateLong() {
+ boolean result = true ;
+ int idx = findColumnOfType(Long.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateLong()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ long newVal = 1 + row.getLong(idx) ;
+ oObj.updateLong(idx, newVal) ;
+ long getVal = row.getLong(idx) ;
+ result = newVal == getVal ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateLong()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateFloat() {
+ boolean result = true ;
+ int idx = findColumnOfType(Float.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateFloat()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ float newVal = (float) (1.1 + row.getFloat(idx));
+ oObj.updateFloat(idx, newVal) ;
+ float getVal = row.getFloat(idx) ;
+ result = newVal == getVal ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateFloat()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateDouble() {
+ boolean result = true ;
+ int idx = findColumnOfType(Double.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateDouble()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ double newVal = 1.1 + row.getDouble(idx) ;
+ oObj.updateDouble(idx, newVal) ;
+ double getVal = row.getDouble(idx) ;
+ result = utils.approxEqual(newVal, getVal);
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateDouble()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateString() {
+ boolean result = true ;
+ int idx = findColumnOfType(String.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateString()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ String newVal = "_" + row.getString(idx) ;
+ oObj.updateString(idx, newVal) ;
+ String getVal = row.getString(idx) ;
+ result = newVal.equals(getVal) ;
+ log.println("New value = '" + newVal + "', get value = '"
+ + getVal + "'") ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateString()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateBytes() {
+ boolean result = true ;
+ int idx = findColumnOfType(byte[].class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateBytes()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ byte[] newVal = row.getBytes(idx) ;
+ if (newVal == null || newVal.length == 0) {
+ newVal = new byte[] {34, 111, 98} ;
+ } else {
+ newVal = new byte[] {(byte) (newVal[0] + 1), 111, 98} ;
+ }
+ oObj.updateBytes(idx, newVal) ;
+ byte[] getVal = row.getBytes(idx) ;
+ result = ValueComparer.equalValue(newVal, getVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateBytes()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateDate() {
+ boolean result = true ;
+ int idx = findColumnOfType(Date.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateDate()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ Date newVal = row.getDate(idx) ;
+ newVal.Year ++ ;
+ oObj.updateDate(idx, newVal) ;
+ Date getVal = row.getDate(idx) ;
+ result = ValueComparer.equalValue(newVal, getVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateDate()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateTime() {
+ boolean result = true ;
+ int idx = findColumnOfType(Time.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateTime()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ Time newVal = row.getTime(idx) ;
+ newVal.Seconds ++ ;
+ oObj.updateTime(idx, newVal) ;
+ Time getVal = row.getTime(idx) ;
+ result = ValueComparer.equalValue(newVal, getVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateTime()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateTimestamp() {
+ boolean result = true ;
+ int idx = findColumnOfType(DateTime.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateTimestamp()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ DateTime newVal = row.getTimestamp(idx) ;
+ newVal.Year ++ ;
+ oObj.updateTimestamp(idx, newVal) ;
+ DateTime getVal = row.getTimestamp(idx) ;
+ result = ValueComparer.equalValue(newVal, getVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateTimestamp()", result) ;
+ }
+
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateBinaryStream() {
+ boolean result = true ;
+ int idx = findColumnOfType(XDataInputStream.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateBinaryStream()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ Object oStream = tParam.getMSF().
+ createInstance("com.sun.star.io.DataInputStream") ;
+ XInputStream newVal = UnoRuntime.queryInterface
+ (XInputStream.class, oStream);
+
+ oObj.updateBinaryStream(idx, newVal, 0) ;
+ XInputStream getVal = row.getBinaryStream(idx) ;
+ result = UnoRuntime.areSame(newVal, getVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateBinaryStream()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateCharacterStream() {
+ boolean result = true ;
+ int idx = findColumnOfType(XTextInputStream.class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateCharacterStream()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ Object oStream = tParam.getMSF().
+ createInstance("com.sun.star.io.TextInputStream") ;
+ XInputStream newVal = UnoRuntime.queryInterface
+ (XInputStream.class, oStream);
+
+ oObj.updateCharacterStream(idx, newVal, 0) ;
+ XInputStream getVal = row.getCharacterStream(idx) ;
+ result = UnoRuntime.areSame(newVal, getVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateCharacterStream()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateObject() {
+ boolean result = true ;
+ int idx = findColumnOfType(Object[].class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateObject()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ Object newVal = tParam.getMSF().
+ createInstance("com.sun.star.io.Pipe") ;
+
+ oObj.updateObject(idx, newVal) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateObject()", result) ;
+ }
+
+ /**
+ * Updates column with the appropriate type (if exists) and then
+ * checks result with interface <code>XRow</code>.<p>
+ * Has OK status if column successfully updated, ahd the same
+ * result returned.
+ */
+ public void _updateNumericObject() {
+ boolean result = true ;
+ int idx = findColumnOfType(Object[].class) ;
+
+ if (idx < 0) {
+ log.println("Required type not found") ;
+ tRes.tested("updateNumericObject()", Status.skipped(true)) ;
+ return ;
+ }
+
+ try {
+ Object newVal = tParam.getMSF().
+ createInstance("com.sun.star.io.Pipe") ;
+
+ oObj.updateNumericObject(idx, newVal, 0) ;
+ } catch (SQLException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Unexpected exception:") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("updateNumericObject()", result) ;
+ }
+
+ /**
+ * Finds in relation vector index of column of the appropriate
+ * type.
+ */
+ protected int findColumnOfType(Class<?> clz) {
+
+ for (int i = 0; i < rowData.size(); i++)
+ if (clz.isInstance(rowData.get(i))) return i + 1 ;
+ return -1 ;
+ }
+
+ /**
+ * Disposes environment.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finish class _XRow
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbc/_XWarningsSupplier.java b/qadevOOo/tests/java/ifc/sdbc/_XWarningsSupplier.java
new file mode 100644
index 000000000..1758ccb1b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbc/_XWarningsSupplier.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbc;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.DBTools;
+import util.utils;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.sdbc.XRowUpdate;
+import com.sun.star.sdbc.XWarningsSupplier;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.sdbc.XWarningsSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getWarnings()</code></li>
+* <li><code> clearWarnings()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbc.XWarningsSupplier
+*/
+public class _XWarningsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XWarningsSupplier oObj = null ;
+
+ /**
+ * Updates value of int column by value '9999999999999999'.
+ * Calls method and checks returned value. <p>
+ * Has OK status if the method return not empty value.
+ */
+ public void _getWarnings() {
+ final XRowUpdate rowUpdate = UnoRuntime.queryInterface(XRowUpdate.class, oObj);
+ final XResultSetUpdate resultSetUpdate = UnoRuntime.queryInterface(XResultSetUpdate.class, rowUpdate);
+ final XRow row = UnoRuntime.queryInterface(XRow.class, resultSetUpdate);
+ if ( row == null)
+ throw new StatusException(Status.failed("Test must be modified"));
+
+ // not sure what the below test was intended to test, but it actually fails with an SQLException (which is
+ // correct for what is done there), and thus makes the complete interface test fail (which is not correct)
+ // So, for the moment, just let the test succeed all the time - until issue #i84235# is fixed
+
+ if ( false )
+ {
+ int oldVal = 0, newVal = 0;
+ String valToSet = "9999999999999999";
+ try
+ {
+ oldVal = row.getInt(DBTools.TST_INT);
+ rowUpdate.updateString(DBTools.TST_INT, valToSet);
+ resultSetUpdate.updateRow();
+ newVal = row.getInt(DBTools.TST_INT);
+ }
+ catch(com.sun.star.sdbc.SQLException e)
+ {
+ log.println("Unexpected SQL exception");
+ e.printStackTrace(log);
+ tRes.tested("getWarnings()", false);
+ return;
+ }
+
+ log.println("Old INT value: " + oldVal);
+ log.println("Value that was set: " + valToSet);
+ log.println("New INT value: " + newVal);
+
+ boolean res = false;
+
+ try
+ {
+ Object warns = oObj.getWarnings();
+ res = (!utils.isVoid(warns));
+ }
+ catch (SQLException e)
+ {
+ log.println("Exception occurred :");
+ e.printStackTrace(log);
+ tRes.tested("getWarnings()", res);
+ return;
+ }
+ tRes.tested("getWarnings()", res);
+ }
+ else
+ tRes.tested( "getWarnings()", true );
+ }
+
+ /**
+ * Calls method and checks value returned by the method
+ * <code>getWarnings()</code>. <p>
+ * Has OK status if the method <code>getWarnings()</code> return void value.
+ */
+ public void _clearWarnings() {
+ executeMethod("getWarnings()");
+ boolean res = false;
+
+ try {
+ oObj.clearWarnings();
+ Object warns = oObj.getWarnings();
+ res = utils.isVoid(warns);
+ } catch (SQLException e) {
+ log.println("Exception occurred :");
+ e.printStackTrace(log);
+ tRes.tested("clearWarnings()", res);
+ return;
+ }
+
+ tRes.tested("clearWarnings()", res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_ResultSet.java b/qadevOOo/tests/java/ifc/sdbcx/_ResultSet.java
new file mode 100644
index 000000000..bdbf0a9a5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_ResultSet.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.sdbcx.ResultSet</code>
+* service properties :
+* <ul>
+* <li><code> IsBookmarkable</code></li>
+* <li><code> CanUpdateInsertedRows</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.sdbcx.ResultSet
+*/
+public class _ResultSet extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XColumnsSupplier.java b/qadevOOo/tests/java/ifc/sdbcx/_XColumnsSupplier.java
new file mode 100644
index 000000000..02dce1d4f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XColumnsSupplier.java
@@ -0,0 +1,70 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdbcx.XColumnsSupplier;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XColumnsSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getColumns()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XColumnsSupplier
+*/
+public class _XColumnsSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XColumnsSupplier oObj = null ;
+
+ /**
+ * Has OK status if method returns not null
+ * <code>XNameAccess</code> object, FAILED otherwise.
+ */
+ public void _getColumns() {
+
+ XNameAccess cols = oObj.getColumns() ;
+
+ /*
+ String[] colNames = cols.getElementNames() ;
+
+ log.println("Column names:") ;
+ for (int i =0 ; i < colNames.length; i++) {
+ log.println(" " + colNames[i]) ;
+ }
+
+ XServiceInfo info = null ;
+ try {
+ info = (XServiceInfo) UnoRuntime.queryInterface
+ (XServiceInfo.class, cols.getByName("colNames[0]")) ;
+ } catch (com.sun.star.uno.Exception e) {}
+
+ log.println("Support : " +
+ info.supportsService("com.sun.star.sdbcx.Column")) ;
+ */
+
+ tRes.tested("getColumns()", cols != null) ;
+ }
+
+} // finish class _XColumnsSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XCreateCatalog.java b/qadevOOo/tests/java/ifc/sdbcx/_XCreateCatalog.java
new file mode 100644
index 000000000..15c09694a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XCreateCatalog.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.sdbcx.XCreateCatalog;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XCreateCatalog</code>
+* interface methods :
+* <ul>
+* <li><code>createCatalog()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XCreateCatalog
+*/
+public class _XCreateCatalog extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XCreateCatalog oObj = null;
+
+ public void _createCatalog() {
+ tRes.tested("createCatalog()", Status.skipped(false));
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XDataDefinitionSupplier.java b/qadevOOo/tests/java/ifc/sdbcx/_XDataDefinitionSupplier.java
new file mode 100644
index 000000000..a05310c50
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XDataDefinitionSupplier.java
@@ -0,0 +1,163 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XDriver;
+import com.sun.star.sdbcx.XDataDefinitionSupplier;
+import com.sun.star.sdbcx.XTablesSupplier;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XDataDefinitionSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getDataDefinitionByConnection()</code></li>
+* <li><code> getDataDefinitionByURL()</code></li>
+* </ul> <p>
+* Required object relations :
+* <ul>
+* <li> <code>'XDriver.URL'</code>:
+* is the URL of the database to which to connect</code></li>
+* <li><code>'XDriver.UNSUITABLE_URL'</code>:
+* the wrong kind of URL to connect using given driver</li>
+* <li><code>'XDriver.INFO'</code>:
+* a list of arbitrary string tag/value pairs as connection arguments</li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XDataDefinitionSupplier
+*/
+public class _XDataDefinitionSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XDataDefinitionSupplier oObj = null ;
+
+ String url = null;
+ String wrongUrl = null;
+ PropertyValue[] info = null;
+
+ /**
+ * Retrieves relations.
+ * @throw StatusException If any relation not found.
+ */
+ @Override
+ protected void before() {
+ url = (String)tEnv.getObjRelation("XDriver.URL");
+ if (url == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XDriver.URL'"));
+ }
+ wrongUrl = (String)tEnv.getObjRelation("XDriver.UNSUITABLE_URL");
+ if (wrongUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XDriver.WRONG_URL'"));
+ }
+ info = (PropertyValue[])tEnv.getObjRelation("XDriver.INFO");
+ if (info == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'XDriver.INFO'"));
+ }
+ }
+
+ XConnection connection = null;
+
+ /**
+ * Obtains the connection to url(relation <code>'XDriver.URL'</code>)
+ * with info(relation <code>'XDriver.INFO'</code>).
+ * Calls the method with obtained connection and checks that returned value
+ * isn't null.
+ */
+ public void _getDataDefinitionByConnection() {
+ boolean bRes = true;
+ XDriver xDriver = UnoRuntime.queryInterface(XDriver.class, oObj);
+ if (xDriver == null) {
+ log.println("The XDriver interface isn't supported");
+ tRes.tested("getDataDefinitionByConnection()",
+ Status.skipped(false));
+ return;
+ }
+ try {
+ connection = xDriver.connect(url, info);
+ } catch(com.sun.star.sdbc.SQLException e) {
+ e.printStackTrace(log);
+ bRes = false;
+ }
+ if (connection == null) {
+ log.println("Couldn't get connection to specified url using " +
+ "specified info");
+ tRes.tested("getDataDefinitionByConnection()",
+ Status.skipped(false));
+ return;
+ }
+ XTablesSupplier xTS = null;
+ try {
+ log.println("getDataDefinitionByConnection(connection)");
+ xTS = oObj.getDataDefinitionByConnection(connection);
+ bRes = xTS != null;
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception: " + e);
+ bRes = false;
+ }
+
+ try {
+ log.println("getDataDefinitionByConnection(null)");
+ xTS = oObj.getDataDefinitionByConnection(null);
+ bRes = xTS == null;
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("Exception: " + e);
+ bRes = true;
+ }
+
+ tRes.tested("getDataDefinitionByConnection()", bRes);
+ }
+
+ /**
+ * Calls the method with url and info obtained from the relations
+ * <code>XDriver.URL</code> and <code>XDriver.INFO</code>.
+ * Checks that returned value isn't null.
+ * Then calls the method with the unsuitable url obtained from the relation
+ * <code>XDriver.UNSUITABLE_URL</code> and checks that SQLException
+ * exception was thrown.
+ */
+ public void _getDataDefinitionByURL() {
+ try {
+ log.println("getDataDefinitionByURL('" + url + "')");
+ oObj.getDataDefinitionByURL(url, info);
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Unexpected exception: " + e);
+ }
+
+ try {
+ log.println("getDataDefinitionByURL('" + wrongUrl + "')");
+ oObj.getDataDefinitionByURL(wrongUrl, info);
+ log.println("Exception was expected");
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Expected exception");
+ }
+
+ tRes.tested("getDataDefinitionByURL()", true);
+
+ }
+} // finish class _XDataDefinitionSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XDeleteRows.java b/qadevOOo/tests/java/ifc/sdbcx/_XDeleteRows.java
new file mode 100644
index 000000000..af79864a5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XDeleteRows.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.sdbcx.XDeleteRows;
+import com.sun.star.sdbcx.XRowLocate;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XDeleteRows</code>
+* interface methods :
+* <ul>
+* <li><code> deleteRows()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XDeleteRows
+*/
+public class _XDeleteRows extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XDeleteRows oObj = null ;
+
+ /**
+ * Retrieves bookmark using XRowLocate and deletes
+ * row pointed by this bookmark. <p>
+ * Has OK status if number of rows after deleting is less than before
+ * and no exception rises while method call, FAILED otherwise. <p>
+ */
+ public void _deleteRows() {
+ XRowLocate xRowLocate = UnoRuntime.queryInterface(XRowLocate.class, oObj);
+ XResultSet xResultSet = UnoRuntime.queryInterface(XResultSet.class, oObj);
+ if (xRowLocate == null || xResultSet == null) {
+ log.println("The test must be modified according to "+
+ "component testcase");
+ throw new StatusException(Status.failed(
+ "The component doesn't support one of the "+
+ "required interfaces"));
+ }
+
+ int rowsBefore = 0, rowsAfter = 0;
+ Object bkmrk = null;
+ try {
+ xResultSet.last();
+ rowsBefore = xResultSet.getRow();
+ xResultSet.first();
+ bkmrk = xRowLocate.getBookmark();
+ oObj.deleteRows(new Object[] {bkmrk});
+ xResultSet.last();
+ rowsAfter = xResultSet.getRow();
+ } catch(com.sun.star.sdbc.SQLException e) {
+ log.println("SQLException:" + e);
+ tRes.tested("deleteRows()", false);
+ return;
+ }
+
+ log.println("Rows before: " + rowsBefore + ", after: " + rowsAfter);
+ tRes.tested("deleteRows()", rowsBefore - 1 == rowsAfter);
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+} // finish class _XDeleteRows
+
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XDropCatalog.java b/qadevOOo/tests/java/ifc/sdbcx/_XDropCatalog.java
new file mode 100644
index 000000000..e697f8394
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XDropCatalog.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.sdbcx.XDropCatalog;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XDropCatalog</code>
+* interface methods :
+* <ul>
+* <li><code>dropCatalog()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XDropCatalog
+*/
+public class _XDropCatalog extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XDropCatalog oObj = null;
+
+ public void _dropCatalog() {
+ tRes.tested("dropCatalog()", Status.skipped(false));
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XRowLocate.java b/qadevOOo/tests/java/ifc/sdbcx/_XRowLocate.java
new file mode 100644
index 000000000..9a1726932
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XRowLocate.java
@@ -0,0 +1,225 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbcx.XRowLocate;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XRowLocate</code>
+* interface methods :
+* <ul>
+* <li><code> getBookmark()</code></li>
+* <li><code> moveToBookmark()</code></li>
+* <li><code> moveRelativeToBookmark()</code></li>
+* <li><code> compareBookmarks()</code></li>
+* <li><code> hasOrderedBookmarks()</code></li>
+* <li><code> hashBookmark()</code></li>
+* </ul> <p>
+* Object relations needed :
+* <ul>
+* <li> <code>XRowLocate.HasOrderedBookmarks</code> <b>(optional)</b>:
+* <code>Boolean</code> type. If information about bookmark ordering
+* of object tested exists it placed in this relation.</li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XRowLocate
+*/
+public class _XRowLocate extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XRowLocate oObj = null ;
+
+ private Object bookmark1 = null, bookmark2 = null ;
+
+ /**
+ * Gets the bookmark of the current cursor position and
+ * stores it for other methods use.
+ * Has OK status if method returns not null
+ * <code>XNameAccess</code> object, FAILED otherwise.
+ */
+ public void _getBookmark() {
+
+ try {
+ bookmark1 = oObj.getBookmark() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ }
+
+ tRes.tested("getBookmark()", bookmark1 != null) ;
+ }
+
+ /**
+ * Moves to bookmark previously created by method <code>_getBookmark</code>
+ * then creates new bookmark and compare it to the first one. The
+ * row difference must be equal to 0. <p>
+ * Method tests to be completed successfully before :
+ * <ul>
+ * <li> <code>getBookmark()</code> : to have a bookmark to move to.</li>
+ * </ul>
+ * Method tests to be executed before :
+ * <ul>
+ * <li> <code>moveRelativeToBookmark()</code> : to move the cursor from
+ * the initial position, to check if it returns back.</li>
+ * </ul> <p>
+ * Has OK status difference between positions of bookmarks (where
+ * cursor was moved to and created new one) equals to 0 and no
+ * exceptions occurred, FAILED otherwise.
+ */
+ public void _moveToBookmark() {
+ requiredMethod("getBookmark()") ;
+ executeMethod("moveRelativeToBookmark()") ;
+
+ int comparison = -1 ;
+ Object tmpBookmark = null ;
+ try {
+ synchronized(oObj) {
+ oObj.moveToBookmark(bookmark1) ;
+ tmpBookmark = oObj.getBookmark() ;
+ }
+ comparison = oObj.compareBookmarks(bookmark1, tmpBookmark) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ }
+
+ tRes.tested("moveToBookmark()", comparison == 0) ;
+ }
+
+ /**
+ * Moves the cursor to the position with offset 2 from the
+ * bookmark created by <code>_getBookmark()</code> method and
+ * then creates a bookmark of new position. <p>
+ * Method tests to be completed successfully before :
+ * <ul>
+ * <li> <code>getBookmark()</code> : to have a bookmark to move to.</li>
+ * </ul> <p>
+ * Has OK status if no exceptions occurred while method call.
+ */
+ public void _moveRelativeToBookmark() {
+ requiredMethod("getBookmark()") ;
+
+ boolean result = true ;
+ try {
+ synchronized (oObj) {
+ oObj.moveRelativeToBookmark(bookmark1, 1) ;
+ bookmark2 = oObj.getBookmark() ;
+ }
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ result = false ;
+ }
+
+ tRes.tested("moveRelativeToBookmark()", result) ;
+ }
+
+ /**
+ * Compares bookmarks created in <code>getBookmark()</code> and
+ * <code>moveRelativeToBokkmark()</code> methods.
+ * Method tests to be completed successfully before :
+ * <ul>
+ * <li> <code>getBookmark()</code> : to have first bookmark to compare.</li>
+ * <li> <code>moveRelativeToBookmark()</code> : to have second
+ * bookmark to compare.</li>
+ * </ul> <p>
+ * Has OK status if difference in bookmark positions equals to 2.
+ */
+ public void _compareBookmarks() {
+ requiredMethod("getBookmark()") ;
+ requiredMethod("moveRelativeToBookmark()") ;
+
+ int comparison = 0 ;
+ int comparison1 = 0 ;
+ try {
+ comparison = oObj.compareBookmarks(bookmark1, bookmark2) ;
+ comparison1 = oObj.compareBookmarks(bookmark1, bookmark1) ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ }
+
+ if (comparison != -1) {
+ log.println("! Wrong compare number :" + comparison) ;
+ }
+
+ tRes.tested("compareBookmarks()", comparison == -1 && comparison1 == 0) ;
+ }
+
+ /**
+ * Calls method. If relation is not found, returned result is not
+ * checked. <p>
+ * Has OK status if method returned right value (in case if relation
+ * and value to compare to exist), or just successfully returned
+ * (in case of no relation).
+ */
+ public void _hasOrderedBookmarks() {
+ boolean result = true ;
+ boolean res = true ;
+
+ // Optional relation
+ Boolean has = (Boolean) tEnv.getObjRelation
+ ("XRowLocate.HasOrderedBookmarks") ;
+
+ try {
+ res = oObj.hasOrderedBookmarks() ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ result = false ;
+ }
+
+ if (has == null) {
+ log.println("Optional relation not found - result not checked") ;
+ } else {
+ result &= res == has.booleanValue() ;
+ }
+
+ tRes.tested("hasOrderedBookmarks()", result) ;
+ }
+
+ /**
+ * Gets hash values of two previously created bookmarks of different
+ * cursor positions and compares them. <p>
+ * Method tests to be completed successfully before :
+ * <ul>
+ * <li> <code>getBookmark()</code> : to have first bookmark.</li>
+ * <li> <code>moveRelativeToBookmark()</code> : to have second
+ * bookmark.</li>
+ * </ul> <p>
+ * Has OK status if hash values of two bookmarks are different.
+ */
+ public void _hashBookmark() {
+ requiredMethod("getBookmark()") ;
+ requiredMethod("moveRelativeToBookmark()") ;
+
+ boolean result = true ;
+ try {
+ int hash1 = oObj.hashBookmark(bookmark1) ;
+ int hash2 = oObj.hashBookmark(bookmark2) ;
+ log.println("1st hash = " + hash1 + ", 2nd = " + hash2) ;
+
+ result = hash1 != hash2 ;
+ } catch (SQLException e) {
+ log.println("Exception occurred :" + e) ;
+ result = false ;
+ }
+
+ tRes.tested("hashBookmark()", result) ;
+ }
+
+} // finish class _XRowLocate
+
diff --git a/qadevOOo/tests/java/ifc/sdbcx/_XTablesSupplier.java b/qadevOOo/tests/java/ifc/sdbcx/_XTablesSupplier.java
new file mode 100644
index 000000000..5c48e44e1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sdbcx/_XTablesSupplier.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sdbcx;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.sdbcx.XTablesSupplier;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.sdbcx.XTablesSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getTables()</code></li>
+* </ul> <p>
+* @see com.sun.star.sdbcx.XTablesSupplier
+*/
+public class _XTablesSupplier extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XTablesSupplier oObj = null ;
+
+ /**
+ * Has OK status if method returns not null
+ * <code>XNameAccess</code> object, FAILED otherwise.
+ */
+ public void _getTables() {
+ XNameAccess tabs = oObj.getTables() ;
+
+
+ String[] tabNames = tabs.getElementNames() ;
+
+ log.println("Table names:") ;
+ for (int i =0 ; i < tabNames.length; i++) {
+ log.println(" " + tabNames[i]) ;
+ }
+
+ XServiceInfo info = null ;
+ try {
+ info = UnoRuntime.queryInterface
+ (XServiceInfo.class, tabs.getByName(tabNames[0])) ;
+ } catch (com.sun.star.uno.Exception e) {}
+
+ if (info != null) {
+ log.println("Support : " +
+ info.supportsService("com.sun.star.sdbcx.Table")) ;
+ }
+
+ tRes.tested("getTables()", info != null) ;
+ }
+
+} // finish class _XTablesSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/sheet/_SpreadsheetDocument.java b/qadevOOo/tests/java/ifc/sheet/_SpreadsheetDocument.java
new file mode 100644
index 000000000..513315634
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_SpreadsheetDocument.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sheet;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.sheet.SpreadsheetDocument</code>
+* service properties :
+* <ul>
+* <li><code> NamedRanges</code></li>
+* <li><code> DatabaseRanges</code></li>
+* <li><code> ColumnLabelRanges</code></li>
+* <li><code> RowLabelRanges</code></li>
+* <li><code> SheetLinks</code></li>
+* <li><code> AreaLinks</code></li>
+* <li><code> DDELinks</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.sheet.SpreadsheetDocument
+*/
+public class _SpreadsheetDocument extends MultiPropertyTest {
+} // finish class _SpreadsheetDocument
+
+
diff --git a/qadevOOo/tests/java/ifc/sheet/_TableAutoFormatField.java b/qadevOOo/tests/java/ifc/sheet/_TableAutoFormatField.java
new file mode 100644
index 000000000..305d3e219
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_TableAutoFormatField.java
@@ -0,0 +1,124 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sheet;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.lang.Locale;
+
+/**
+* Testing <code>com.sun.star.sheet.TableAutoFormatField</code>
+* service properties :
+* <ul>
+* <li><code> CharFontName</code></li>
+* <li><code> CharHeight</code></li>
+* <li><code> CharWeight</code></li>
+* <li><code> CharPosture</code></li>
+* <li><code> CharUnderline</code></li>
+* <li><code> CharCrossedOut</code></li>
+* <li><code> CharContoured</code></li>
+* <li><code> CharShadowed</code></li>
+* <li><code> CharColor</code></li>
+* <li><code> CharLocale</code></li>
+* <li><code> CellBackColor</code></li>
+* <li><code> IsCellBackgroundTransparent</code></li>
+* <li><code> ShadowFormat</code></li>
+* <li><code> ParaRightMargin </code></li>
+* <li><code> ParaLeftMargin </code></li>
+* <li><code> ParaBottomMargin </code></li>
+* <li><code> ParaTopMargin </code></li>
+* <li><code> RotateReference </code></li>
+* <li><code> RotateAngle </code></li>
+* <li><code> Orientation </code></li>
+* <li><code> IsTextWrapped </code></li>
+* <li><code> VertJustify </code></li>
+* <li><code> HoriJustify </code></li>
+* <li><code> CharPostureComplex </code></li>
+* <li><code> CharPostureAsian </code></li>
+* <li><code> CharWeightComplex </code></li>
+* <li><code> CharWeightAsian </code></li>
+* <li><code> CharHeightComplex </code></li>
+* <li><code> CharHeightAsian </code></li>
+* <li><code> CharFontPitchComplex </code></li>
+* <li><code> CharFontPitchAsian </code></li>
+* <li><code> CharFontPitch </code></li>
+* <li><code> CharFontFamilyComplex </code></li>
+* <li><code> CharFontFamilyAsian </code></li>
+* <li><code> CharFontFamily </code></li>
+* <li><code> CharFontCharSetComplex </code></li>
+* <li><code> CharFontCharSetAsian </code></li>
+* <li><code> CharFontCharSet </code></li>
+* <li><code> CharFontStyleNameComplex </code></li>
+* <li><code> CharFontStyleNameAsian </code></li>
+* <li><code> CharFontStyleName </code></li>
+* <li><code> CharFontNameComplex </code></li>
+* <li><code> CharFontNameAsian </code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.sheet.TableAutoFormatField
+*/
+public class _TableAutoFormatField extends MultiPropertyTest {
+
+ /**
+ * Only some values can be used (which identify font name).
+ * In this property value is changed from 'Times New Roman'
+ * to 'Courier' and viceversa.
+ */
+ public void _CharFontName() {
+ testProperty("CharFontName", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return "Courier".equals(old) ? "Times New Roman" : "Courier" ;
+ }
+ }) ;
+ }
+
+ /**
+ * Locale values are predefined and can't be arbitrary changed.
+ * In this property value is changed from ('de', 'DE', '')
+ * to ('es', 'ES', '') and vice versa.
+ */
+ public void _CharLocale() {
+ testProperty("CharLocale", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return old == null || ((Locale)old).Language.equals( "de" ) ?
+ new Locale("es", "ES", "") : new Locale("de", "DE", "") ;
+ }
+ }) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _ShadowFormat() {
+ testProperty("ShadowFormat", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String p, Object old) {
+ return old == null ? new com.sun.star.table.ShadowFormat() :
+ super.getNewValue(p, old) ;
+ }
+ }) ;
+ }
+
+} //finish class _TableAutoFormatField
+
+
+
diff --git a/qadevOOo/tests/java/ifc/sheet/_XCellRangeData.java b/qadevOOo/tests/java/ifc/sheet/_XCellRangeData.java
new file mode 100644
index 000000000..18d8ca0f9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_XCellRangeData.java
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.sheet;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.sheet.XCellRangeData;
+
+public class _XCellRangeData extends MultiMethodTest {
+
+ public XCellRangeData oObj = null;
+ private Object[][] maCRData = null;
+
+ /**
+ * Test calls the method
+ * state is OK if the resulting Object array
+ * isn't empty
+ */
+ public void _getDataArray() {
+ maCRData = oObj.getDataArray();
+ boolean bResult = (maCRData.length > 0);
+ tRes.tested("getDataArray()", bResult);
+ }
+
+ /**
+ * Test creates an Array and calls the method
+ * with this Array as argument
+ * Then the method getDataArray is called
+ * and the resulting Array is compared with the
+ * one formerly set.
+ */
+ public void _setDataArray() {
+ Object[][] newData = (Object[][]) tEnv.getObjRelation("NewData");
+ if (newData == null) {
+ newData = new Object[maCRData.length][maCRData[0].length];
+ for (int i=0; i<newData.length; i++) {
+ for (int j=0; j<newData[i].length; j++) {
+ newData[i][j] = new Double(10*i +j);
+ }
+ }
+ }
+ oObj.setDataArray(newData);
+ Object[][] oCRData = oObj.getDataArray();
+ boolean res = ValueComparer.equalValue(oCRData[0][0],newData[0][0]);
+ res &= ValueComparer.equalValue(oCRData[0][1],newData[0][1]);
+ res &= ValueComparer.equalValue(oCRData[1][0],newData[1][0]);
+ res &= ValueComparer.equalValue(oCRData[1][1],newData[1][1]);
+ // delete values
+ Object[][] emptyData = new Object[newData.length][newData[0].length];
+ for (int i=0; i<emptyData.length; i++) {
+ for (int j=0; j<emptyData[i].length; j++) {
+ emptyData[i][j] = "";
+ }
+ }
+ oObj.setDataArray(emptyData);
+ tRes.tested("setDataArray()", res);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/sheet/_XCellRangesQuery.java b/qadevOOo/tests/java/ifc/sheet/_XCellRangesQuery.java
new file mode 100644
index 000000000..de0c327af
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_XCellRangesQuery.java
@@ -0,0 +1,300 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.sheet;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.sheet.CellFlags;
+import com.sun.star.sheet.FormulaResult;
+import com.sun.star.sheet.XCellRangesQuery;
+import com.sun.star.sheet.XSheetCellRanges;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XColumnRowRange;
+import com.sun.star.table.XTableColumns;
+import com.sun.star.table.XTableRows;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Test the XCellRangesQuery interface.
+ * Needed object relations:
+ * <ul>
+ * <li>"SHEET": an XSpreadSheet object
+ * </li>
+ * <li>"XCellRangesQuery.EXPECTEDRESULTS": the expected results for the test
+ * methods as a String array.<br>
+ * @see mod._sc.ScCellCursorObj or
+ * @see mod._sc.ScCellObj for an example how this should look like.
+ * </li>
+ * </ul>
+ */
+public class _XCellRangesQuery extends MultiMethodTest {
+ public XCellRangesQuery oObj;
+ protected XSpreadsheet oSheet;
+ protected XTableRows oRows;
+ protected XTableColumns oColumns;
+ protected String[] mExpectedResults = null;
+ protected boolean bMakeEntriesAndDispose = false;
+ String getting = "";
+ String expected = "";
+ // provide the object with constants to fill the expected results array
+ public static final int QUERYCOLUMNDIFFERENCES = 0;
+ public static final int QUERYCONTENTCELLS = 1;
+ public static final int QUERYEMPTYCELLS = 2;
+ public static final int QUERYFORMULACELLS = 3;
+ public static final int QUERYINTERSECTION = 4;
+ public static final int QUERYROWDIFFERENCES = 5;
+ public static final int QUERYVISIBLECELLS = 6;
+
+ @Override
+ protected void before() {
+ oSheet = (XSpreadsheet) tEnv.getObjRelation("SHEET");
+
+ if (oSheet == null) {
+ log.println("Object relation oSheet is missing");
+ log.println("Trying to query the needed Interface");
+ oSheet = UnoRuntime.queryInterface(
+ XSpreadsheet.class, tEnv.getTestObject());
+
+ if (oSheet == null) {
+ throw new StatusException(Status.failed(
+ "Object relation oSheet is missing"));
+ }
+ }
+
+ // expected results
+ mExpectedResults = (String[])tEnv.getObjRelation(
+ "XCellRangesQuery.EXPECTEDRESULTS");
+
+ XColumnRowRange oColumnRowRange = UnoRuntime.queryInterface(
+ XColumnRowRange.class,
+ oSheet);
+ oRows = oColumnRowRange.getRows();
+ oColumns = oColumnRowRange.getColumns();
+
+ // set this in object if the interface has to make its own settings
+ // and the environment has to be disposed: this is necessary for objects
+ // that do not make entries on the sheet themselves
+ Object o = tEnv.getObjRelation("XCellRangesQuery.CREATEENTRIES");
+ if (o instanceof Boolean) {
+ bMakeEntriesAndDispose = ((Boolean)o).booleanValue();
+ }
+ if(bMakeEntriesAndDispose) {
+ oRows.removeByIndex(4, oRows.getCount() - 4);
+ oColumns.removeByIndex(4, oColumns.getCount() - 4);
+
+ try {
+ oSheet.getCellByPosition(1, 1).setValue(5);
+ oSheet.getCellByPosition(1, 2).setValue(15);
+ oSheet.getCellByPosition(2, 1).setFormula("=B2+B3");
+ oSheet.getCellByPosition(1, 3).setFormula("=B2+B4");
+ oSheet.getCellByPosition(3, 2).setFormula("");
+ oSheet.getCellByPosition(3, 3).setFormula("");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't fill cells " + e.getLocalizedMessage());
+ }
+ }
+
+ }
+
+ /**
+ * Tested method returns each cell of each column that is different to the
+ * cell in a given row
+ */
+ public void _queryColumnDifferences() {
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryColumnDifferences(
+ new CellAddress((short) 0, 1, 1));
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYCOLUMNDIFFERENCES];
+
+ if (!getting.startsWith(expected)) {
+ log.println("Getting: " + getting);
+ log.println("Should have started with: " + expected);
+ res = false;
+ }
+
+ tRes.tested("queryColumnDifferences()", res);
+ }
+
+ /**
+ * Tested method returns all cells of a given type, defined in
+ * CellFlags
+ * @see com.sun.star.sheet.CellFlags
+ */
+ public void _queryContentCells() {
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryContentCells(
+ (short) CellFlags.VALUE);
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYCONTENTCELLS];
+
+ if (!getting.startsWith(expected)) {
+ log.println("Getting: " + getting);
+ log.println("Should have started with: " + expected);
+ res = false;
+ }
+
+ tRes.tested("queryContentCells()", res);
+ }
+
+ /**
+ * Tested method returns all empty cells of the range
+ */
+ public void _queryEmptyCells() {
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryEmptyCells();
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYEMPTYCELLS];
+
+ int startIndex = 0;
+ int endIndex = -5;
+ String checkString = null;
+
+ while (endIndex != -1) {
+ startIndex = endIndex + 5;
+ endIndex = expected.indexOf(" ... ", startIndex);
+ if (endIndex == -1) {
+ checkString = expected.substring(startIndex);
+ }
+ else {
+ checkString = expected.substring(startIndex, endIndex);
+ }
+ res &= (getting.indexOf(checkString) > -1);
+ }
+
+ if (!res) {
+ log.println("Getting: " + getting);
+ log.println("Should have contained: " + expected);
+ }
+
+ tRes.tested("queryEmptyCells()", res);
+ }
+
+ /**
+ * Tested method returns all cells of a given type, defined in
+ * FormulaResult
+ * @see com.sun.star.sheet.FormulaResult
+ */
+ public void _queryFormulaCells() {
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryFormulaCells(
+ (short) FormulaResult.VALUE);
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYFORMULACELLS];
+
+ if (!getting.equals(expected)) {
+ log.println("Getting: " + getting);
+ log.println("Expected: " + expected);
+ res = false;
+ }
+
+ tRes.tested("queryFormulaCells()", res);
+ }
+
+ public void _queryIntersection() {
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryIntersection(
+ new CellRangeAddress((short) 0, 3, 3, 7, 7));
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYINTERSECTION];
+
+ if (!getting.startsWith(expected)) {
+ log.println("Getting: " + getting);
+ log.println("Should have started with: " + expected);
+ res = false;
+ }
+
+ tRes.tested("queryIntersection()", res);
+ }
+
+ /**
+ * Tested method returns each cell of each row that is different to the
+ * cell in a given column
+ */
+ public void _queryRowDifferences() {
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryRowDifferences(
+ new CellAddress((short) 0, 1, 1));
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYROWDIFFERENCES];
+
+ if (!getting.startsWith(expected)) {
+ log.println("Getting: " + getting);
+ log.println("Should have started with: " + expected);
+ res = false;
+ }
+
+ tRes.tested("queryRowDifferences()", res);
+ }
+
+ public void _queryVisibleCells() {
+ setRowVisible(false);
+
+ boolean res = true;
+ XSheetCellRanges ranges = oObj.queryVisibleCells();
+ getting = ranges.getRangeAddressesAsString();
+ expected = mExpectedResults[QUERYVISIBLECELLS];
+
+ if (!getting.startsWith(expected)) {
+ log.println("Getting: " + getting);
+ log.println("Should have started with: " + expected);
+ res = false;
+ }
+
+ setRowVisible(true);
+ tRes.tested("queryVisibleCells()", res);
+ }
+
+ protected void setRowVisible(boolean vis) {
+ try {
+ XPropertySet rowProp = UnoRuntime.queryInterface(
+ XPropertySet.class,
+ oRows.getByIndex(0));
+ rowProp.setPropertyValue("IsVisible", Boolean.valueOf(vis));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("couldn't get Row " + e.getLocalizedMessage());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("problems setting Property 'isVisible' " +
+ e.getLocalizedMessage());
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("problems setting Property 'isVisible' " +
+ e.getLocalizedMessage());
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("problems setting Property 'isVisible' " +
+ e.getLocalizedMessage());
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("problems setting Property 'isVisible' " +
+ e.getLocalizedMessage());
+ }
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ if(bMakeEntriesAndDispose) {
+ disposeEnvironment();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/sheet/_XEnhancedMouseClickBroadcaster.java b/qadevOOo/tests/java/ifc/sheet/_XEnhancedMouseClickBroadcaster.java
new file mode 100644
index 000000000..fdcbcd4ff
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_XEnhancedMouseClickBroadcaster.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.sheet;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XEnhancedMouseClickHandler;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.sheet.XEnhancedMouseClickBroadcaster;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import lib.MultiMethodTest;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+
+
+public class _XEnhancedMouseClickBroadcaster extends MultiMethodTest {
+ public XEnhancedMouseClickBroadcaster oObj;
+ protected boolean mousePressed = false;
+ protected boolean mouseReleased = false;
+ protected XEnhancedMouseClickHandler listener = new MyListener();
+ private XModel docModel = null;
+
+ @Override
+ public void before() {
+ docModel = UnoRuntime.queryInterface(
+ XModel.class,tEnv.getObjRelation("FirstModel"));
+ DesktopTools.bringWindowToFront(docModel);
+ }
+
+ public void _addEnhancedMouseClickHandler() {
+ oObj.addEnhancedMouseClickHandler(listener);
+ clickOnSheet();
+
+ //make sure that the listener is removed even if the test fails
+ if ((!mousePressed) || (!mouseReleased)) {
+ oObj.removeEnhancedMouseClickHandler(listener);
+ }
+
+ tRes.tested("addEnhancedMouseClickHandler()",
+ mousePressed && mouseReleased);
+ }
+
+ public void _removeEnhancedMouseClickHandler() {
+ requiredMethod("addEnhancedMouseClickHandler()");
+ mousePressed = false;
+ mouseReleased = false;
+ oObj.removeEnhancedMouseClickHandler(listener);
+ clickOnSheet();
+ tRes.tested("removeEnhancedMouseClickHandler()",
+ (!mousePressed) && (!mouseReleased));
+ }
+
+ protected boolean clickOnSheet() {
+ log.println("try to open context menu...");
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(docModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XInterface oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
+
+ XAccessibleComponent window = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+
+ Point point = window.getLocationOnScreen();
+ Rectangle rect = window.getBounds();
+
+ log.println("click mouse button...");
+ try {
+ Robot rob = new Robot();
+ int x = point.X + (rect.Width / 2)+50;
+ int y = point.Y + (rect.Height / 2)+50;
+ rob.mouseMove(x, y);
+ System.out.println("Press Button");
+ rob.mousePress(InputEvent.BUTTON3_MASK);
+ System.out.println("Release Button");
+ rob.mouseRelease(InputEvent.BUTTON3_MASK);
+ System.out.println("done");
+ System.out.println("wait");
+ waitForEventIdle();
+ System.out.println("Press Button");
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ System.out.println("Release Button");
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ System.out.println("done "+rob.getAutoDelay());
+ } catch (java.awt.AWTException e) {
+ log.println("couldn't press mouse button");
+ }
+
+
+ return true;
+ }
+
+ protected class MyListener implements XEnhancedMouseClickHandler {
+ public void disposing(
+ com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public boolean mousePressed(
+ com.sun.star.awt.EnhancedMouseEvent enhancedMouseEvent) {
+ log.println("mousePressed");
+ mousePressed = true;
+
+ return true;
+ }
+
+ public boolean mouseReleased(
+ com.sun.star.awt.EnhancedMouseEvent enhancedMouseEvent) {
+ log.println("mouseReleased");
+ mouseReleased = true;
+
+ return true;
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java b/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java
new file mode 100644
index 000000000..e2a2aa01c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java
@@ -0,0 +1,353 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.sheet;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XTopWindow;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.RangeSelectionEvent;
+import com.sun.star.sheet.XRangeSelection;
+import com.sun.star.sheet.XRangeSelectionChangeListener;
+import com.sun.star.sheet.XRangeSelectionListener;
+import com.sun.star.uno.UnoRuntime;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.AccessibilityTools;
+
+/**
+ * Check the XRangeSelection interface.
+ */
+public class _XRangeSelection extends MultiMethodTest {
+ public XRangeSelection oObj = null;
+ MyRangeSelectionListener aListener = null;
+
+ @Override
+ public void before() {
+ aListener = new _XRangeSelection.MyRangeSelectionListener(log);
+ // workaround for i34499
+ XModel xModel = (XModel)tEnv.getObjRelation("FirstModel");
+ if (xModel == null)
+ throw new StatusException(Status.failed("Object relation FirstModel' not set."));
+ XWindow xWindow = xModel.getCurrentController().getFrame().getContainerWindow();
+ XTopWindow xTopWindow = UnoRuntime.queryInterface(XTopWindow.class, xWindow);
+ xTopWindow.toFront();
+ waitForEventIdle();
+ }
+
+
+ public void _abortRangeSelection() {
+ requiredMethod("removeRangeSelectionChangeListener()");
+ requiredMethod("removeRangeSelectionListener()");
+ oObj.abortRangeSelection();
+ tRes.tested("abortRangeSelection()", true);
+ }
+
+ public void _addRangeSelectionChangeListener() {
+ oObj.addRangeSelectionChangeListener(aListener);
+ tRes.tested("addRangeSelectionChangeListener()", true);
+ }
+
+ public void _addRangeSelectionListener() {
+ oObj.addRangeSelectionListener(aListener);
+ tRes.tested("addRangeSelectionListener()", true);
+ }
+
+ public void _removeRangeSelectionChangeListener() {
+ oObj.removeRangeSelectionChangeListener(aListener);
+ tRes.tested("removeRangeSelectionChangeListener()", true);
+ }
+
+ public void _removeRangeSelectionListener() {
+ oObj.removeRangeSelectionListener(aListener);
+ tRes.tested("removeRangeSelectionListener()", true);
+ }
+
+ public void _startRangeSelection() {
+ requiredMethod("addRangeSelectionChangeListener()");
+ requiredMethod("addRangeSelectionListener()");
+
+ // get the sheet center
+ Point center = getSheetCenter();
+ if (center == null)
+ throw new StatusException(Status.failed("Couldn't get the sheet center."));
+
+ PropertyValue[] props = new PropertyValue[3];
+ props[0] = new PropertyValue();
+ props[0].Name = "InitialValue";
+ props[0].Value = "B3:D5";
+ props[1] = new PropertyValue();
+ props[1].Name = "Title";
+ props[1].Value = "the title";
+ props[2] = new PropertyValue();
+ props[2].Name = "CloseOnMouseRelease";
+ props[2].Value = Boolean.FALSE;
+ oObj.startRangeSelection(props);
+ // wait for listeners
+ waitForEventIdle();
+
+ // get closer button: move if window covers the sheet center
+ Point closer = getCloser(center);
+ if (closer == null)
+ throw new StatusException(Status.failed("Couldn't get the close Button."));
+
+ // do something to trigger the listeners
+ clickOnSheet(center);
+ waitForEventIdle();
+
+ // click on closer
+ clickOnSheet(closer);
+ waitForEventIdle();
+
+ // open a new range selection
+ props[0].Value = "C4:E6";
+ oObj.startRangeSelection(props);
+ waitForEventIdle();
+ props[0].Value = "C2:E3";
+ oObj.startRangeSelection(props);
+ waitForEventIdle();
+
+ oObj.startRangeSelection(props);
+ waitForEventIdle();
+ oObj.abortRangeSelection();
+ aListener.reset();
+ System.out.println("Listener called: " + aListener.bAbortCalled);
+
+ tRes.tested("startRangeSelection()", aListener.listenerCalled());
+ }
+
+ /**
+ * Determine the current top window center and return this as a point.
+ * @return a point representing the sheet center.
+ */
+ protected Point getSheetCenter() {
+ log.println("Trying to get AccessibleSpreadsheet");
+
+ XComponent xSheetDoc = (XComponent) tEnv.getObjRelation("DOCUMENT");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+ System.out.println("Name: " + xModel.getCurrentController().getFrame().getName());
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(xModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext ctx = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE );
+
+ XAccessibleComponent AccessibleSpreadsheet = UnoRuntime.queryInterface(XAccessibleComponent.class,ctx);
+
+ log.println("Got " + util.utils.getImplName(AccessibleSpreadsheet));
+
+ Object toolkit = null;
+
+ try {
+ toolkit = tParam.getMSF().createInstance("com.sun.star.awt.Toolkit");
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't get toolkit");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't get toolkit", e);
+ }
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ XTopWindow tw = null;
+
+ int k = tk.getTopWindowCount();
+ for (int i=0;i<k;i++) {
+ try {
+ XTopWindow tw_temp = tk.getTopWindow(i);
+ XAccessible xacc = UnoRuntime.queryInterface(XAccessible.class, tw_temp);
+ if (xacc != null) {
+ if (xacc.getAccessibleContext().getAccessibleName().indexOf("d2")>0) {
+ tw=tw_temp;
+ }
+ } else {
+ log.println("\t unknown window");
+ }
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ if (tw == null) {
+ System.out.println("No TopWindow :-(");
+ return null;
+ }
+
+ Point point = AccessibleSpreadsheet.getLocationOnScreen();
+ Rectangle rect = AccessibleSpreadsheet.getBounds();
+ Point retPoint = new Point();
+ retPoint.X = point.X + (rect.Width / 2);
+ retPoint.Y = point.Y + (rect.Height / 2);
+ return retPoint;
+ }
+
+ /**
+ * Get the closer button on the right top of the current window.
+ * @return A point representing the closer button.
+ */
+ private Point getCloser(Point center) {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ Object aToolkit = null;
+ try {
+ aToolkit = xMSF.createInstance("com.sun.star.awt.Toolkit");
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not create 'com.sun.star.awt.Toolkit'.", e);
+ }
+ XExtendedToolkit xExtendedToolkit = UnoRuntime.queryInterface(XExtendedToolkit.class, aToolkit);
+ XTopWindow tw = null;
+
+ XAccessibleComponent xAccessibleComponent = null;
+ int k = xExtendedToolkit.getTopWindowCount();
+ for (int i=0;i<k;i++) {
+ try {
+ XTopWindow tw_temp = xExtendedToolkit.getTopWindow(i);
+ XAccessible xacc = UnoRuntime.queryInterface(XAccessible.class, tw_temp);
+ if (xacc != null) {
+ System.out.println("Name: " + xacc.getAccessibleContext().getAccessibleName());
+ if (xacc.getAccessibleContext().getAccessibleName().startsWith("the title")) {
+ tw = tw_temp;
+ XAccessibleContext xContext = xacc.getAccessibleContext();
+ xAccessibleComponent = UnoRuntime.queryInterface(XAccessibleComponent.class, xContext);
+ if (xAccessibleComponent == null)
+ System.out.println("!!!! MIST !!!!");
+ else
+ System.out.println("########## KLAPPT ########## ");
+ }
+ }
+ else {
+ log.println("\t unknown window");
+ }
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ if (tw == null) {
+ System.out.println("No TopWindow :-(");
+ return null;
+ }
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class, tw);
+ Rectangle posSize = xWindow.getPosSize();
+
+ // compare the center point with the dimensions of the current top window
+ boolean windowOK = false;
+ while(!windowOK) {
+ if (posSize.X <= center.X && center.X <= posSize.X + posSize.Width) {
+ if (posSize.Y <= center.Y && center.Y <= posSize.Y +posSize.Height) {
+ // move window out of the way
+ posSize.X = posSize.X + 10;
+ posSize.Y = posSize.Y +10;
+ xWindow.setPosSize(posSize.X, posSize.Y, posSize.Width, posSize.Height, PosSize.POS);
+ }
+ else {
+ windowOK = true;
+ }
+ }
+ else {
+ windowOK = true;
+ }
+
+ }
+
+ Point p = xAccessibleComponent.getLocationOnScreen();
+ Point closer = new Point();
+ closer.X = p.X + posSize.Width - 2;
+ closer.Y = p.Y + 5;
+ System.out.println("Closer: " + closer.X + " " + closer.Y);
+ return closer;
+ }
+
+ protected boolean clickOnSheet(Point point) {
+ log.println("Clicking in the center of the AccessibleSpreadsheet");
+
+ try {
+ Robot rob = new Robot();
+ rob.mouseMove(point.X, point.Y);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ waitForEventIdle();
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ waitForEventIdle();
+ } catch (java.awt.AWTException e) {
+ log.println("couldn't press mouse button");
+ }
+
+ return true;
+ }
+
+ /**
+ *
+ */
+ public static class MyRangeSelectionListener implements XRangeSelectionListener, XRangeSelectionChangeListener {
+ boolean bAbortCalled = false;
+ boolean bChangeCalled = false;
+ boolean bDoneCalled = false;
+ PrintWriter log = null;
+
+ public MyRangeSelectionListener(PrintWriter log) {
+ this.log = log;
+ }
+
+ public void aborted(RangeSelectionEvent rangeSelectionEvent) {
+ log.println("Called 'aborted' with: " + rangeSelectionEvent.RangeDescriptor);
+ bAbortCalled = true;
+ }
+
+ public void descriptorChanged(RangeSelectionEvent rangeSelectionEvent) {
+ log.println("Called 'descriptorChanged' with: " + rangeSelectionEvent.RangeDescriptor);
+ bChangeCalled = true;
+ }
+
+ public void done(RangeSelectionEvent rangeSelectionEvent) {
+ log.println("Called 'done' with: " + rangeSelectionEvent.RangeDescriptor);
+ bDoneCalled = true;
+ }
+
+ public boolean listenerCalled() {
+ return bAbortCalled & bChangeCalled & bDoneCalled;
+ }
+
+ public void reset() {
+ bAbortCalled = false;
+ bChangeCalled = false;
+ bDoneCalled = false;
+ }
+
+ /**
+ * ignore disposing
+ * @param eventObject The event.
+ */
+ public void disposing(EventObject eventObject) {
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/style/_CharacterProperties.java b/qadevOOo/tests/java/ifc/style/_CharacterProperties.java
new file mode 100644
index 000000000..fea9da4e4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_CharacterProperties.java
@@ -0,0 +1,537 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import lib.MultiPropertyTest;
+import util.ValueChanger;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.xml.AttributeData;
+
+
+/**
+* Testing <code>com.sun.star.style.CharacterProperties</code>
+* service properties :
+* <ul>
+* <li><code> CharFontName</code></li>
+* <li><code> CharFontStyleName</code></li>
+* <li><code> CharFontFamily</code></li>
+* <li><code> CharFontCharSet</code></li>
+* <li><code> CharFontPitch</code></li>
+* <li><code> CharColor</code></li>
+* <li><code> CharEscapement</code></li>
+* <li><code> CharHeight</code></li>
+* <li><code> CharUnderline</code></li>
+* <li><code> CharWeight</code></li>
+* <li><code> CharPosture</code></li>
+* <li><code> CharAutoKerning</code></li>
+* <li><code> CharBackColor</code></li>
+* <li><code> CharBackTransparent</code></li>
+* <li><code> CharCaseMap</code></li>
+* <li><code> CharCrossedOut</code></li>
+* <li><code> CharFlash</code></li>
+* <li><code> CharStrikeout</code></li>
+* <li><code> CharWordMode</code></li>
+* <li><code> CharKerning</code></li>
+* <li><code> CharLocale</code></li>
+* <li><code> CharKeepTogether</code></li>
+* <li><code> CharNoLineBreak</code></li>
+* <li><code> CharShadowed</code></li>
+* <li><code> CharFontType</code></li>
+* <li><code> CharStyleName</code></li>
+* <li><code> CharContoured</code></li>
+* <li><code> CharCombineIsOn</code></li>
+* <li><code> CharCombinePrefix</code></li>
+* <li><code> CharCombineSuffix</code></li>
+* <li><code> CharEmphasize</code></li>
+* <li><code> CharRelief</code></li>
+* <li><code> RubyText</code></li>
+* <li><code> RubyAdjust</code></li>
+* <li><code> RubyCharStyleName</code></li>
+* <li><code> RubyIsAbove</code></li>
+* <li><code> CharRotation</code></li>
+* <li><code> CharRotationIsFitToLine</code></li>
+* <li><code> CharScaleWidth</code></li>
+* <li><code> HyperLinkURL</code></li>
+* <li><code> HyperLinkTarget</code></li>
+* <li><code> HyperLinkName</code></li>
+* <li><code> TextUserDefinedAttributes</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'PARA'</code>: <b>optional</b>
+* (must implement <code>XPropertySet</code>):
+* if this relation is specified then some properties
+* testing is performed in a special manner. (e.g. this used in
+* <code>sw.SwXParagraph</code> component) For details
+* see {@link #changeProp} method description. </li>
+* <li> <code>'PORTION'</code>: <b>optional</b>
+* (must implement <code>XPropertySet</code>):
+* if this relation is specified then some properties
+* testing is performed in a special manner. (e.g. this used in
+* <code>sw.SwXParagraph</code> component) For details
+* see {@link #changeProp} method description. </li>
+* <ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.CharacterProperties
+*/
+public class _CharacterProperties extends MultiPropertyTest {
+
+ public void _CharFontName() {
+ testProperty("CharFontName", "Times New Roman", "Arial") ;
+ }
+
+ public void _CharHeight() {
+ testProperty("CharHeight", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object old) {
+ if (utils.isVoid(old)) {
+ return new Float(10) ;
+ } else {
+ return new Float(((Float) old).floatValue() + 10) ;
+ }
+ }
+ }) ;
+ }
+
+ /**
+ * Custom tester for properties which contains image URLs.
+ * Switches between two JPG images' URLs.
+ */
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals("http://www.sun.com"))
+ return "http://www.openoffice.org"; else
+ return "http://www.sun.com";
+ }
+ } ;
+
+ public void _HyperLinkURL() {
+ testProperty("HyperLinkURL", URLTester) ;
+ }
+
+ public void _HyperLinkName() {
+ testProperty("HyperLinkName", URLTester) ;
+ }
+
+ public void _HyperLinkTarget() {
+ testProperty("HyperLinkTarget", URLTester) ;
+ }
+
+ public void _CharWeight() {
+ testProperty("CharWeight", new Float(com.sun.star.awt.FontWeight.BOLD),
+ new Float(com.sun.star.awt.FontWeight.THIN)) ;
+ }
+
+ public void _CharPosture() {
+ testProperty("CharPosture", com.sun.star.awt.FontSlant.ITALIC,
+ com.sun.star.awt.FontSlant.NONE) ;
+ }
+
+ /**
+ * Custom tester for style name properties. If object relations "STYLENAME1"
+ * and "STYLENAME2" exists, then testing with these strings, else switches
+ * between 'Citation' and 'Emphasis' names.
+ */
+ protected PropertyTester StyleTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ String oStyleName1 = (String) tEnv.getObjRelation("STYLENAME1");
+ String oStyleName2 = (String) tEnv.getObjRelation("STYLENAME2");
+ if ((oStyleName1 != null) && (oStyleName2 != null)){
+ log.println("use strings given by object relation: '"
+ + oStyleName1 + "' '" + oStyleName2 +"'");
+ if (oldValue.equals( oStyleName1))
+ return oStyleName2;
+ else
+ return oStyleName1;
+ }
+ if (utils.isVoid(oldValue) || (oldValue.equals("Standard")))
+ return "Example"; else
+ return "Emphasis";
+ }
+ } ;
+
+ /**
+ * Custom tester for style names properties. Switches between
+ * 'Citation' and 'Emphasis' names.
+ */
+ protected PropertyTester StylesTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (utils.isVoid(oldValue) || (oldValue.equals("Standard")))
+ return new String[] {"Citation"}; else
+ return new String[] {"Emphasis"};
+ }
+ } ;
+
+ /**
+ * If relations for paragraph and portion exist, then testing
+ * of this property performed using these objects, else
+ * testing is performed in common way.
+ */
+ public void _CharStyleName() {
+ log.println("Testing with custom Property tester") ;
+ Object oPara = tEnv.getObjRelation("PARA");
+ Object oPort = tEnv.getObjRelation("PORTION");
+ if (oPara == null) {
+ testProperty("CharStyleName", StyleTester) ;
+ } else {
+ changeProp((XPropertySet) oPara,
+ (XPropertySet) oPort,"CharStyleName","Standard");
+ }
+ }
+
+ /**
+ * If relations for paragraph and portion exist, then testing
+ * of this property performed using these objects, else
+ * testing is performed in common way.
+ */
+ public void _CharStyleNames() {
+ log.println("Testing with custom Property tester") ;
+ Object oPara = tEnv.getObjRelation("PARA");
+ Object oPort = tEnv.getObjRelation("PORTION");
+ if (oPara == null) {
+ testProperty("CharStyleNames", StylesTester) ;
+ } else {
+ changeProp((XPropertySet) oPara,
+ (XPropertySet) oPort,"CharStyleNames",new String[] {"Standard"});
+ }
+ }
+
+ /**
+ * If relations for paragraph and portion exist, then testing
+ * of this property performed using these objects, else
+ * testing is performed in common way.
+ */
+ public void _RubyCharStyleName() {
+ log.println("Testing with custom Property tester") ;
+ Object oPara = tEnv.getObjRelation("PARA");
+ Object oPort = tEnv.getObjRelation("PORTION");
+ if (oPara == null) {
+ testProperty("RubyCharStyleName", StyleTester) ;
+ } else {
+ changeProp((XPropertySet) oPara, (XPropertySet)
+ oPort,"RubyCharStyleName","Standard");
+ }
+ }
+
+ /**
+ * If relations for paragraph and portion exist, then testing
+ * of this property performed using these objects, else
+ * testing is performed in common way.
+ */
+ public void _RubyAdjust() {
+ log.println("Testing with custom Property tester") ;
+ Object oPara = tEnv.getObjRelation("PARA");
+ Object oPort = tEnv.getObjRelation("PORTION");
+ if (oPara == null) {
+ testProperty("RubyAdjust",Short.valueOf((short)0),Short.valueOf((short)1));
+ } else {
+ Short aShort = Short.valueOf((short) 1);
+ changeProp((XPropertySet) oPara,
+ (XPropertySet) oPort,"RubyAdjust", aShort);
+ }
+ }
+
+ /**
+ * Custom tester for the ruby text property.
+ */
+ protected PropertyTester RubyTextTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (utils.isVoid(oldValue)) {
+ return "RubyText";
+ } else {
+ return ValueChanger.changePValue(oldValue);
+ }
+ }
+ } ;
+
+ /**
+ * If relations for paragraph and portion exist, then testing
+ * of this property performed using these objects, else
+ * testing is performed in common way.
+ */
+ public void _RubyText() {
+ log.println("Testing with custom Property tester") ;
+ Object oPara = tEnv.getObjRelation("PARA");
+ Object oPort = tEnv.getObjRelation("PORTION");
+ if (oPara == null) {
+ testProperty("RubyText", RubyTextTester) ;
+ } else {
+ changeProp((XPropertySet) oPara, (XPropertySet) oPort,
+ "RubyText","");
+ }
+ }
+
+ /**
+ * If relations for paragraph and portion exist, then testing
+ * of this property performed using these objects, else
+ * testing is performed in common way.
+ */
+ public void _RubyIsAbove() {
+ log.println("Testing with custom Property tester") ;
+ Object oPara = tEnv.getObjRelation("PARA");
+ Object oPort = tEnv.getObjRelation("PORTION");
+ if (oPara == null) {
+ testProperty("RubyIsAbove") ;
+ } else {
+ changeProp((XPropertySet) oPara, (XPropertySet) oPort,
+ "RubyIsAbove",Boolean.TRUE);
+ }
+ }
+
+ /**
+ * This property only takes values between 0..100
+ * so it must be treated specially
+ */
+ public void _CharEscapementHeight() {
+ Byte aByte = Byte.valueOf((byte)75);
+ Byte max = Byte.valueOf((byte)100);
+ testProperty("CharEscapementHeight", aByte, max) ;
+ }
+
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _CharRotation() {
+ Short aShort = Short.valueOf((short) 10);
+ changeProp(oObj,oObj, "CharRotation", aShort);
+ }
+
+ /**
+ * Tests the property specified by <code>name</code> using
+ * property set <code>oProps</code>, but value after setting
+ * this property to a new value is checked using another
+ * PropertySet <code>get</code>. Special cases used for
+ * <code>CharRotation</code> property (it can have only certain values
+ * 0, 900, ...), and for <code>*StyleName</code> properties
+ * (only existing style names are accepted)
+ * @param oProps PropertySet from which property value is get
+ * changed and set.
+ * @param get PropertySet where property value is checked after
+ * setting.
+ * @param name Property name to test.
+ * @param newVal Value used to set as new property value if
+ * the value get is null.
+ */
+ public void changeProp(XPropertySet oProps,
+ XPropertySet get,String name, Object newVal) {
+
+ Object gValue = null;
+ Object sValue = null;
+ Object ValueToSet = null;
+
+ try {
+ gValue = oProps.getPropertyValue(name);
+
+ if ( (gValue == null) || (utils.isVoid(gValue)) ) {
+ log.println("Value for "+name+" is NULL");
+ gValue = newVal;
+ }
+
+ if (name.equals("CharRotation")) {
+ Short s1 = Short.valueOf((short) 0);
+ Short s2 = Short.valueOf((short) 900);
+ if (gValue.equals(s1)) {
+ ValueToSet = s2;
+ } else {
+ ValueToSet = s1;
+ }
+ } else {
+ ValueToSet = ValueChanger.changePValue(gValue);
+ }
+ if (name.endsWith("StyleName")) {
+ if ( ((String) gValue).equals("Standard") ) {
+ ValueToSet="Main index entry";
+ }
+ else {
+ ValueToSet="Emphasis";
+ }
+ }
+
+ oProps.setPropertyValue(name,ValueToSet);
+ sValue = get.getPropertyValue(name);
+ if (sValue == null) {
+ log.println("Value for "+name+" is NULL after setting");
+ sValue = gValue;
+ }
+
+ //check get-set methods
+ if (gValue.equals(sValue)) {
+ log.println("Value for '"+name+"' hasn't changed");
+ tRes.tested(name, false);
+ } else {
+ log.println("Property '"+name+"' OK");
+ log.println("old: "+gValue.toString());
+ log.println("new: "+ValueToSet.toString());
+ log.println("result: "+sValue.toString());
+ tRes.tested(name, true);
+ }
+ }
+ catch (com.sun.star.beans.UnknownPropertyException ex) {
+ if (isOptional(name)) {
+ log.println("Property '"+name+
+ "' is optional and not supported");
+ tRes.tested(name,true);
+ }
+ else {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ ex.printStackTrace(log);
+ tRes.tested(name, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ e.printStackTrace(log);
+ tRes.tested(name, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ e.printStackTrace(log);
+ tRes.tested(name, false);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occurred while testing property '" +
+ name + "'");
+ e.printStackTrace(log);
+ tRes.tested(name, false);
+ }
+ }// end of changeProp
+
+ public void _TextUserDefinedAttributes() {
+ XNameContainer uda = null;
+ boolean res = false;
+
+ try {
+ try{
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("TextUserDefinedAttributes"));
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("TextUserDefinedAttributes is empty.");
+ uda = new _CharacterProperties.OwnUserDefinedAttributes();
+ }
+ AttributeData attr = new AttributeData();
+ attr.Namespace = "http://www.sun.com/staroffice/apitest/Cellprop";
+ attr.Type = "CDATA";
+ attr.Value = "true";
+ uda.insertByName("Cellprop:has-first-alien-attribute", attr);
+
+ uda.getElementNames();
+ oObj.setPropertyValue("TextUserDefinedAttributes", uda);
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("TextUserDefinedAttributes"));
+ uda.getElementNames();
+
+ uda.getByName("Cellprop:has-first-alien-attribute");
+ res = true;
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ if (isOptional("TextUserDefinedAttributes")) {
+ log.println("Property is optional and not supported");
+ res = true;
+ } else {
+ log.println("Don't know the Property 'TextUserDefinedAttributes'");
+ }
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println(
+ "WrappedTargetException while getting Property 'TextUserDefinedAttributes'");
+ } catch (com.sun.star.container.NoSuchElementException nee) {
+ log.println("added Element isn't part of the NameContainer");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println(
+ "IllegalArgumentException while getting Property 'TextUserDefinedAttributes'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println(
+ "PropertyVetoException while getting Property 'TextUserDefinedAttributes'");
+ } catch (com.sun.star.container.ElementExistException eee) {
+ log.println(
+ "ElementExistException while getting Property 'TextUserDefinedAttributes'");
+ }
+
+ tRes.tested("TextUserDefinedAttributes", res);
+ }
+
+ private static class OwnUserDefinedAttributes implements XNameContainer{
+ HashMap<String, Object> members = null;
+
+
+ public OwnUserDefinedAttributes() {
+ members = new HashMap<String, Object>();
+ }
+
+ public Object getByName(String str) throws com.sun.star.container.NoSuchElementException, com.sun.star.lang.WrappedTargetException {
+ return members.get(str);
+ }
+
+ public String[] getElementNames() {
+ Iterator<String> oEnum = members.keySet().iterator();
+ int count = members.size();
+ String[] res = new String[count];
+ int i=0;
+ while(oEnum.hasNext()) {
+ res[i++] = oEnum.next();
+ }
+ return res;
+ }
+
+ public com.sun.star.uno.Type getElementType() {
+ Iterator<String> oEnum = members.keySet().iterator();
+ String key = oEnum.next();
+ Object o = members.get(key);
+ return new Type(o.getClass());
+ }
+
+ public boolean hasByName(String str) {
+ return members.get(str) != null;
+ }
+
+ public boolean hasElements() {
+ return members.size() > 0;
+ }
+
+ public void insertByName(String str, Object obj) throws com.sun.star.lang.IllegalArgumentException, com.sun.star.container.ElementExistException, com.sun.star.lang.WrappedTargetException {
+ members.put(str, obj);
+ }
+
+ public void removeByName(String str) throws com.sun.star.container.NoSuchElementException, com.sun.star.lang.WrappedTargetException {
+ members.remove(str);
+ }
+
+ public void replaceByName(String str, Object obj) throws com.sun.star.lang.IllegalArgumentException, com.sun.star.container.NoSuchElementException, com.sun.star.lang.WrappedTargetException {
+ members.put(str, obj);
+ }
+
+ }
+
+} //finish class _CharacterProperties
+
diff --git a/qadevOOo/tests/java/ifc/style/_CharacterPropertiesAsian.java b/qadevOOo/tests/java/ifc/style/_CharacterPropertiesAsian.java
new file mode 100644
index 000000000..96578c3bc
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_CharacterPropertiesAsian.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.awt.FontSlant;
+import com.sun.star.awt.FontWeight;
+
+/**
+* Testing <code>com.sun.star.style.CharacterPropertiesAsian</code>
+* service properties :
+* <ul>
+* <li><code> CharHeightAsian</code></li>
+* <li><code> CharWeightAsian</code></li>
+* <li><code> CharFontNameAsian</code></li>
+* <li><code> CharFontStyleNameAsian</code></li>
+* <li><code> CharFontFamilyAsian</code></li>
+* <li><code> CharFontCharSetAsian</code></li>
+* <li><code> CharFontPitchAsian</code></li>
+* <li><code> CharPostureAsian</code></li>
+* <li><code> CharLocaleAsian</code></li>
+* <li><code> ParaIsCharacterDistance</code></li>
+* <li><code> ParaIsForbiddenRules</code></li>
+* <li><code> ParaIsHangingPunctuation</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.CharacterPropertiesAsian
+*/
+public class _CharacterPropertiesAsian extends MultiPropertyTest {
+
+ public void _CharPostureAsian() {
+ testProperty("CharPostureAsian", FontSlant.NONE, FontSlant.ITALIC);
+ }
+
+ public void _CharWeightAsian() {
+ testProperty("CharWeightAsian", new Float(FontWeight.NORMAL),
+ new Float(FontWeight.BOLD));
+ }
+
+ public void _ParaIsCharacterDistance() {
+ testProperty("ParaIsCharacterDistance", Boolean.TRUE, Boolean.FALSE);
+ }
+
+ public void _ParaIsForbiddenRules() {
+ testProperty("ParaIsForbiddenRules", Boolean.TRUE, Boolean.FALSE);
+ }
+
+ public void _ParaIsHangingPunctuation() {
+ testProperty("ParaIsHangingPunctuation", Boolean.TRUE, Boolean.FALSE);
+ }
+} //finish class _CharacterPropertiesAsian
diff --git a/qadevOOo/tests/java/ifc/style/_CharacterPropertiesComplex.java b/qadevOOo/tests/java/ifc/style/_CharacterPropertiesComplex.java
new file mode 100644
index 000000000..2582ff8c5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_CharacterPropertiesComplex.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.style.CharacterPropertiesComplex</code>
+* service properties :
+* <ul>
+* <li><code> CharHeightComplex</code></li>
+* <li><code> CharWeightComplex</code></li>
+* <li><code> CharFontNameComplex</code></li>
+* <li><code> CharFontStyleNameComplex</code></li>
+* <li><code> CharFontFamilyComplex</code></li>
+* <li><code> CharFontCharSetComplex</code></li>
+* <li><code> CharFontPitchComplex</code></li>
+* <li><code> CharPostureComplex</code></li>
+* <li><code> CharLocaleComplex</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.CharacterPropertiesComplex
+*/
+public class _CharacterPropertiesComplex extends MultiPropertyTest {
+
+ public void _CharWeightComplex() {
+ testProperty("CharWeightComplex", new Float(com.sun.star.awt.FontWeight.BOLD),
+ new Float(com.sun.star.awt.FontWeight.THIN)) ;
+ }
+
+ public void _CharPostureComplex() {
+ testProperty("CharPostureComplex", com.sun.star.awt.FontSlant.ITALIC,
+ com.sun.star.awt.FontSlant.NONE) ;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} //finish class _CharacterPropertiesComplex
+
diff --git a/qadevOOo/tests/java/ifc/style/_CharacterStyle.java b/qadevOOo/tests/java/ifc/style/_CharacterStyle.java
new file mode 100644
index 000000000..b694ecc15
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_CharacterStyle.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.style.CharacterStyle</code>
+* service properties :
+* <ul>
+* <li><code> CharDiffHeight</code></li>
+* <li><code> CharPropHeight</code></li>
+* <li><code> CharDiffHeightAsian</code></li>
+* <li><code> CharPropHeightAsian</code></li>
+* <li><code> CharDiffHeightComplex</code></li>
+* <li><code> CharPropHeightComplex</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.CharacterStyle
+*/
+public class _CharacterStyle extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/style/_PageProperties.java b/qadevOOo/tests/java/ifc/style/_PageProperties.java
new file mode 100644
index 000000000..f8896c6d4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_PageProperties.java
@@ -0,0 +1,117 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.xml.AttributeData;
+import lib.MultiPropertyTest;
+
+/**
+ * Test page properties.
+ * Testing is done by lib.MultiPropertyTest, except for properties
+ * <ul>
+ * <li>PrinterPaperTray</li>
+ * <li>UserDefinedAttributes</li>
+ * </ul>
+ */
+public class _PageProperties extends MultiPropertyTest {
+
+ /**
+ * Switch on Header and Footer properties
+ * so all props can be tested.
+ */
+ @Override
+ protected void before() {
+ try {
+ oObj.setPropertyValue("HeaderIsOn", Boolean.TRUE);
+ oObj.setPropertyValue("FooterIsOn", Boolean.TRUE);
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Don't know the Property 'HeaderIsOn' or 'FooterIsOn'");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("WrappedTargetException while setting Property 'HeaderIsOn' or 'FooterIsOn'");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("IllegalArgumentException while setting Property 'HeaderIsOn' or 'FooterIsOn'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("PropertyVetoException while setting Property 'HeaderIsOn' or 'FooterIsOn'");
+ }
+ }
+
+ /**
+ * This property is system dependent and printer dependent.
+ * So only reading it does make sense, since it cannot be determined, if
+ * it is set to an allowed value.
+ */
+ public void _PrinterPaperTray() {
+ boolean res = false;
+ String setting = null;
+ try {
+ setting = (String)oObj.getPropertyValue("PrinterPaperTray");
+ log.println("Property 'PrinterPaperTray' is set to '" + setting + "'.");
+ res = setting != null;
+ }
+ catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Don't know the Property 'PrinterPaperTray'");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("WrappedTargetException while getting Property 'PrinterPaperTray'");
+ }
+ tRes.tested("PrinterPaperTray", res);
+ }
+
+ /**
+ * Create some valid user defined attributes
+ */
+ public void _UserDefinedAttributes() {
+ XNameContainer uda = null;
+ boolean res = false;
+ try {
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("UserDefinedAttributes"));
+ AttributeData attr = new AttributeData();
+ attr.Namespace = "http://www.sun.com/staroffice/apitest/Cellprop";
+ attr.Type="CDATA";
+ attr.Value="true";
+ uda.insertByName("Cellprop:has-first-alien-attribute",attr);
+ uda.getElementNames();
+ oObj.setPropertyValue("UserDefinedAttributes",uda);
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("UserDefinedAttributes"));
+ uda.getElementNames();
+ uda.getByName("Cellprop:has-first-alien-attribute");
+ res = true;
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Don't know the Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("WrappedTargetException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.container.NoSuchElementException nee) {
+ log.println("added Element isn't part of the NameContainer");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("IllegalArgumentException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("PropertyVetoException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.container.ElementExistException eee) {
+ log.println("ElementExistException while getting Property 'UserDefinedAttributes'");
+ }
+ tRes.tested("UserDefinedAttributes",res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/style/_PageStyle.java b/qadevOOo/tests/java/ifc/style/_PageStyle.java
new file mode 100644
index 000000000..49d0de3a1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_PageStyle.java
@@ -0,0 +1,28 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+/**
+ * Test page style properties.
+ * These properties are a subset of the PageProperties. So just use the
+ * PageProperties test
+ */
+public class _PageStyle extends _PageProperties {
+
+}
diff --git a/qadevOOo/tests/java/ifc/style/_ParagraphProperties.java b/qadevOOo/tests/java/ifc/style/_ParagraphProperties.java
new file mode 100644
index 000000000..aa3b173f5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_ParagraphProperties.java
@@ -0,0 +1,456 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.style;
+
+import ifc.text._NumberingLevel;
+
+import java.util.HashMap;
+
+import lib.MultiPropertyTest;
+import share.LogWriter;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.UnknownPropertyException;
+import com.sun.star.container.XIndexReplace;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.xml.AttributeData;
+
+
+/**
+* Testing <code>com.sun.star.style.ParagraphProperties</code>
+* service properties :
+* <ul>
+* <li><code> ParaAdjust</code></li>
+* <li><code> ParaLineSpacing</code></li>
+* <li><code> ParaBackColor</code></li>
+* <li><code> ParaBackTransparent</code></li>
+* <li><code> ParaBackGraphicURL</code></li>
+* <li><code> ParaBackGraphicFilter</code></li>
+* <li><code> ParaBackGraphicLocation</code></li>
+* <li><code> ParaLastLineAdjust</code></li>
+* <li><code> ParaExpandSingleWord</code></li>
+* <li><code> ParaLeftMargin</code></li>
+* <li><code> ParaRightMargin</code></li>
+* <li><code> ParaTopMargin</code></li>
+* <li><code> ParaBottomMargin</code></li>
+* <li><code> ParaLineNumberCount</code></li>
+* <li><code> ParaLineNumberStartValue</code></li>
+* <li><code> ParaIsHyphenation</code></li>
+* <li><code> PageDescName</code></li>
+* <li><code> PageNumberOffset</code></li>
+* <li><code> ParaRegisterModeActive</code></li>
+* <li><code> ParaTabStops</code></li>
+* <li><code> ParaStyleName</code></li>
+* <li><code> DropCapFormat</code></li>
+* <li><code> DropCapWholeWord</code></li>
+* <li><code> ParaKeepTogether</code></li>
+* <li><code> ParaSplit</code></li>
+* <li><code> NumberingLevel</code></li>
+* <li><code> NumberingRules</code></li>
+* <li><code> NumberingStartValue</code></li>
+* <li><code> ParaIsNumberingRestart</code></li>
+* <li><code> NumberingStyleName</code></li>
+* <li><code> ParaOrphans</code></li>
+* <li><code> ParaWidows</code></li>
+* <li><code> ParaShadowFormat</code></li>
+* <li><code> IsHangingPunctuation</code></li>
+* <li><code> IsCharacterDistance</code></li>
+* <li><code> IsForbiddenRules</code></li>
+* <li><code> LeftBorder</code></li>
+* <li><code> RightBorder</code></li>
+* <li><code> TopBorder</code></li>
+* <li><code> BottomBorder</code></li>
+* <li><code> BorderDistance</code></li>
+* <li><code> LeftBorderDistance</code></li>
+* <li><code> RightBorderDistance</code></li>
+* <li><code> TopBorderDistance</code></li>
+* <li><code> BottomBorderDistance</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'NRULES'</code> : <b>optional</b>
+* (service <code>com.sun.star.text.NumberingRules</code>):
+* instance of the service which can be set as 'NumberingRules'
+* property new value. If the relation doesn't then two
+* different <code>NumberingRules</code> objects are tried
+* to be obtained by setting different 'NumberingStyleName'
+* property styles and getting 'NumberingRules' property values.</li>
+* <ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.ParagraphProperties
+*/
+public class _ParagraphProperties extends MultiPropertyTest {
+ /**
+ * Custom tester for numbering style properties. Switches between
+ * 'Numbering 123' and 'Numbering ABC' styles.
+ */
+ protected PropertyTester NumberingStyleTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if ((oldValue != null) && (oldValue.equals("Numbering 123"))) {
+ return "Numbering ABC";
+ } else {
+ return "Numbering 123";
+ }
+ }
+ };
+
+ /**
+ * Custom tester for paragraph style properties. Switches between
+ * 'Salutation' and 'Heading' styles.
+ */
+ protected PropertyTester charStyleTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (!utils.isVoid(oldValue) && (oldValue.equals("Example"))) {
+ return "Emphasis";
+ } else {
+ return "Example";
+ }
+ }
+ };
+
+ /**
+ * Custom tester for paragraph style properties. Switches between
+ * 'Salutation' and 'Heading' styles.
+ */
+ protected PropertyTester ParaStyleTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (!utils.isVoid(oldValue) && (oldValue.equals("Heading"))) {
+ return "Salutation";
+ } else {
+ return "Heading";
+ }
+ }
+ };
+
+ /**
+ * Custom tester for PageDescName properties. Switches between
+ * 'HTML' and 'Standard' descriptor names.
+ */
+ protected PropertyTester PageDescTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (!util.utils.isVoid(oldValue) &&
+ (oldValue.equals("Default"))) {
+ return "HTML";
+ } else {
+ return "Default";
+ }
+ }
+ };
+
+ /**
+ * Custom tester for properties which have <code>short</code> type
+ * and can be void, so if they have void value, the new value must
+ * be specified. Switches between two different values.
+ */
+ protected PropertyTester ShortTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if ((oldValue != null) &&
+ (oldValue.equals(Short.valueOf((short) 0)))) {
+ return Short.valueOf((short) 2);
+ } else {
+ return Short.valueOf((short) 0);
+ }
+ }
+ };
+
+ /**
+ * Custom tester for properties which have <code>boolean</code> type
+ * and can be void, so if they have void value, the new value must
+ * be specified. Switches between true and false.
+ */
+ protected PropertyTester BooleanTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if ((oldValue != null) &&
+ (oldValue.equals(Boolean.FALSE))) {
+ return Boolean.TRUE;
+ } else {
+ return Boolean.FALSE;
+ }
+ }
+ };
+
+ /**
+ * Custom tester for properties which contains image URLs.
+ * Switches between two JPG images' URLs.
+ */
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg"))) {
+ return util.utils.getFullTestURL("crazy-blue.jpg");
+ } else {
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ }
+ };
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _NumberingStyleName() {
+ log.println("Testing with custom Property tester");
+ testProperty("NumberingStyleName", NumberingStyleTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _DropCapCharStyleName() {
+ log.println("Testing with custom Property tester");
+ testProperty("DropCapCharStyleName", charStyleTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ParaStyleName() {
+ log.println("Testing with custom Property tester");
+ testProperty("ParaStyleName", ParaStyleTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _PageDescName() {
+ log.println("Testing with custom Property tester");
+ testProperty("PageDescName", PageDescTester);
+ }
+
+ /**
+ * Tested with custom property tester. Before testing property
+ * <code>ParaAdjust</code> is setting to value <code>BLOCK</code>
+ * because setting the property <code>ParaLastLineAdjust</code>
+ * makes sense only in this case.
+ */
+ public void _ParaLastLineAdjust() {
+ log.println("Testing with custom Property tester");
+
+ try {
+ oObj.setPropertyValue("ParaAdjust",
+ com.sun.star.style.ParagraphAdjust.BLOCK);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred setting property 'ParagraphAdjust'" + e);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred setting property 'ParagraphAdjust'" + e);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occurred setting property 'ParagraphAdjust'" + e);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occurred setting property 'ParagraphAdjust'" + e);
+ }
+
+ testProperty("ParaLastLineAdjust", ShortTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ParaBackGraphicURL() {
+ log.println("Testing with custom Property tester");
+ testProperty("ParaBackGraphicURL", URLTester);
+ }
+
+ /**
+ * Tested with custom property tester. <p>
+ * The following property tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> NumberingStyleName </code> : a numbering style must
+ * be set before testing this property </li>
+ * </ul>
+ */
+ public void _NumberingLevel() {
+ requiredMethod("NumberingStyleName");
+ log.println("Testing with custom Property tester");
+ testProperty("NumberingLevel", ShortTester);
+ }
+
+ /**
+ * Tested with custom property tester. <p>
+ */
+ public void _ParaIsConnectBorder() {
+
+ log.println("Testing with custom Property tester");
+ testProperty("ParaIsConnectBorder", BooleanTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ParaVertAlignment() {
+ log.println("Testing with custom Property tester");
+ testProperty("ParaVertAlignment", ShortTester);
+ }
+
+ /**
+ * Tested with com.sun.star.text.NumberingLevel <p>
+ * The value of this property is a com.sun.star.container.XIndexReplace which is represented by
+ * com.sun.star.text.NumberingLevel.
+ * The following property tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> NumberingStyleName </code> : a numbering style must
+ * be set before testing this property </li>
+ * </ul>
+ * @see com.sun.star.text.NumberlingLevel
+ * @see com.sun.star.container.XIndexReplace
+ * @see ifc.text._NumberingLevel
+ */
+ public void _NumberingRules() {
+ requiredMethod("NumberingStyleName");
+
+ XIndexReplace NumberingRules = null;
+ PropertyValue[] propertyValues = null;
+ try {
+ NumberingRules = (XIndexReplace) AnyConverter.toObject(
+ new Type(XIndexReplace.class), oObj.getPropertyValue("NumberingRules"));
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("could not get NumberingRules: "+ ex.toString() );
+ return;
+ } catch (UnknownPropertyException ex) {
+ log.println( "could not get NumberingRules: "+ ex.toString() );
+ return;
+ } catch (WrappedTargetException ex) {
+ log.println( "could not get NumberingRules: "+ ex.toString() );
+ return;
+ }
+ try {
+ propertyValues = (PropertyValue[]) NumberingRules.getByIndex(0);
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println( "could not get NumberlingLevel-Array from NumberingRules: "+ ex.toString() );
+ return;
+ } catch (WrappedTargetException ex) {
+ log.println( "could not get NumberlingLevel-Array from NumberingRules: "+ ex.toString() );
+ return;
+ }
+
+ _NumberingLevel numb = new _NumberingLevel((LogWriter)log, tParam, propertyValues);
+
+ boolean result = numb.testPropertyArray();
+
+ tRes.tested("NumberingRules", result);
+ }
+
+ public void _ParaUserDefinedAttributes() {
+ XNameContainer uda = null;
+ boolean res = false;
+
+ try {
+ try{
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("ParaUserDefinedAttributes"));
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("ParaUserDefinedAttributes is empty.");
+ uda = new _ParagraphProperties.OwnUserDefinedAttributes();
+ }
+ AttributeData attr = new AttributeData();
+ attr.Namespace = "http://www.sun.com/staroffice/apitest/Cellprop";
+ attr.Type = "CDATA";
+ attr.Value = "true";
+ uda.insertByName("Cellprop:has-first-alien-attribute", attr);
+
+ uda.getElementNames();
+ oObj.setPropertyValue("ParaUserDefinedAttributes", uda);
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("ParaUserDefinedAttributes"));
+ uda.getElementNames();
+
+ uda.getByName("Cellprop:has-first-alien-attribute");
+ res = true;
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ if (isOptional("ParaUserDefinedAttributes")) {
+ log.println("Property is optional and not supported");
+ res = true;
+ } else {
+ log.println("Don't know the Property 'ParaUserDefinedAttributes'");
+ }
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println(
+ "WrappedTargetException while getting Property 'ParaUserDefinedAttributes'");
+ } catch (com.sun.star.container.NoSuchElementException nee) {
+ log.println("added Element isn't part of the NameContainer");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println(
+ "IllegalArgumentException while getting Property 'ParaUserDefinedAttributes'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println(
+ "PropertyVetoException while getting Property 'ParaUserDefinedAttributes'");
+ } catch (com.sun.star.container.ElementExistException eee) {
+ log.println(
+ "ElementExistException while getting Property 'ParaUserDefinedAttributes'");
+ }
+
+ tRes.tested("ParaUserDefinedAttributes", res);
+ }
+
+ private static class OwnUserDefinedAttributes implements XNameContainer{
+ HashMap<String, Object> members = null;
+
+
+ public OwnUserDefinedAttributes() {
+ members = new HashMap<String, Object>();
+ }
+
+ public Object getByName(String str) throws com.sun.star.container.NoSuchElementException, com.sun.star.lang.WrappedTargetException {
+ return members.get(str);
+ }
+
+ public String[] getElementNames() {
+ java.util.Set<String> keySet = members.keySet();
+ return keySet.toArray(new String[keySet.size()]);
+ }
+
+ public com.sun.star.uno.Type getElementType() {
+ String key = members.keySet().iterator().next();
+ Object o = members.get(key);
+ return new Type(o.getClass());
+ }
+
+ public boolean hasByName(String str) {
+ return members.get(str) != null;
+ }
+
+ public boolean hasElements() {
+ return members.size() > 0;
+ }
+
+ public void insertByName(String str, Object obj) throws com.sun.star.lang.IllegalArgumentException, com.sun.star.container.ElementExistException, com.sun.star.lang.WrappedTargetException {
+ members.put(str, obj);
+ }
+
+ public void removeByName(String str) throws com.sun.star.container.NoSuchElementException, com.sun.star.lang.WrappedTargetException {
+ members.remove(str);
+ }
+
+ public void replaceByName(String str, Object obj) throws com.sun.star.lang.IllegalArgumentException, com.sun.star.container.NoSuchElementException, com.sun.star.lang.WrappedTargetException {
+ members.put(str, obj);
+ }
+
+ }
+} // finish class _ParagraphProperties
diff --git a/qadevOOo/tests/java/ifc/style/_ParagraphPropertiesAsian.java b/qadevOOo/tests/java/ifc/style/_ParagraphPropertiesAsian.java
new file mode 100644
index 000000000..9c2faafa0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_ParagraphPropertiesAsian.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.style.ParagraphPropertiesAsian</code>
+* service properties :
+* <ul>
+* <li><code> ParaIsHangingPunctuation </code></li>
+* <li><code> ParaIsCharacterDistance </code></li>
+* <li><code> ParaIsForbiddenRules </code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.ParagraphProperties
+*/
+public class _ParagraphPropertiesAsian extends MultiPropertyTest {
+ /**
+ * Custom tester for properties which have <code>boolean</code> type
+ * and can be void, so if they have void value, the new value must
+ * be specified. Switches between true and false.
+ */
+ protected PropertyTester BooleanTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if ((oldValue != null) &&
+ (oldValue.equals(Boolean.FALSE))) {
+ return Boolean.TRUE;
+ } else {
+ return Boolean.FALSE;
+ }
+ }
+ };
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ParaIsHangingPunctuation() {
+ log.println("Testing with custom Property tester");
+ testProperty("ParaIsHangingPunctuation", BooleanTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ParaIsCharacterDistance() {
+ log.println("Testing with custom Property tester");
+ testProperty("ParaIsCharacterDistance", BooleanTester);
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ParaIsForbiddenRules() {
+ log.println("Testing with custom Property tester");
+ testProperty("ParaIsForbiddenRules", BooleanTester);
+ }
+
+
+} // finish class _ParagraphProperties
+
diff --git a/qadevOOo/tests/java/ifc/style/_ParagraphPropertiesComplex.java b/qadevOOo/tests/java/ifc/style/_ParagraphPropertiesComplex.java
new file mode 100644
index 000000000..09c00af10
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_ParagraphPropertiesComplex.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.style.ParagraphPropertiesComplex</code>
+*
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.ParagraphPropertiesComplex
+*/
+public class _ParagraphPropertiesComplex extends MultiPropertyTest {
+
+
+ protected PropertyTester WritingModeTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if ((oldValue != null) && (oldValue.equals(Short.valueOf(com.sun.star.text.WritingMode2.LR_TB))))
+ return Short.valueOf(com.sun.star.text.WritingMode2.PAGE); else
+ return Short.valueOf(com.sun.star.text.WritingMode2.LR_TB);
+ }
+ } ;
+
+ public void _WritingMode() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("WritingMode", WritingModeTester) ;
+ }
+
+} // finish class _ParagraphPropertiesComplex
+
diff --git a/qadevOOo/tests/java/ifc/style/_ParagraphStyle.java b/qadevOOo/tests/java/ifc/style/_ParagraphStyle.java
new file mode 100644
index 000000000..f848f29fd
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_ParagraphStyle.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+/**
+ */
+public class _ParagraphStyle extends MultiPropertyTest {
+
+}
diff --git a/qadevOOo/tests/java/ifc/style/_Style.java b/qadevOOo/tests/java/ifc/style/_Style.java
new file mode 100644
index 000000000..3e5d97535
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_Style.java
@@ -0,0 +1,45 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.style.Style</code>
+* service properties :
+* <ul>
+* <li><code> IsPhysical</code></li>
+* <li><code> FollowStyle</code></li>
+* <li><code> DisplayName</code></li>
+* <li><code> IsAutoUpdate</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.style.Style
+*/
+public class _Style extends MultiPropertyTest {
+
+ public void _FollowStyle() {
+ String style = (String)tEnv.getObjRelation("FollowStyle");
+ if (style == null) style = "Heading 1";
+ testProperty("FollowStyle", style, "Heading 2");
+ }
+
+} // finish class _Style
+
+
diff --git a/qadevOOo/tests/java/ifc/style/_XStyle.java b/qadevOOo/tests/java/ifc/style/_XStyle.java
new file mode 100644
index 000000000..9478fe0d1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_XStyle.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.style.XStyle;
+
+/**
+* Testing <code>com.sun.star.style.XStyle</code>
+* interface methods :
+* <ul>
+* <li><code> isUserDefined()</code></li>
+* <li><code> isInUse()</code></li>
+* <li><code> getParentStyle()</code></li>
+* <li><code> setParentStyle()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'PoolStyle'</code> (of type <code>XStyle</code>):
+* some style from the SOffice collection (not user defined) </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.style.XStyle
+*/
+public class _XStyle extends MultiMethodTest {
+
+ public XStyle oObj = null;
+ XStyle oMyStyle = null;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ oMyStyle = (XStyle) tEnv.getObjRelation("PoolStyle");
+ if (oMyStyle == null) throw new StatusException
+ (Status.failed("Relation not found")) ;
+ }
+
+ /**
+ * Gets the parent style . <p>
+ * Has <b> OK </b> status if the name of style returned is
+ * equal to the name of style which was set before. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setParentStyle() </code> : to set the parent style </li>
+ * </ul>
+ */
+ public void _getParentStyle() {
+ requiredMethod("setParentStyle()");
+ tRes.tested("getParentStyle()",
+ oObj.getParentStyle().equals(oMyStyle.getName()));
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>. <p>
+ */
+ public void _isInUse() {
+ tRes.tested("isInUse()",oObj.isInUse());
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>. <p>
+ */
+ public void _isUserDefined() {
+ tRes.tested("isUserDefined()",
+ oObj.isUserDefined() && !oMyStyle.isUserDefined() );
+ }
+
+ /**
+ * Sets the style name which was passed as relation. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _setParentStyle() {
+ boolean result = true ;
+ try {
+ oObj.setParentStyle(oMyStyle.getName());
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("Exception occurred while method call: " + e);
+ result = false ;
+ }
+
+ tRes.tested("setParentStyle()",result);
+ }
+} //finish class _XStyle
+
diff --git a/qadevOOo/tests/java/ifc/style/_XStyleFamiliesSupplier.java b/qadevOOo/tests/java/ifc/style/_XStyleFamiliesSupplier.java
new file mode 100644
index 000000000..65b4fbf3b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/style/_XStyleFamiliesSupplier.java
@@ -0,0 +1,46 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.style;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.style.XStyleFamiliesSupplier;
+
+/**
+* Testing <code>com.sun.star.style.XStyleFamiliesSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> getStyleFamilies()</code></li>
+* </ul> <p>
+* Test is multithread compliant. <p>
+* @see com.sun.star.style.XStyleFamiliesSupplier
+*/
+public class _XStyleFamiliesSupplier extends MultiMethodTest {
+
+ public XStyleFamiliesSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not null value.
+ */
+ public void _getStyleFamilies() {
+ tRes.tested("getStyleFamilies()",oObj.getStyleFamilies() != null);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/system/_XSimpleMailClientSupplier.java b/qadevOOo/tests/java/ifc/system/_XSimpleMailClientSupplier.java
new file mode 100644
index 000000000..91c355888
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/system/_XSimpleMailClientSupplier.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.system;
+
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.system.XSimpleMailClient;
+import com.sun.star.system.XSimpleMailClientSupplier;
+
+
+/**
+* Testing <code>com.sun.star.system.XSimpleMailClientSupplier</code>
+* interface methods :
+* <ul>
+* <li><code> querySimpleMailClient()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'SystemMailExist'</code> (of type <code>Boolean</code>):
+* if <code>true</code> then <code>SimpleSystemMail</code> service
+* is available, if NOT then the service is not available or
+* OS doesn't has system mail.</li>
+* <ul> <p>
+* @see com.sun.star.system.XSimpleMailClientSupplier
+*/
+public class _XSimpleMailClientSupplier extends MultiMethodTest {
+
+ public XSimpleMailClientSupplier oObj = null;
+
+ /**
+ * Test calls the method if the <code>SimpleSystemMail</code>
+ * service is available on current OS. <p>
+ * Has <b> OK </b> status if not null value returned or
+ * has <b>SKIPPED.OK</b> status if SystemMail is not available. <p>
+ */
+ public void _querySimpleMailClient() {
+ if (Boolean.TRUE.equals
+ (tEnv.getObjRelation("SystemMailExist"))) {
+
+ XSimpleMailClient aClient = oObj.querySimpleMailClient();
+ tRes.tested("querySimpleMailClient()",aClient != null);
+ } else {
+ log.println("SystemMail doesn't exist : nothing to test") ;
+ tRes.tested("querySimpleMailClient()", Status.skipped(true)) ;
+ }
+ }
+
+
+} // finish class _XSimpleMailClientSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/system/_XSystemShellExecute.java b/qadevOOo/tests/java/ifc/system/_XSystemShellExecute.java
new file mode 100644
index 000000000..3906e7bdc
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/system/_XSystemShellExecute.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.system;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.system.XSystemShellExecute;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Testing <code>com.sun.star.system.XSystemShellExecute</code>
+* interface methods :
+* <ul>
+* <li><code> execute()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.system.XSystemShellExecute
+*/
+public class _XSystemShellExecute extends MultiMethodTest {
+
+ public XSystemShellExecute oObj = null;
+
+ /**
+ * Executes 'java SystemShellExecute SystemShellExecute.txt' command line.
+ * <p>Has <b> OK </b> status if the method successfully returns
+ * and file 'SystemShellExecute.txt' was created. <p>
+ */
+ public void _execute() {
+ String cClassPath = System.getProperty("DOCPTH");
+ String cResFile = utils.getOfficeTempDirSys(tParam.getMSF())+"SystemShellExecute.txt";
+ String cResURL = utils.getOfficeTemp(tParam.getMSF())+"SystemShellExecute.txt";
+ String cArgs = "-classpath " + cClassPath +
+ " SystemShellExecute " + cResFile;
+
+ String jh = System.getProperty("java.home");
+ String fs = System.getProperty("file.separator");
+ String cmd = jh+fs+"bin"+fs+"java";
+
+ log.println("Executing : '"+cmd+" " + cArgs + "'");
+ try {
+ oObj.execute(cmd, cArgs, 1);
+ } catch (com.sun.star.system.SystemShellExecuteException e) {
+ log.println("Exception during execute: " + e);
+ log.println("This has been implemented due to security reasons");
+ tRes.tested("execute()", true);
+ return;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception during execute: " + e);
+ tRes.tested("execute()", false);
+ return;
+ }
+
+ XSimpleFileAccess xFileAccess = null;
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ Object fa = xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
+ xFileAccess = UnoRuntime.queryInterface(XSimpleFileAccess.class, fa);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't create SimpleFileAccess:" + e);
+ tRes.tested("execute()", false);
+ return;
+ }
+
+ log.println("Waiting while the file will be created or timeout "+
+ "reached ...");
+ boolean bExist = false;
+ int i = 0;
+ while (i < 20 && !bExist) {
+ try {
+ bExist = xFileAccess.exists(cResURL);
+ } catch(com.sun.star.uno.Exception e) {
+ log.println("Exception:" + e);
+ }
+ waitForEventIdle();
+ i++;
+ }
+
+ if (bExist) {
+ log.println("The command was executed and file created in " +
+ i + " sec.");
+ } else {
+ log.println("File was not created");
+ }
+
+ tRes.tested("execute()", bExist);
+ }
+} // finish class _XSystemShellExecute
+
+
diff --git a/qadevOOo/tests/java/ifc/table/_CellProperties.java b/qadevOOo/tests/java/ifc/table/_CellProperties.java
new file mode 100644
index 000000000..e3fac6674
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/table/_CellProperties.java
@@ -0,0 +1,102 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.table;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.xml.AttributeData;
+
+/**
+* Testing <code>com.sun.star.table.CellProperties</code>
+* service properties :
+* <ul>
+* <li><code> CellStyle</code></li>
+* <li><code> CellBackColor</code></li>
+* <li><code> IsCellBackgroundTransparent</code></li>
+* <li><code> NumberFormat</code></li>
+* <li><code> ShadowFormat</code></li>
+* <li><code> HoriJustify</code></li>
+* <li><code> VertJustify</code></li>
+* <li><code> Orientation</code></li>
+* <li><code> CellProtection</code></li>
+* <li><code> TableBorder</code></li>
+* <li><code> IsTextWrapped</code></li>
+* <li><code> RotateAngle</code></li>
+* <li><code> RotateReference</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.table.CellProperties
+*/
+public class _CellProperties extends MultiPropertyTest {
+
+
+ /**
+ * This property is tested with custom property tester which
+ * switches between 'Default' and 'Result' style names.
+ */
+ public void _CellStyle() {
+ testProperty("CellStyle", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String name, Object old) {
+ return "Default".equals(old) ? "Result" : "Default" ;
+ }
+ }) ;
+ }
+
+ public void _UserDefinedAttributes() {
+ XNameContainer uda = null;
+ boolean res = false;
+ try {
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("UserDefinedAttributes"));
+ AttributeData attr = new AttributeData();
+ attr.Namespace = "http://www.sun.com/staroffice/apitest/Cellprop";
+ attr.Type="CDATA";
+ attr.Value="true";
+ uda.insertByName("Cellprop:has-first-alien-attribute",attr);
+ uda.getElementNames();
+ oObj.setPropertyValue("UserDefinedAttributes",uda);
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("UserDefinedAttributes"));
+ uda.getElementNames();
+ uda.getByName("Cellprop:has-first-alien-attribute");
+ res = true;
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Don't know the Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("WrappedTargetException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.container.NoSuchElementException nee) {
+ log.println("added Element isn't part of the NameContainer");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("IllegalArgumentException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("PropertyVetoException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.container.ElementExistException eee) {
+ log.println("ElementExistException while getting Property 'UserDefinedAttributes'");
+ }
+ tRes.tested("UserDefinedAttributes",res);
+ }
+
+} // finish class _CellProperties
+
diff --git a/qadevOOo/tests/java/ifc/table/_XAutoFormattable.java b/qadevOOo/tests/java/ifc/table/_XAutoFormattable.java
new file mode 100644
index 000000000..6473f17b7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/table/_XAutoFormattable.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.table;
+
+import java.util.Random;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.table.XAutoFormattable;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Testing <code>com.sun.star.table.XAutoFormattable</code>
+* interface methods :
+* <ul>
+* <li><code> autoFormat()</code></li>
+* </ul> <p>
+* The component tested <b>must implement</b> interface
+* <code>com.sun.star.table.XCellRange</code>. <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.table.XAutoFormattable
+*/
+public class _XAutoFormattable extends MultiMethodTest {
+ public XAutoFormattable oObj = null;
+
+ /**
+ * First 'Default' autoformat is set and a background of a cell
+ * is obtained. Then any other autoformat is set and background
+ * of a cell is obtained again.<p>
+ * Has <b> OK </b> status if backgrounds with different autoformat
+ * settings are differ. <p>
+ */
+ public void _autoFormat() {
+ boolean bResult = true;
+ XMultiServiceFactory oMSF = tParam.getMSF();
+ String name = "Default";
+
+ try {
+ oObj.autoFormat(name); // applying default format
+
+ // getting current background of the cell
+ XCellRange cellRange = UnoRuntime.queryInterface(
+ XCellRange.class, oObj);
+ XCell oCell = cellRange.getCellByPosition(0, 0);
+ XPropertySet PS = UnoRuntime.queryInterface(
+ XPropertySet.class, oCell);
+
+ Integer bkgrnd1;
+ try {
+ bkgrnd1 = (Integer) PS.getPropertyValue("CellBackColor");
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ bkgrnd1 = (Integer) PS.getPropertyValue("BackColor");
+ }
+
+ // getting formats names.
+ XInterface iFormats = (XInterface) oMSF.createInstance(
+ "com.sun.star.sheet.TableAutoFormats");
+ XNameAccess formats = UnoRuntime.queryInterface(
+ XNameAccess.class, iFormats);
+ String[] names = formats.getElementNames();
+
+ // getting one random not default style name
+ Random rnd = new Random();
+
+ if (names.length > 1) {
+ while (name.equals("Default")) {
+ name = names[rnd.nextInt(names.length)];
+ }
+ } else {
+ name = names[0];
+ }
+
+ log.println("Applying style " + name);
+
+
+ // applying style
+ oObj.autoFormat(name);
+
+ // getting new cell's background.
+ Integer bkgrnd2;
+ try {
+ bkgrnd2 = (Integer) PS.getPropertyValue("CellBackColor");
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ bkgrnd2 = (Integer) PS.getPropertyValue("BackColor");
+ }
+
+ bResult &= !bkgrnd1.equals(bkgrnd2);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception occurred :");
+ e.printStackTrace(log);
+ bResult = false;
+ }
+
+ tRes.tested("autoFormat()", bResult);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/table/_XCellRange.java b/qadevOOo/tests/java/ifc/table/_XCellRange.java
new file mode 100644
index 000000000..08420e24f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/table/_XCellRange.java
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.table;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+
+/**
+* Testing <code>com.sun.star.table.XCellRange</code>
+* interface methods :
+* <ul>
+* <li><code> getCellByPosition()</code></li>
+* <li><code> getCellRangeByPosition()</code></li>
+* <li><code> getCellRangeByName()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'ValidRange'</code> (of type <code>String</code>):
+* cell range that can be defined by the object test instead of
+* definition at this test ("<code>A1:A1</code>")</li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.table.XCellRange
+*/
+public class _XCellRange extends MultiMethodTest {
+ public XCellRange oObj = null;
+
+ /**
+ * First a cell get from valid position, second - from invalid. <p>
+ * Has <b> OK </b> status if in the first case not null value is
+ * returned and no exceptions are thrown, and in the second
+ * case <code>IndexOutOfBoundsException</code> is thrown. <p>
+ */
+ public void _getCellByPosition() {
+
+ boolean result = false;
+
+ try {
+ XCell cell = oObj.getCellByPosition(0,0);
+ result = cell != null ;
+ log.println("Getting cell by position with a valid position ... OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while getting cell by position with a valid position");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ try {
+ oObj.getCellByPosition(-1,1);
+ log.println("No Exception occurred while getting cell by position with invalid position");
+ result &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Getting cell by position with an invalid position ... OK");
+ result &= true;
+ }
+
+ tRes.tested( "getCellByPosition()", result );
+
+ } // end getCellByPosition()
+
+ /**
+ * A range is tried to obtain with valid name. <p>
+ * Has <b> OK </b> status if not null range is
+ * returned. <p>
+ */
+ public void _getCellRangeByName() {
+
+ boolean result = false;
+
+ String valid = (String) tEnv.getObjRelation("ValidRange");
+ if (valid == null ) valid = "A1:A1";
+ XCellRange range = oObj.getCellRangeByName(valid);
+ result = range != null ;
+ log.println("Getting cellrange by name with a valid name ... OK");
+
+ tRes.tested( "getCellRangeByName()", result );
+
+
+ } // end getCellRangeByName()
+
+ /**
+ * First a range is tried to obtain with valid bounds,
+ * second - with invalid. <p>
+ * Has <b> OK </b> status if in the first case not null range is
+ * returned and no exceptions are thrown, and in the second
+ * case <code>IndexOutOfBoundsException</code> is thrown. <p>
+ */
+ public void _getCellRangeByPosition() {
+
+ boolean result = false;
+
+ try {
+ XCellRange range = oObj.getCellRangeByPosition(0,0,0,0);
+ result = range != null;
+ log.println("Getting cellrange by Position with a valid position ... OK");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while getting cellrange by position with a valid position");
+ e.printStackTrace(log);
+ result = false;
+ }
+
+ try {
+ oObj.getCellRangeByPosition(-1,0,-1,1);
+ log.println("No Exception occurred while getting cellrange by position with invalid position");
+ result &= false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Getting cellrange by position with an invalid position ... OK");
+ result &= true;
+ }
+
+ tRes.tested( "getCellRangeByPosition()", result );
+
+
+ } // end getCellRangeByPosition()
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // finish class _XCellRange
+
diff --git a/qadevOOo/tests/java/ifc/table/_XTableChart.java b/qadevOOo/tests/java/ifc/table/_XTableChart.java
new file mode 100644
index 000000000..1730d9f96
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/table/_XTableChart.java
@@ -0,0 +1,116 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.table;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XTableChart;
+
+/**
+* Testing <code>com.sun.star.table.XTableChart</code>
+* interface methods :
+* <ul>
+* <li><code> getHasColumnHeaders()</code></li>
+* <li><code> setHasColumnHeaders()</code></li>
+* <li><code> getHasRowHeaders()</code></li>
+* <li><code> setHasRowHeaders()</code></li>
+* <li><code> getRanges()</code></li>
+* <li><code> setRanges()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.table.XTableChart
+*/
+public class _XTableChart extends MultiMethodTest {
+
+ public XTableChart oObj = null;
+
+ /**
+ * Sets the property to <code>false</code> and then check it. <p>
+ * Has <b> OK </b> status if the method returns <code>false</code>. <p>
+ */
+ public void _getHasColumnHeaders() {
+ oObj.setHasColumnHeaders(false);
+ tRes.tested("getHasColumnHeaders()", !oObj.getHasColumnHeaders() );
+ } // getHasColumnHeaders()
+
+ /**
+ * Sets the property to <code>true</code> and then check it. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>. <p>
+ */
+ public void _setHasColumnHeaders() {
+ oObj.setHasColumnHeaders(true);
+ tRes.tested("setHasColumnHeaders()", oObj.getHasColumnHeaders() );
+ } // setHasColumnHeaders()
+
+ /**
+ * Sets the property to <code>false</code> and then check it. <p>
+ * Has <b> OK </b> status if the method returns <code>false</code>. <p>
+ */
+ public void _getHasRowHeaders() {
+ oObj.setHasRowHeaders(false);
+ tRes.tested("getHasRowHeaders()", !oObj.getHasRowHeaders() );
+ } // getHasRowHeaders()
+
+ /**
+ * Sets the property to <code>true</code> and then check it. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>. <p>
+ */
+ public void _setHasRowHeaders() {
+ oObj.setHasRowHeaders(true);
+ tRes.tested("setHasRowHeaders()", oObj.getHasRowHeaders() );
+ } // setHasRowHeaders()
+
+ CellRangeAddress[] the_Ranges = null;
+
+ /**
+ * Test calls the method and stores the range returned. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value. <p>
+ */
+ public void _getRanges() {
+ the_Ranges = oObj.getRanges();
+ tRes.tested("getRanges()", the_Ranges != null );
+ } // getRanges()
+
+ /**
+ * Changes the first range in range array obtained by
+ * <code>getRanges</code> method, then set changed array. <p>
+ * Has <b> OK </b> status if range array get is the same as was
+ * set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getRanges() </code> : to have initial ranges </li>
+ * </ul>
+ */
+ public void _setRanges() {
+ requiredMethod("getRanges()");
+ CellRangeAddress[] tmpRanges = oObj.getRanges();
+ tmpRanges[0].EndRow = 1;
+ oObj.setRanges(tmpRanges);
+ tRes.tested("setRanges()", ValueComparer.equalValue(
+ tmpRanges,oObj.getRanges()));
+ oObj.setRanges(the_Ranges);
+ } // getRanges()
+
+} // finish class _XTableChartsSupplier
+
+
+
diff --git a/qadevOOo/tests/java/ifc/table/_XTableColumns.java b/qadevOOo/tests/java/ifc/table/_XTableColumns.java
new file mode 100644
index 000000000..d0d1b03bf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/table/_XTableColumns.java
@@ -0,0 +1,391 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.table;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.table.XTableColumns;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.table.XTableColumns</code>
+* interface methods :
+* <ul>
+* <li><code> insertByIndex()</code></li>
+* <li><code> removeByIndex()</code></li>
+* </ul> <p>
+*
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XTableColumns.XCellRange'</code> : <code>
+* com.sun.star.table.XCellRange</code> the cell range of
+* columns.</li>
+* <ul> <p>
+*
+* Test is multithread compliant. <p>
+* @see com.sun.star.table.XTableColumns
+*/
+public class _XTableColumns extends MultiMethodTest {
+
+ public XTableColumns oObj = null;
+ private XCellRange xCellRange = null;
+ private int lastColumn = 0;
+
+ @Override
+ public void before() {
+ xCellRange = (XCellRange)
+ tEnv.getObjRelation("XTableColumns.XCellRange") ;
+
+ if (xCellRange == null) throw new
+ StatusException(Status.failed("Relation missing"));
+
+ lastColumn = oObj.getCount() - 1 ;
+ }
+
+ /**
+ * First a number of cells in cell range are filled with data.
+ *
+ * Then columns inserted to valid positions : 1 column at 1,
+ * 1 column at 0, 2 columns at 0. <p>
+ *
+ * Then columns inserted to invalid positions : position -1,
+ * the column after last, and 0 columns inserted. <p>
+ *
+ * Has <b> OK </b> status if for valid cases :
+ * <ul>
+ * <li> content of other cells are properly shifted </li>
+ * <li> inserted columns are empty </li>
+ * <li> number of columns increases (in case if it is not the whole
+ * spreadsheet) by proper number. </li>
+ * </ul>
+ * and for invalid cases exception is thrown.
+ */
+ public void _insertByIndex() {
+
+ boolean result = true;
+ int origCnt = oObj.getCount();
+
+ try {
+ log.println("Filling range ... ");
+ fillRange(xCellRange);
+
+ log.println("Inserting 1 column at position 1 ...");
+ oObj.insertByIndex(1,1);
+
+ result &= checkColumn(0, 0);
+ result &= checkColumnEmpty(1);
+ result &= checkColumn(2, 1);
+ result &= checkColumn(3, 2);
+ result &= checkColumnEmpty(4);
+
+ if (lastColumn < 200) {
+ result &= checkColumn(lastColumn + 1, lastColumn);
+ result &= oObj.getCount() == origCnt + 1;
+ } else {
+ result &= checkColumnEmpty(lastColumn);
+ }
+
+ log.println("Inserting 1 column at position 0 ...");
+ oObj.insertByIndex(0,1);
+
+ result &= checkColumnEmpty(0);
+ result &= checkColumn(1, 0);
+ result &= checkColumnEmpty(2);
+ result &= checkColumn(3, 1);
+ result &= checkColumn(4, 2);
+ result &= checkColumnEmpty(5);
+ if (lastColumn < 200) {
+ result &= checkColumn(lastColumn + 2, lastColumn);
+ result &= oObj.getCount() == origCnt + 2;
+ }
+
+ log.println("Inserting 2 columns at position 0 ...");
+ oObj.insertByIndex(0,2);
+
+ result &= checkColumnEmpty(0);
+ result &= checkColumnEmpty(1);
+ result &= checkColumnEmpty(2);
+ result &= checkColumn(3, 0);
+ result &= checkColumnEmpty(4);
+ result &= checkColumn(5, 1);
+ result &= checkColumn(6, 2);
+ result &= checkColumnEmpty(7);
+ if (lastColumn < 200) {
+ result &= checkColumn(lastColumn + 4, lastColumn);
+ }
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+
+
+ // spreadsheet supports 256 columns and after inserting
+ // or removing a column their number remains the same
+ if (origCnt < 200) {
+ log.println("Checking that number of column increased.");
+ result &= oObj.getCount() == origCnt + 4;
+ log.println("Before: " + origCnt + ", After: " + oObj.getCount());
+ } else {
+ log.println("Number of columns is " + origCnt + ",") ;
+ log.println("supposing that this is the whole spreadsheet and ");
+ log.println("number of columns should not change.");
+ }
+
+ try {
+ oObj.insertByIndex(-1,1);
+ log.println("No Exception occurred while inserting column at -1");
+ result &= false;
+ } catch (Exception e) {
+ log.println("Inserting column at Index -1 ... OK");
+ result &= true;
+ }
+
+ int cnt = oObj.getCount();
+ try {
+ oObj.insertByIndex(cnt, 1);
+ log.println("No Exception occurred while inserting column at "
+ + cnt);
+ result &= false;
+ } catch (Exception e) {
+ log.println("Inserting column at Index " + cnt + " ... OK");
+ result &= true;
+ }
+
+ if (tEnv.getTestCase().getObjectName().equals("ScTableColumnsObj")) {
+
+ try {
+ oObj.insertByIndex(0,0);
+ log.println("No Exception occurred while inserting 0 columns");
+ result &= false;
+ } catch (Exception e) {
+ log.println("Inserting 0 columns ... OK");
+ result &= true;
+ }
+
+ }
+
+ tRes.tested( "insertByIndex()", result );
+
+ } // end insertByIndex()
+
+ /**
+ * Columns removed from valid positions : 1 column at 1,
+ * 1 column at 0, 2 columns at 0. <p>
+ *
+ * Then columns removed from invalid positions : position -1,
+ * the column after last, and 0 columns removed. <p>
+ *
+ * Has <b> OK </b> status if for valid cases :
+ * <ul>
+ * <li> content of other cells are properly shifted </li>
+ * <li> columns which are shifted left are empty </li>
+ * <li> number of columns decreases (in case if it is not the whole
+ * spreadsheet) by proper number. </li>
+ * </ul>
+ * and for invalid cases exception is thrown.
+ */
+ public void _removeByIndex() {
+ executeMethod("insertByIndex()");
+
+ boolean result = true;
+ int origCnt = oObj.getCount();
+
+ try {
+ log.println("Filling range ... ");
+
+ log.println("Removing 2 columns at position 0 ...");
+ oObj.removeByIndex(0,2);
+
+ result &= checkColumnEmpty(0);
+ result &= checkColumn(1, 0);
+ result &= checkColumnEmpty(2);
+ result &= checkColumn(3, 1);
+ result &= checkColumn(4, 2);
+ result &= checkColumnEmpty(5);
+ if (lastColumn < 200) {
+ result &= checkColumn(lastColumn + 2, lastColumn);
+ result &= oObj.getCount() == origCnt - 2;
+ }
+
+ log.println("Removing 1 column at position 0 ...");
+ oObj.removeByIndex(0,1);
+
+ result &= checkColumn(0, 0);
+ result &= checkColumnEmpty(1);
+ result &= checkColumn(2, 1);
+ result &= checkColumn(3, 2);
+ result &= checkColumnEmpty(4);
+ if (lastColumn < 200) {
+ result &= checkColumn(lastColumn + 1, lastColumn);
+ result &= oObj.getCount() == origCnt - 3;
+ }
+
+ log.println("Removing 1 column at position 1 ...");
+ oObj.removeByIndex(1,1);
+
+ result &= checkColumn(0, 0);
+ result &= checkColumn(1, 1);
+ result &= checkColumn(2, 2);
+ result &= checkColumnEmpty(3);
+ if (lastColumn < 200) {
+ result &= checkColumn(lastColumn, lastColumn);
+ }
+
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+
+
+ // spreadsheet supports 256 columns and after inserting
+ // or removing a column their number remains the same
+ if (origCnt < 200) {
+ log.println("Checking that number of column increased.");
+ result &= oObj.getCount() == origCnt - 4;
+ log.println("Before: " + origCnt + ", After: " + oObj.getCount());
+ } else {
+ log.println("Number of columns is " + origCnt + ",") ;
+ log.println("supposing that this is the whole spreadsheet and ");
+ log.println("number of columns should not change.");
+ }
+
+ try {
+ oObj.removeByIndex(-1,1);
+ log.println("No Exception occurred while removing column at -1");
+ result &= false;
+ } catch (Exception e) {
+ log.println("removing column at Index -1 ... OK");
+ result &= true;
+ }
+
+ int cnt = oObj.getCount();
+ try {
+ oObj.removeByIndex(cnt, 1);
+ log.println("No Exception occurred while removing column at "
+ + cnt);
+ result &= false;
+ } catch (Exception e) {
+ log.println("Removing column at Index " + cnt + " ... OK");
+ result &= true;
+ }
+
+ if (tEnv.getTestCase().getObjectName().equals("ScTableColumnsObj")) {
+ try {
+ oObj.removeByIndex(0,0);
+ log.println("No Exception occurred while removing 0 columns");
+ result &= false;
+ } catch (Exception e) {
+ log.println("removing 0 columns ... OK");
+ result &= true;
+ }
+ }
+
+ tRes.tested( "removeByIndex()", result );
+ } // end removeByIndex()
+
+ private void setCellText(XCell cell, String text) {
+ XSimpleText xText = UnoRuntime.queryInterface
+ (XSimpleText.class, cell) ;
+ xText.setString(text);
+ }
+ private String getCellText(XCell cell) {
+ XSimpleText xText = UnoRuntime.queryInterface
+ (XSimpleText.class, cell) ;
+ return xText.getString();
+ }
+
+ /**
+ * Fills the range with some data : two rows and 3 columns, and
+ * some columns are cleared.
+ *
+ * @param xRange Range to fill
+ * @throws IndexOutOfBoundsException if any errors occur during filling.
+ */
+ private void fillRange(XCellRange xRange)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+
+ for (int i = 0; i <= lastColumn && i < 3; i++) {
+ setCellText(xRange.getCellByPosition(i, 0), i + "a");
+ setCellText(xRange.getCellByPosition(i, 1), i + "b");
+ }
+
+ for (int i = 3; i <= lastColumn && i < 10; i++) {
+ setCellText(xRange.getCellByPosition(i, 0), "");
+ setCellText(xRange.getCellByPosition(i, 1), "");
+ }
+ }
+
+ /**
+ * Check the column (first two rows) if it has values with
+ * index specified.
+ *
+ * @param col Column to check
+ * @param idx What indexes must be in cells
+ * @return <code>true</code> if expected indexes are found,
+ * <code>false</code> otherwise.
+ * @throws IndexOutOfBoundsException
+ */
+ private boolean checkColumn(int col, int idx)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+
+ if (col >= oObj.getCount()) return true;
+
+ String c1 = getCellText(xCellRange.getCellByPosition(col, 0));
+ String c2 = getCellText(xCellRange.getCellByPosition(col, 1));
+
+ if (!((idx + "a").equals(c1) && (idx + "b").equals(c2))) {
+
+ log.println("FAILED for column " + col + " and index " + idx + "("
+ + c1 + "," + c2 + ")");
+ return false ;
+ }
+ return true;
+ }
+
+ /**
+ * Checks if the column (first two rows) has no data in its cells.
+ *
+ * @param col Column to check
+ * @return <code>true</code> if the column is empty, <code>false</code>
+ * if first two cells contains some strings.
+ * @throws IndexOutOfBoundsException
+ */
+ private boolean checkColumnEmpty(int col)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+
+ if (col >= oObj.getCount()) return true;
+
+ String c1 = getCellText(xCellRange.getCellByPosition(col, 0));
+ String c2 = getCellText(xCellRange.getCellByPosition(col, 1));
+ if (!("".equals(c1) && "".equals(c2))) {
+ log.println("FAILED for column " + col + " is not empty ("
+ + c1 + "," + c2 + ")");
+ return false ;
+ }
+ return true;
+ }
+
+ } //finish class _XTableColumns
+
diff --git a/qadevOOo/tests/java/ifc/table/_XTableRows.java b/qadevOOo/tests/java/ifc/table/_XTableRows.java
new file mode 100644
index 000000000..2f997860c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/table/_XTableRows.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.table;
+
+import com.sun.star.table.XCellRange;
+import lib.MultiMethodTest;
+
+import com.sun.star.table.XTableRows;
+import lib.Status;
+import lib.StatusException;
+
+/**
+* Testing <code>com.sun.star.table.XTableRows</code>
+* interface methods :
+* <ul>
+* <li><code> insertByIndex()</code></li>
+* <li><code> removeByIndex()</code></li>
+* </ul>
+*/
+public class _XTableRows extends MultiMethodTest {
+
+ public XTableRows oObj = null;
+ public XCellRange range = null;
+
+ @Override
+ public void before() {
+ range = (XCellRange) tEnv.getObjRelation("XTableRows.XCellRange");
+ if (range==null) {
+ throw new StatusException(Status.failed("ObjectRelation missing"));
+ }
+ try {
+ range.getCellByPosition(0,0).setValue(17);
+ range.getCellByPosition(0,1).setValue(15);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't set value for Cell A1");
+ }
+ }
+
+ /**
+ * First a row inserted to valid position, then to invalid. <p>
+ * Has <b> OK </b> status if in the first case number of rows increases
+ * by 1, and in the second an exception is thrown. <p>
+ */
+ public void _insertByIndex() {
+
+ boolean result = true;
+
+ requiredMethod("removeByIndex()");
+
+ oObj.getCount();
+ log.println("Inserting row before first row");
+ oObj.insertByIndex(0,1);
+ result &= checkCell(1,15);
+ if (checkCell(1,15)) log.println("... successful");
+
+ try {
+ oObj.insertByIndex(-1,1);
+ log.println("No Exception occurred while inserting row at -1");
+ result &= false;
+ } catch (Exception e) {
+ log.println("Inserting row at Index -1 ... OK");
+ result &= true;
+ }
+
+ tRes.tested( "insertByIndex()", result );
+
+ } // end insertByIndex()
+
+ /**
+ * First a row removed from valid position, then from invalid. <p>
+ *
+ * Has <b> OK </b> status if in the first case number of columns decreases
+ * by 1, and in the second an exception is thrown. <p>
+ */
+ public void _removeByIndex() {
+
+ boolean result = true;
+
+ oObj.removeByIndex(0,1);
+ log.println("Removing first row");
+ result &= checkCell(0,15);
+ if (checkCell(0,15)) log.println("... successful");
+
+ try {
+ oObj.removeByIndex(-1,1);
+ log.println("No Exception occurred while Removing row at -1");
+ result &= false;
+ } catch (Exception e) {
+ log.println("Removing row at Index -1 ... OK");
+ result &= true;
+ }
+
+ tRes.tested( "removeByIndex()", result );
+ } // end removeByIndex()
+
+ public boolean checkCell(int row,double expected) {
+ double getting=0;
+ try {
+ getting = range.getCellByPosition(0,row).getValue();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't set value for Cell A1");
+ }
+
+ boolean res = (getting==expected);
+ if (!res) {
+ log.println("Expected for row "+row+" was "+expected);
+ log.println("Getting for row "+row+" - "+getting);
+ log.println("=> FAILED");
+ }
+ return res;
+ }
+
+} //finish class _XTableRows
+
diff --git a/qadevOOo/tests/java/ifc/task/_XInteractionHandler.java b/qadevOOo/tests/java/ifc/task/_XInteractionHandler.java
new file mode 100644
index 000000000..d36cc585b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/task/_XInteractionHandler.java
@@ -0,0 +1,74 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.task;
+
+
+
+/**
+* <code>com.sun.star.task.XInteractionHandler</code> interface testing.
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XInteractionHandler.Request'</code>
+* (of type <code>com.sun.star.task.XInteractionRequest</code>):
+* this interface implementation is handler specific and is
+* passed as argument to method <code>handle</code>. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.task.XInteractionHandler
+*/
+import lib.MultiMethodTest;
+import lib.Status;
+
+import com.sun.star.task.XInteractionHandler;
+
+/**
+* <code>com.sun.star.task.XInteractionHandler</code> interface testing.
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XInteractionHandler.Request'</code>
+* (of type <code>com.sun.star.task.XInteractionRequest</code>):
+* this interface implementation is handler specific and is
+* passed as argument to method <code>handle</code>. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.task.XInteractionHandler
+*/
+public class _XInteractionHandler extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XInteractionHandler oObj = null ;
+
+ /**
+ * Retrieves an object relation. <p>
+ */
+ @Override
+ public void before() {
+ }
+
+ /**
+ * Since this test is interactive (dialog window can't be
+ * disposed using API) it is skipped. <p>
+ * Always has <b>SKIPPED.OK</b> status .
+ */
+ public void _handle() {
+ tRes.tested("handle()", Status.skipped(true)) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/task/_XJob.java b/qadevOOo/tests/java/ifc/task/_XJob.java
new file mode 100644
index 000000000..58800f37e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/task/_XJob.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.task;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.task.XJob;
+
+/**
+ * Testing <code>com.sun.star.frame._XJobExecutor</code>
+ * interface methods:
+ * <ul>
+ * <li><code> trigger() </code></li>
+ * </ul><p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'CallCounter'</code>
+ * (of type <code>com.sun.star.container.XNamed</code>):
+ * the <code>getName()</code> method of which must
+ * return number of calls to <code>XJob.execute</code>
+ * method which is registered for event 'TestEvent'
+ * </li>
+ * <ul> <p>
+ * @see com.sun.star.frame.XJobExecutor
+ */
+public class _XJob extends MultiMethodTest {
+ public static XJob oObj = null;
+
+ /**
+ * Tries to query the tested component for object relation
+ * <code>XJobArgs</code> [<code>Object[]</code>] which contains
+ * <code>executeArgs</code> [<code>NamedValue[]</code>]
+ * @throw StatusException If relations are not found
+ */
+ @Override
+ public void before() {
+ Object[] XJobArgs = (Object[]) tEnv.getObjRelation("XJobArgs") ;
+ if (XJobArgs == null)
+ throw new StatusException(Status.failed
+ ("'XJobArgs' relation not found ")) ;
+ }
+
+
+
+ /**
+ * Gets the number of Job calls before and after triggering event.
+ *
+ * Has <b>OK</b> status if the Job was called on triggering
+ * event.
+ */
+ public void _execute() {
+ Object[] XJobArgs = (Object[]) tEnv.getObjRelation("XJobArgs");
+
+ boolean bOK = true;
+
+ for (int n = 0; n<XJobArgs.length; n++) {
+ log.println("running XJobArgs[" + n + "]");
+ try {
+ oObj.execute((NamedValue[])XJobArgs[n]);
+ } catch ( com.sun.star.lang.IllegalArgumentException e) {
+ bOK = false;
+ log.println("Could not success XJobArgs[" + n + "]: " + e);
+ } catch ( com.sun.star.uno.Exception e) {
+ bOK = false;
+ log.println("Could not success XJobArgs[" + n + "]: " + e);
+ }
+ }
+ tRes.tested("execute()", bOK);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/task/_XJobExecutor.java b/qadevOOo/tests/java/ifc/task/_XJobExecutor.java
new file mode 100644
index 000000000..d3910f287
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/task/_XJobExecutor.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.task;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.task.XJobExecutor;
+
+/**
+ * Testing <code>com.sun.star.frame._XJobExecutor</code>
+ * interface methods:
+ * <ul>
+ * <li><code> trigger() </code></li>
+ * </ul><p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'CallCounter'</code>
+ * (of type <code>com.sun.star.container.XNamed</code>):
+ * the <code>getName()</code> method of which must
+ * return number of calls to <code>XJob.execute</code>
+ * method which is registered for event 'TestEvent'
+ * </li>
+ * <ul> <p>
+ * @see com.sun.star.frame.XJobExecutor
+ */
+public class _XJobExecutor extends MultiMethodTest {
+ public static XJobExecutor oObj = null;
+
+ /**
+ * Gets the number of Job calls before and after triggering event.
+ *
+ * Has <b>OK</b> status if the Job was called on triggering
+ * event.
+ */
+ public void _trigger() {
+ XNamed counter = (XNamed) tEnv.getObjRelation("CallCounter");
+
+ int before = Integer.parseInt(counter.getName());
+
+ oObj.trigger("TestEvent");
+
+ waitForEventIdle();
+
+ int after = Integer.parseInt(counter.getName());
+
+ log.println("Calls before: " + before + ", after: " + after);
+
+ tRes.tested("trigger()", after == before + 1);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/task/_XStatusIndicatorFactory.java b/qadevOOo/tests/java/ifc/task/_XStatusIndicatorFactory.java
new file mode 100644
index 000000000..0ec515d1b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/task/_XStatusIndicatorFactory.java
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.task;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.task.XStatusIndicator;
+import com.sun.star.task.XStatusIndicatorFactory;
+
+/**
+* Testing <code>com.sun.star.task.XStatusIndicatorFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createStatusIndicator()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.task.XStatusIndicatorFactory
+*/
+public class _XStatusIndicatorFactory extends MultiMethodTest {
+
+ public XStatusIndicatorFactory oObj = null;
+
+ /**
+ * A status indicator created. Also some actions performed
+ * with it, which are not related to test flow. <p>
+ * Has <b> OK </b> status if the method returns not null
+ * value. <p>
+ */
+ public void _createStatusIndicator() {
+ boolean bResult = true;
+
+ XStatusIndicator SI1 = oObj.createStatusIndicator();
+ XStatusIndicator SI2 = oObj.createStatusIndicator();
+ //Start all Indicators
+ SI1.start("Status1",100);
+ SI2.start("Status2",100);
+
+ //change SI2
+ SI2.setText("A new name for the status");
+ SI2.setValue(45);
+ SI2.reset();
+ SI2.end();
+
+ //Now SI1 is active
+ SI1.end();
+
+ tRes.tested("createStatusIndicator()", bResult);
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_BaseFrame.java b/qadevOOo/tests/java/ifc/text/_BaseFrame.java
new file mode 100644
index 000000000..8bfd80dc5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_BaseFrame.java
@@ -0,0 +1,116 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.BaseFrame</code>
+* service properties :
+* <ul>
+* <li><code> AnchorPageNo</code></li>
+* <li><code> AnchorFrame</code></li>
+* <li><code> BackColor</code></li>
+* <li><code> BackGraphicURL</code></li>
+* <li><code> BackGraphicFilter</code></li>
+* <li><code> BackGraphicLocation</code></li>
+* <li><code> LeftBorder</code></li>
+* <li><code> RightBorder</code></li>
+* <li><code> TopBorder</code></li>
+* <li><code> BottomBorder</code></li>
+* <li><code> BorderDistance</code></li>
+* <li><code> LeftBorderDistance</code></li>
+* <li><code> RightBorderDistance</code></li>
+* <li><code> TopBorderDistance</code></li>
+* <li><code> BottomBorderDistance</code></li>
+* <li><code> BackTransparent</code></li>
+* <li><code> ContentProtected</code></li>
+* <li><code> FrameStyleName</code></li>
+* <li><code> LeftMargin</code></li>
+* <li><code> RightMargin</code></li>
+* <li><code> TopMargin</code></li>
+* <li><code> BottomMargin</code></li>
+* <li><code> Height</code></li>
+* <li><code> Width</code></li>
+* <li><code> RelativeHeight</code></li>
+* <li><code> RelativeWidth</code></li>
+* <li><code> IsSyncWidthToHeight</code></li>
+* <li><code> IsSyncHeightToWidth</code></li>
+* <li><code> HoriOrient</code></li>
+* <li><code> HoriOrientPosition</code></li>
+* <li><code> HoriOrientRelation</code></li>
+* <li><code> VertOrient</code></li>
+* <li><code> VertOrientPosition</code></li>
+* <li><code> VertOrientRelation</code></li>
+* <li><code> HyperLinkURL</code></li>
+* <li><code> HyperLinkTarget</code></li>
+* <li><code> HyperLinkName</code></li>
+* <li><code> Opaque</code></li>
+* <li><code> PageToggle</code></li>
+* <li><code> PositionProtected</code></li>
+* <li><code> Print</code></li>
+* <li><code> ShadowFormat</code></li>
+* <li><code> ServerMap</code></li>
+* <li><code> Size</code></li>
+* <li><code> SizeProtected</code></li>
+* <li><code> Surround</code></li>
+* <li><code> SurroundAnchorOnly</code></li>
+* <li><code> BackColorTransparency</code></li>
+* <li><code> BackColorRGB</code></li>
+* <li><code> BackGraphicTransparency</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.BaseFrame
+*/
+public class _BaseFrame extends MultiPropertyTest {
+ public String str1 = "Graphics";
+ public String str2 = "Watermark";
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ protected PropertyTester StringTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (str1.equals(oldValue))
+ return str2;
+ else
+ return str1;
+ }
+ };
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _FrameStyleName() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("FrameStyleName", StringTester) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _BackColorTransparency() {
+ testProperty("BackColorTransparency", Integer.valueOf(10), Integer.valueOf(50)) ;
+ }
+
+} //finish class _BaseFrame
+
diff --git a/qadevOOo/tests/java/ifc/text/_BaseFrameProperties.java b/qadevOOo/tests/java/ifc/text/_BaseFrameProperties.java
new file mode 100644
index 000000000..9b0cf03c8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_BaseFrameProperties.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+
+public class _BaseFrameProperties extends MultiPropertyTest {
+ protected PropertyTester FrameTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ Object frame = tEnv.getObjRelation("TextFrame");
+
+ return frame;
+ }
+ };
+
+ public void _AnchorFrame() {
+ log.println("Testing with custom Property tester");
+ testProperty("AnchorFrame", FrameTester);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/text/_BaseIndex.java b/qadevOOo/tests/java/ifc/text/_BaseIndex.java
new file mode 100644
index 000000000..006796724
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_BaseIndex.java
@@ -0,0 +1,201 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.text;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexReplace;
+import com.sun.star.text.XTextColumns;
+import com.sun.star.uno.UnoRuntime;
+
+import lib.MultiPropertyTest;
+
+
+/**
+* Testing <code>com.sun.star.text.BaseIndex</code>
+* service properties :
+* <ul>
+* <li><code> Title</code></li>
+* <li><code> IsProtected</code></li>
+* <li><code> ParaStyleHeading</code></li>
+* <li><code> ParaStyleLevel1</code></li>
+* <li><code> ParaStyleLevel2</code></li>
+* <li><code> ParaStyleLevel3</code></li>
+* <li><code> ParaStyleLevel4</code></li>
+* <li><code> ParaStyleLevel5</code></li>
+* <li><code> ParaStyleLevel6</code></li>
+* <li><code> ParaStyleLevel7</code></li>
+* <li><code> ParaStyleLevel8</code></li>
+* <li><code> ParaStyleLevel9</code></li>
+* <li><code> ParaStyleLevel10</code></li>
+* <li><code> ParaStyleSeparator</code></li>
+* <li><code> TextColumns</code></li>
+* <li><code> BackGraphicURL</code></li>
+* <li><code> BackGraphicFilter</code></li>
+* <li><code> BackGraphicLocation</code></li>
+* <li><code> BackTransparent</code></li>
+* <li><code> LevelFormat</code></li>
+* <li><code> CreateFromChapter</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.BaseIndex
+*/
+public class _BaseIndex extends MultiPropertyTest {
+ /**
+ * Redefined method returns object, that contains changed property value.
+ */
+ protected PropertyTester CustomTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ XTextColumns TC = UnoRuntime.queryInterface(
+ XTextColumns.class, oldValue);
+ TC.setColumnCount((short) (TC.getColumnCount() + (short) 1));
+
+ return TC;
+ }
+ };
+
+ /**
+ * New value must be defined for this property.
+ */
+ public void _TextColumns() {
+ log.println(
+ "Testing property 'TextColumns' with custom property tester");
+ testProperty("TextColumns", CustomTester);
+ }
+
+ /**
+ * The value of this property is a collection of document index
+ * level formats. This property is tested in the following manner :
+ * the property value (a collection) is obtained, the first element
+ * of this collection is replaced with new non-empty array
+ * (<code>PropertyValue[][]</code>) with some properties set.
+ * After that the collection is set back as property value. <p>
+ *
+ * Comparing of set and got <code>PropertyValue</code> arrays
+ * is difficult because values can be changed after setting
+ * by service implementation. <p>
+ *
+ * Has <b>OK</b> status if the collection again gotten, has a
+ * new first element (i.e. lengths of the old array and the array
+ * get are different or their contents differ).
+ */
+ public void _LevelFormat() {
+ log.println(
+ "Testing property 'LevelFormat' with custom property tester");
+ testProperty("LevelFormat",
+ new PropertyTester() {
+ PropertyValue[][] newVal = null;
+ PropertyValue[][] oldVal = null;
+
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ XIndexReplace indProp = UnoRuntime.queryInterface(
+ XIndexReplace.class, oldValue);
+
+ try {
+ oldVal = (PropertyValue[][]) indProp.getByIndex(0);
+
+ log.println("Get:");
+ printLevelFormatProperty(oldValue);
+
+ newVal = new PropertyValue[1][2];
+
+ for (int i = 0; i < newVal[0].length; i++) {
+ newVal[0][i] = new PropertyValue();
+ }
+
+ newVal[0][1].Name = "TokenType";
+ newVal[0][1].Value = "TokenEntryText";
+ newVal[0][0].Name = "Text";
+ newVal[0][0].Value = "BaseIndex";
+
+ indProp.replaceByIndex(0, newVal);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while testing LevelFormat");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while testing LevelFormat");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while testing LevelFormat");
+ e.printStackTrace(log);
+ }
+
+ return indProp;
+ }
+
+ @Override
+ protected void checkResult(String propName, Object oldValue,
+ Object newValue, Object resValue,
+ Exception exception)
+ throws Exception {
+
+ super.checkResult(propName, oldValue, newValue, resValue, exception);
+
+ PropertyValue[][] res = (PropertyValue[][]) UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ resValue).getByIndex(0);
+
+ log.println("Result:");
+ printLevelFormatProperty(resValue);
+
+ boolean result = (res.length != oldVal.length) ||
+ !util.ValueComparer.equalValue(res, oldVal);
+
+ tRes.tested(propName, result);
+ }
+ });
+ }
+
+ /**
+ * Outputs full description of 'LevelFormat' property
+ * value into <code>log</code>.
+ */
+ private void printLevelFormatProperty(Object value) {
+ XIndexReplace indProp = UnoRuntime.queryInterface(
+ XIndexReplace.class, value);
+ PropertyValue[][] val = null;
+
+ try {
+ log.println(" \u0421ollection has " + indProp.getCount() +
+ " elements : ");
+
+ for (int i = 0; i < indProp.getCount(); i++) {
+ val = (PropertyValue[][]) indProp.getByIndex(i);
+
+ log.println(" " + i + ": has " + val.length + " levels :");
+
+ for (int j = 0; j < val.length; j++) {
+ log.println(" " + j + " level :");
+
+ for (int k = 0; k < val[j].length; k++) {
+ log.println(" " + val[j][k].Name + "=" +
+ val[j][k].Value);
+ }
+ }
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while printing LevelFormat");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while printing LevelFormat");
+ e.printStackTrace(log);
+ }
+ }
+} // finish class _NumberingRules
diff --git a/qadevOOo/tests/java/ifc/text/_BaseIndexMark.java b/qadevOOo/tests/java/ifc/text/_BaseIndexMark.java
new file mode 100644
index 000000000..a80d7488a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_BaseIndexMark.java
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.BaseIndexMark</code>
+* service properties :
+* <ul>
+* <li><code> AlternativeText</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.BaseIndexMark
+*/
+public class _BaseIndexMark extends MultiPropertyTest {
+
+} // finish class _BaseIndexMark
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_CellProperties.java b/qadevOOo/tests/java/ifc/text/_CellProperties.java
new file mode 100644
index 000000000..25b739cc7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_CellProperties.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.xml.AttributeData;
+
+/**
+* Testing <code>com.sun.star.text.CellProperties</code>
+* service properties :
+* <ul>
+* <li><code> BackColor</code></li>
+* <li><code> BackGraphicURL</code></li>
+* <li><code> BackGraphicFilter</code></li>
+* <li><code> BackGraphicLocation</code></li>
+* <li><code> NumberFormat</code></li>
+* <li><code> BackTransparent</code></li>
+* <li><code> LeftBorder</code></li>
+* <li><code> RightBorder</code></li>
+* <li><code> TopBorder</code></li>
+* <li><code> BottomBorder</code></li>
+* <li><code> LeftBorderDistance</code></li>
+* <li><code> RightBorderDistance</code></li>
+* <li><code> TopBorderDistance</code></li>
+* <li><code> BottomBorderDistance</code></li>
+* <li><code> UserDefinedAttributes</code></li>
+* <li><code> TextSection</code></li>
+* <li><code> IsProtected</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CellProperties.TextSection'</code> (of type
+* <code>XInterface</code>):
+* instance of <code>com.sun.star.text.TextSection</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code> crazy-blue.jpg </code> : jpeg image used to test
+* BackGraphicURL()</li>
+* <li> <code> space-metal.jpg </code> : jpeg image used to test
+* BackGraphicURL()</li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.CellProperties
+*/
+public class _CellProperties extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so new value must be specified from
+ * corresponding object relation.
+ */
+ public void _TextSection() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("TextSection", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ return tEnv.getObjRelation("CellProperties.TextSection");
+ }
+ });
+ }
+
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ public void _BackColor() {
+ final Short val1 = Short.valueOf( (short) 4 );
+ final Short val2 = Short.valueOf( (short) 6 );
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if ( oldValue.equals(val1) )
+ return val2;
+ else
+ return val1;
+ }
+ });
+ }
+
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ public void _BackGraphicURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackGraphicURL", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals(util.utils.getFullTestURL
+ ("space-metal.jpg")))
+ return util.utils.getFullTestURL("crazy-blue.jpg");
+ else
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ });
+ }
+
+
+ /**
+ * Redefined method returns object, that contains changed property value.
+ */
+ public void _UserDefinedAttributes() {
+ log.println("Testing with custom property tester");
+ testProperty("UserDefinedAttributes", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ XNameContainer NC = null;
+ try {
+ NC = (XNameContainer)
+ AnyConverter.toObject(new Type(XNameContainer.class),oldValue);
+ NC.insertByName("MyAttribute",
+ new AttributeData("","CDATA","Value"));
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Failed to check 'UserDefinedAttributes'");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Failed to check 'UserDefinedAttributes'");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.container.ElementExistException e ) {
+ log.println("Failed to check 'UserDefinedAttributes'");
+ e.printStackTrace(log);
+ }
+ return NC;
+ }
+ });
+ }
+
+} //finish class _CellProperties
+
diff --git a/qadevOOo/tests/java/ifc/text/_CellRange.java b/qadevOOo/tests/java/ifc/text/_CellRange.java
new file mode 100644
index 000000000..c2942a1c5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_CellRange.java
@@ -0,0 +1,94 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.CellRange</code>
+* service properties :
+* <ul>
+* <li><code> BackColor</code></li>
+* <li><code> BackGraphicURL</code></li>
+* <li><code> BackGraphicFilter</code></li>
+* <li><code> BackGraphicLocation</code></li>
+* <li><code> BackTransparent</code></li>
+* <li><code> ChartColumnAsLabel</code></li>
+* <li><code> ChartRowAsLabel</code></li>
+* <li><code> NumberFormat</code></li>
+* <li><code> TopMargin</code></li>
+* <li><code> BottomMargin</code></li>
+*
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code> crazy-blue.jpg </code> : jpeg image used to test
+* BackGraphicURL()</li>
+* <li> <code> space-metal.jpg </code> : jpeg image used to test
+* BackGraphicURL()</li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.CellProperties
+*/
+public class _CellRange extends MultiPropertyTest {
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ public void _BackColor() {
+ final Short val1 = Short.valueOf( (short) 4 );
+ final Short val2 = Short.valueOf( (short) 6 );
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackColor", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if ( oldValue.equals(val1) )
+ return val2;
+ else
+ return val1;
+ }
+ });
+ }
+
+ /**
+ * This property could be changed only when graphic
+ * URL is set.
+ */
+ public void _BackGraphicFilter() {
+ executeMethod("BackGraphicURL");
+ testProperty("BackGraphicFilter");
+ }
+
+ /**
+ * Redefined method returns value, that differs from property value.
+ */
+ public void _BackGraphicURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackGraphicURL", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals(util.utils.getFullTestURL
+ ("space-metal.jpg")))
+ return util.utils.getFullTestURL("crazy-blue.jpg");
+ else
+ return util.utils.getFullTestURL("space-metal.jpg");
+ }
+ });
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_Defaults.java b/qadevOOo/tests/java/ifc/text/_Defaults.java
new file mode 100644
index 000000000..22ccb8872
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_Defaults.java
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.Defaults</code>
+*
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.Defaults
+*/
+public class _Defaults extends MultiPropertyTest {
+
+} //finish class _Defaults
+
diff --git a/qadevOOo/tests/java/ifc/text/_DocumentIndex.java b/qadevOOo/tests/java/ifc/text/_DocumentIndex.java
new file mode 100644
index 000000000..5ee228341
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_DocumentIndex.java
@@ -0,0 +1,45 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.DocumentIndex</code>
+* service properties :
+* <ul>
+* <li><code> UseAlphabeticalSeparators</code></li>
+* <li><code> UseKeyAsEntry</code></li>
+* <li><code> UseCombinedEntries</code></li>
+* <li><code> IsCaseSensitive</code></li>
+* <li><code> UsePP</code></li>
+* <li><code> UseDash</code></li>
+* <li><code> UseUpperCase</code></li>
+* <li><code> MainEntryCharacterStyleName</code></li>
+* <li><code> DocumentIndexMarks</code></li>
+* <li><code> Locale</code></li>
+* <li><code> SortAlgorithm</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.DocumentIndex
+*/
+public class _DocumentIndex extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_DocumentIndexMark.java b/qadevOOo/tests/java/ifc/text/_DocumentIndexMark.java
new file mode 100644
index 000000000..d78730727
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_DocumentIndexMark.java
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.DocumentIndexMark</code>
+* service properties :
+* <ul>
+* <li><code> PrimaryKey</code></li>
+* <li><code> SecondaryKey</code></li>
+* <li><code> IsMainEntry</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.DocumentIndexMark
+*/
+public class _DocumentIndexMark extends MultiPropertyTest {
+
+} // finish class _DocumentIndexMark
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_DocumentSettings.java b/qadevOOo/tests/java/ifc/text/_DocumentSettings.java
new file mode 100644
index 000000000..0110aee3d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_DocumentSettings.java
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+public class _DocumentSettings extends MultiPropertyTest
+{
+
+}
diff --git a/qadevOOo/tests/java/ifc/text/_Footnote.java b/qadevOOo/tests/java/ifc/text/_Footnote.java
new file mode 100644
index 000000000..4af172564
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_Footnote.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.Footnote</code>
+* service properties :
+* <ul>
+* <li><code> ReferenceId</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.Footnote
+*/
+public class _Footnote extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _ReferenceId() {
+ final Short val1 = Short.valueOf( (short) 1);
+ final Short val2 = Short.valueOf( (short) 2);
+
+ log.println("Testing with custom Property tester");
+ testProperty("ReferenceId", val1, val2);
+ }
+
+} //finish class _Footnote
+
diff --git a/qadevOOo/tests/java/ifc/text/_FootnoteSettings.java b/qadevOOo/tests/java/ifc/text/_FootnoteSettings.java
new file mode 100644
index 000000000..77cc50d87
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_FootnoteSettings.java
@@ -0,0 +1,95 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.FootnoteSettings</code>
+* service properties :
+* <ul>
+* <li><code> CharStyleName</code></li>
+* <li><code> NumberingType</code></li>
+* <li><code> PageStyleName</code></li>
+* <li><code> ParaStyleName</code></li>
+* <li><code> Prefix</code></li>
+* <li><code> StartAt</code></li>
+* <li><code> Suffix</code></li>
+* <li><code> BeginNotice</code></li>
+* <li><code> EndNotice</code></li>
+* <li><code> FootnoteCounting</code></li>
+* <li><code> PositionEndOfDoc</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.FootnoteSettings
+*/
+public class _FootnoteSettings extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _CharStyleName() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("CharStyleName", "Endnote Symbol", "Endnote anchor") ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _PageStyleName() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("PageStyleName", "Standard", "Endnote") ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _ParaStyleName() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("ParaStyleName", "Standard", "Endnote") ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _NumberingType() {
+ Short val1 = Short.valueOf(com.sun.star.text.FootnoteNumbering.PER_DOCUMENT);
+ Short val2 = Short.valueOf(com.sun.star.text.FootnoteNumbering.PER_PAGE);
+ log.println("Testing with custom Property tester") ;
+ testProperty("NumberingType", val1, val2) ;
+ }
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _FootnoteCounting() {
+ Short val1 = Short.valueOf( (short) 1 );
+ Short val2 = Short.valueOf( (short) 2 );
+ log.println("Testing with custom Property tester") ;
+ testProperty("FootnoteCounting", val1, val2) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_GenericTextDocument.java b/qadevOOo/tests/java/ifc/text/_GenericTextDocument.java
new file mode 100644
index 000000000..237d281ec
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_GenericTextDocument.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.TextDocument</code>
+* service properties :
+* <ul>
+* <li><code> CharLocale</code></li>
+* <li><code> CharacterCount</code></li>
+* <li><code> ParagraphCount</code></li>
+* <li><code> WordCount</code></li>
+* <li><code> WordSeparator</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.TextDocument
+*/
+public class _GenericTextDocument extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_LineNumberingProperties.java b/qadevOOo/tests/java/ifc/text/_LineNumberingProperties.java
new file mode 100644
index 000000000..b85880dcc
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_LineNumberingProperties.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.LineNumberingProperties</code>
+* service properties :
+* <ul>
+* <li><code> IsOn</code></li>
+* <li><code> CharStyleName</code></li>
+* <li><code> CountEmptyLines</code></li>
+* <li><code> CountLinesInFrames</code></li>
+* <li><code> Distance</code></li>
+* <li><code> Interval</code></li>
+* <li><code> SeparatorText</code></li>
+* <li><code> SeparatorInterval</code></li>
+* <li><code> NumberPosition</code></li>
+* <li><code> NumberingType</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.LineNumberingProperties
+*/
+public class _LineNumberingProperties extends MultiPropertyTest {
+
+ /**
+ * This property can be VOID, and in case if it is so new
+ * value must be defined.
+ */
+ public void _CharStyleName() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("CharStyleName", "Endnote Symbol", "Endnote anchor") ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_MailMerge.java b/qadevOOo/tests/java/ifc/text/_MailMerge.java
new file mode 100644
index 000000000..b3c0e1fe4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_MailMerge.java
@@ -0,0 +1,167 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.uno.UnoRuntime;
+
+public class _MailMerge extends MultiPropertyTest {
+
+ /**
+ * Custom tester for properties which contains URLs.
+ * Switches between two valid folders
+ */
+ protected PropertyTester URLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals(util.utils.getOfficeTemp(tParam.getMSF())))
+ return util.utils.getFullTestURL(""); else
+ return util.utils.getOfficeTemp(tParam.getMSF());
+ }
+ } ;
+
+ /**
+ * Custom tester for properties which contains document URLs.
+ * Switches between two document URLs.
+ */
+ protected PropertyTester DocumentURLTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ if (oldValue.equals(util.utils.getFullTestURL("MailMerge.sxw")))
+ return util.utils.getFullTestURL("sForm.sxw"); else
+ return util.utils.getFullTestURL("MailMerge.sxw");
+ }
+ } ;
+ /**
+ * Tested with custom property tester.
+ */
+ public void _ResultSet() {
+ String propName = "ResultSet";
+ try{
+
+ log.println("try to get value from property...");
+ UnoRuntime.queryInterface(XResultSet.class,oObj.getPropertyValue(propName));
+
+ log.println("try to get value from object relation...");
+ XResultSet newValue = UnoRuntime.queryInterface(XResultSet.class,tEnv.getObjRelation("MailMerge.XResultSet"));
+
+ log.println("set property to a new value...");
+ oObj.setPropertyValue(propName, newValue);
+
+ log.println("get the new value...");
+ XResultSet getValue = UnoRuntime.queryInterface(XResultSet.class,oObj.getPropertyValue(propName));
+
+ tRes.tested(propName, this.compare(newValue, getValue));
+ } catch (com.sun.star.beans.PropertyVetoException e){
+ log.println("could not set property '"+ propName +"' to a new value!");
+ tRes.tested(propName, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("could not set property '"+ propName +"' to a new value!");
+ tRes.tested(propName, false);
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ if (this.isOptional(propName)){
+ // skipping optional property test
+ log.println("Property '" + propName
+ + "' is optional and not supported");
+ tRes.tested(propName,true);
+
+ } else {
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+
+ public void _ActiveConnection() {
+ String propName = "ActiveConnection";
+ try{
+
+ log.println("try to get value from property...");
+ UnoRuntime.queryInterface(XConnection.class,oObj.getPropertyValue(propName));
+
+ log.println("try to get value from object relation...");
+ XConnection newValue = UnoRuntime.queryInterface(XConnection.class,tEnv.getObjRelation("MailMerge.XConnection"));
+
+ log.println("set property to a new value...");
+ oObj.setPropertyValue(propName, newValue);
+
+ log.println("get the new value...");
+ XConnection getValue = UnoRuntime.queryInterface(XConnection.class,oObj.getPropertyValue(propName));
+
+ tRes.tested(propName, this.compare(newValue, getValue));
+ } catch (com.sun.star.beans.PropertyVetoException e){
+ log.println("could not set property '"+ propName +"' to a new value! " + e.toString());
+ tRes.tested(propName, false);
+ } catch (com.sun.star.lang.IllegalArgumentException e){
+ log.println("could not set property '"+ propName +"' to a new value! " + e.toString());
+ tRes.tested(propName, false);
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ if (this.isOptional(propName)){
+ // skipping optional property test
+ log.println("Property '" + propName
+ + "' is optional and not supported");
+ tRes.tested(propName,true);
+
+ } else {
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e){
+ log.println("could not get property '"+ propName +"' from XPropertySet!");
+ tRes.tested(propName, false);
+ }
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _DocumentURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("DocumentURL", DocumentURLTester) ;
+ }
+
+ /**
+ * Tested with custom property tester.
+ */
+ public void _OutputURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("OutputURL", URLTester) ;
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+
+} //finish class _MailMerge
+
diff --git a/qadevOOo/tests/java/ifc/text/_NumberingLevel.java b/qadevOOo/tests/java/ifc/text/_NumberingLevel.java
new file mode 100644
index 000000000..e3eace420
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_NumberingLevel.java
@@ -0,0 +1,163 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import lib.StatusException;
+import lib.TestParameters;
+import share.LogWriter;
+
+import com.sun.star.beans.PropertyValue;
+
+
+/**
+* Testing <code>com.sun.star.text.NumberingLevel</code><p>
+* This service is currently known as property value of
+* com.sun.star.text.ParagraphProperties.NumberingRules
+* This test checks only for completeness of implemented properties.
+* service properties :
+* <ul>
+* <li><code> Adjust</code></li>
+* <li><code> ParentNumbering</code></li>
+* <li><code> Prefix</code></li>
+* <li><code> Suffix</code></li>
+* <li><code> CharStyleName</code></li>
+* <li><code> BulletId</code></li>
+* <li><code> BulletChar</code></li>
+* <li><code> BulletFontName</code></li>
+* <li><code> BulletFont</code></li>
+* <li><code> GraphicURL</code></li>
+* <li><code> GraphicBitmap</code></li>
+* <li><code> GraphicSize</code></li>
+* <li><code> VertOrient</code></li>
+* <li><code> StartWith</code></li>
+* <li><code> LeftMargin</code></li>
+* <li><code> SymbolTextDistance</code></li>
+* <li><code> FirstLineOffset</code></li>
+* <li><code> NumberingType</code></li>
+* <li><code> HeadingStyleName</code></li>
+* <li><code> BulletColor</code></li>
+* <li><code> BulletRelSize</code></li>
+* </ul> <p>
+*
+* @see com.sun.star.text.NumberingLevel
+* @see com.sun.star.test.ParagraphProperties
+* @see ifc.style._ParagraphProperties
+*/
+public class _NumberingLevel {
+
+ private HashMap<String, Boolean> NumberingLevel = new HashMap<String,Boolean>();
+ private PropertyValue[] PropertyArray = null;
+ private LogWriter log = null;
+
+
+ /**
+ * returns an instance of _NumberingLevel
+ * @param log the log writer
+ * @param tParam the test parameters
+ * @param propertyValues a PropertyValue[] which should contain all properties of com.sun.star.text.NumberingLevel
+ */
+ public _NumberingLevel(LogWriter log, TestParameters tParam, PropertyValue[] propertyValues){
+
+ this.PropertyArray = propertyValues;
+
+ this.log = log;
+
+ //key = PropertyName, value = Ooptional
+ NumberingLevel.put("Adjust", Boolean.FALSE);
+ NumberingLevel.put("ParentNumbering", Boolean.TRUE);
+ NumberingLevel.put("Prefix", Boolean.FALSE);
+ NumberingLevel.put("Suffix", Boolean.FALSE);
+ NumberingLevel.put("CharStyleName", Boolean.TRUE);
+ NumberingLevel.put("BulletId", Boolean.TRUE);
+ NumberingLevel.put("BulletChar", Boolean.FALSE);
+ NumberingLevel.put("BulletFontName", Boolean.FALSE);
+ NumberingLevel.put("BulletFont", Boolean.TRUE);
+ NumberingLevel.put("GraphicURL", Boolean.FALSE);
+ NumberingLevel.put("GraphicBitmap", Boolean.TRUE);
+ NumberingLevel.put("GraphicSize", Boolean.TRUE);
+ NumberingLevel.put("VertOrient", Boolean.TRUE);
+ NumberingLevel.put("StartWith", Boolean.TRUE);
+ NumberingLevel.put("LeftMargin", Boolean.FALSE);
+ NumberingLevel.put("SymbolTextDistance", Boolean.TRUE);
+ NumberingLevel.put("FirstLineOffset", Boolean.FALSE);
+ NumberingLevel.put("NumberingType", Boolean.FALSE);
+ NumberingLevel.put("HeadingStyleName", Boolean.FALSE);
+ NumberingLevel.put("BulletColor", Boolean.TRUE);
+ NumberingLevel.put("BulletRelSize", Boolean.TRUE);
+
+ }
+
+ /**
+ * This method checks the PropertyValue for completeness. If one or more properties
+ * are missing the return value is FALSE, else TRUE
+ * @return returns TRUE if PropertyValue[] is complete, else FALSE
+ */
+ public boolean testPropertyArray(){
+
+ boolean status = true;
+ try{
+
+ // iterate over the given property array and remove it from the must list
+ for (int i = 0; i < PropertyArray.length; i++){
+ String propertyName=PropertyArray[i].Name;
+
+ if ( NumberingLevel.containsKey(propertyName) ) {
+ NumberingLevel.remove(propertyName);
+ } else {
+ if ( status ) {
+ log.println("FAILED: com.sun.star.text.NumberingLevel -> " +
+ "found not described property:");
+ }
+
+ status = false;
+ log.println("-> '" + propertyName + "'");
+ }
+
+ }
+
+ // get rest of properties and check if they are optional
+ if (! NumberingLevel.isEmpty()){
+ for (Map.Entry<String,Boolean> e : NumberingLevel.entrySet()) {
+ // if some elements are not optional -> failed
+ if (!e.getValue().booleanValue()) {
+
+ if ( status ) {
+ log.println("FAILED: com.sun.star.text.NumberingLevel -> " +
+ "could not find not optional property:");
+ }
+
+ status = false;
+ log.println("-> '" + e.getKey() + "'");
+ }
+ }
+ }
+
+ }catch( Exception e ){
+ throw new StatusException("ERROR: could not test all properties of com.sun.star.text.NumberingLevel",e);
+ }
+
+ return status;
+ }
+
+
+} // finish class _NumberingLevel
diff --git a/qadevOOo/tests/java/ifc/text/_NumberingRules.java b/qadevOOo/tests/java/ifc/text/_NumberingRules.java
new file mode 100644
index 000000000..925ccd4f6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_NumberingRules.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.NumberingRules</code>
+* service properties :
+* <ul>
+* <li><code> IsAbsoluteMargins</code></li>
+* <li><code> IsAutomatic</code></li>
+* <li><code> IsContinuousNumbering</code></li>
+* <li><code> Name</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.NumberingRules
+*/
+public class _NumberingRules extends MultiPropertyTest {
+
+} // finish class _NumberingRules
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_PrintSettings.java b/qadevOOo/tests/java/ifc/text/_PrintSettings.java
new file mode 100644
index 000000000..a1736adab
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_PrintSettings.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.PrintSettings</code>
+* service properties :
+* <ul>
+* <li><code> PrintGraphics</code></li>
+* <li><code> PrintTables</code></li>
+* <li><code> PrintDrawings</code></li>
+* <li><code> PrintLeftPages</code></li>
+* <li><code> PrintRightPages</code></li>
+* <li><code> PrintControls</code></li>
+* <li><code> PrintReversed</code></li>
+* <li><code> PrintPaperFromSetup</code></li>
+* <li><code> PrintFaxName</code></li>
+* <li><code> PrintAnnotationMode</code></li>
+* <li><code> PrintProspect</code></li>
+* <li><code> PrintPageBackground</code></li>
+* <li><code> PrintBlackFonts</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.PrintSettings
+*/
+public class _PrintSettings extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_Text.java b/qadevOOo/tests/java/ifc/text/_Text.java
new file mode 100644
index 000000000..abf93948c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_Text.java
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+public class _Text extends MultiPropertyTest {
+
+} //finish class _BaseFrame
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextColumns.java b/qadevOOo/tests/java/ifc/text/_TextColumns.java
new file mode 100644
index 000000000..93ef30505
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextColumns.java
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.text.XTextColumns;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.text.TextColumns</code>
+* service properties :
+* <ul>
+* <li><code> IsAutomatic</code></li>
+* <li><code> AutomaticDistance</code></li>
+* <li><code> SeparatorLineWidth</code></li>
+* <li><code> SeparatorLineColor</code></li>
+* <li><code> SeparatorLineRelativeHeight</code></li>
+* <li><code> SeparatorLineVerticalAlignment</code></li>
+* <li><code> SeparatorLineIsOn</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.TextColumns
+*/
+public class _TextColumns extends MultiPropertyTest {
+
+
+ /**
+ * Redefined method returns specific value, that differs from property
+ * value. ( (oldValue + referenceValue) / 2 ).
+ */
+ public void _AutomaticDistance() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("AutomaticDistance", new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ XTextColumns xTC = UnoRuntime.queryInterface
+ (XTextColumns.class,tEnv.getTestObject());
+ int ref = xTC.getReferenceValue();
+ int setting = ( ( (Integer) oldValue).intValue() + ref) / 2;
+ return Integer.valueOf(setting);
+ }
+ });
+ }
+
+
+} //finish class _TextColumns
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextContent.java b/qadevOOo/tests/java/ifc/text/_TextContent.java
new file mode 100644
index 000000000..f414e3c2b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextContent.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.TextContent</code>
+* service properties :
+* <ul>
+* <li><code> AnchorType</code></li>
+* <li><code> AnchorTypes</code></li>
+* <li><code> TextWrap</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.TextContent
+*/
+public class _TextContent extends MultiPropertyTest {
+
+} //finish class _TextContent
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextDocument.java b/qadevOOo/tests/java/ifc/text/_TextDocument.java
new file mode 100644
index 000000000..4f668bcdc
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextDocument.java
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+* Testing <code>com.sun.star.text.TextDocument</code>
+* service properties :
+* <ul>
+* <li><code> CharLocale</code></li>
+* <li><code> CharacterCount</code></li>
+* <li><code> ParagraphCount</code></li>
+* <li><code> WordCount</code></li>
+* <li><code> WordSeparator</code></li>
+* </ul> <p>
+* Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+* @see com.sun.star.text.TextDocument
+*/
+public class _TextDocument extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextEmbeddedObject.java b/qadevOOo/tests/java/ifc/text/_TextEmbeddedObject.java
new file mode 100644
index 000000000..2ee2609f4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextEmbeddedObject.java
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+
+/**
+ * Testing <code>com.sun.star.text.TextEmbeddedObject</code>
+ * service properties :
+ * <ul>
+ * <li><code> CLSID</code></li>
+ * <li><code> Model</code></li>
+ * <li><code> Component</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextEmbeddedObject
+ */
+public class _TextEmbeddedObject extends MultiPropertyTest {
+
+ /**
+ * This property can't be set, as soon as the object is inserted
+ * so the set method will be skipped.
+ */
+ public void _CLSID() {
+ boolean result = false;
+
+ try {
+ String clsid = (String) oObj.getPropertyValue("CLSID");
+ log.println("Getting " + clsid);
+ log.println(
+ "According to the idl-description this property can't be set as soon as the Object is inserted in the document, so setting will be skipped");
+ result=true;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception while getting Property 'CLSID' " +
+ e.getMessage());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception while getting Property 'CLSID' " +
+ e.getMessage());
+ }
+
+ tRes.tested("CLSID", result);
+ }
+} // finish class _TextEmbeddedObject
diff --git a/qadevOOo/tests/java/ifc/text/_TextFieldMaster.java b/qadevOOo/tests/java/ifc/text/_TextFieldMaster.java
new file mode 100644
index 000000000..cb343f482
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextFieldMaster.java
@@ -0,0 +1,37 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.text.TextFieldMaster</code>
+ * service properties :
+ * <ul>
+ * <li><code> Name</code></li>
+ * <li><code> DependentTextFields</code></li>
+ * <li><code> InstanceName</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextFieldMaster
+ */
+public class _TextFieldMaster extends MultiPropertyTest {
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextFrame.java b/qadevOOo/tests/java/ifc/text/_TextFrame.java
new file mode 100644
index 000000000..a23d22862
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextFrame.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.text.TextFrame</code>
+ * service properties :
+ * <ul>
+ * <li><code> FrameHeightAbsolute</code></li>
+ * <li><code> FrameWidthAbsolute</code></li>
+ * <li><code> FrameWidthPercent</code></li>
+ * <li><code> FrameHeightPercent</code></li>
+ * <li><code> FrameIsAutomaticHeight</code></li>
+ * <li><code> SizeType</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextFrame
+ */
+public class _TextFrame extends MultiPropertyTest {
+
+ /**
+ * Property tester which switches two shorts.
+ */
+ protected PropertyTester WModeTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (oldValue.equals(Short.valueOf(com.sun.star.text.WritingMode2.LR_TB)))
+ return Short.valueOf(com.sun.star.text.WritingMode2.TB_LR); else
+ return Short.valueOf(com.sun.star.text.WritingMode2.LR_TB);
+ }
+ } ;
+
+ /**
+ * This property must have predefined values
+ */
+ public void _WritingMode() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("WritingMode", WModeTester) ;
+ }
+
+} //finish class _TextFrame
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextGraphicObject.java b/qadevOOo/tests/java/ifc/text/_TextGraphicObject.java
new file mode 100644
index 000000000..10d6e8d88
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextGraphicObject.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.text;
+
+import com.sun.star.awt.Point;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.uno.UnoRuntime;
+
+import java.util.Random;
+
+import lib.MultiPropertyTest;
+
+import util.utils;
+
+
+/**
+ * Testing <code>com.sun.star.text.TextGraphicObject</code>
+ * service properties :
+ * <ul>
+ * <li><code> ImageMap</code></li>
+ * <li><code> ContentProtected</code></li>
+ * <li><code> SurroundContour</code></li>
+ * <li><code> ContourOutside</code></li>
+ * <li><code> ContourPolyPolygon</code></li>
+ * <li><code> GraphicCrop</code></li>
+ * <li><code> HoriMirroredOnEvenPages</code></li>
+ * <li><code> HoriMirroredOnOddPages</code></li>
+ * <li><code> VertMirrored</code></li>
+ * <li><code> GraphicURL</code></li>
+ * <li><code> GraphicFilter</code></li>
+ * <li><code> ActualSize</code></li>
+ * <li><code> AdjustLuminance</code></li>
+ * <li><code> AdjustContrast</code></li>
+ * <li><code> AdjustRed</code></li>
+ * <li><code> AdjustGreen</code></li>
+ * <li><code> AdjustBlue</code></li>
+ * <li><code> Gamma</code></li>
+ * <li><code> GraphicIsInverted</code></li>
+ * <li><code> Transparency</code></li>
+ * <li><code> GraphicColorMode</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'ImageMap'</code> (an implementation of
+ * <code>com.sun.star.image.ImageMapObject</code>):
+ * is used to insert a new Map into collection
+ * from 'ImageMap' property. </li>
+ * <ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextGraphicObject
+ */
+public class _TextGraphicObject extends MultiPropertyTest {
+ public Random rdm = new Random();
+
+ /**
+ * The tester which can change a sequence of <code>Point</code>'s
+ * or create a new one if necessary.
+ */
+ protected PropertyTester PointTester = new PropertyTester() {
+ @Override
+ protected Object getNewValue(String propName, Object oldValue)
+ throws java.lang.IllegalArgumentException {
+ if (utils.isVoid(oldValue)) {
+ return newPoint();
+ } else {
+ return changePoint((Point[][]) oldValue);
+ }
+ }
+ };
+
+ /**
+ * Tested with custom <code>PointTester</code>.
+ */
+ public void _ContourPolyPolygon() {
+ log.println("Testing with custom Property tester");
+ testProperty("ContourPolyPolygon", PointTester);
+ }
+
+ /**
+ * Retrieves an ImageMap from relation and inserts it to the collection
+ * obtained as property value. Then this collection is set back.
+ * After that property value is get again. The number of elements
+ * in the old collection and in just gotten collection is checked.
+ *
+ * Has <b>OK</b> status if the number of elements in the new obtained
+ * collection is greater than in old one.
+ */
+ public void _ImageMap() {
+ boolean result = true;
+
+ try {
+ XIndexContainer imgMap = UnoRuntime.queryInterface(
+ XIndexContainer.class,
+ oObj.getPropertyValue("ImageMap"));
+ int previous = imgMap.getCount();
+ log.println("Count (previous) " + previous);
+
+ Object im = tEnv.getObjRelation("IMGMAP");
+ imgMap.insertByIndex(0, im);
+ oObj.setPropertyValue("ImageMap", imgMap);
+ imgMap = UnoRuntime.queryInterface(
+ XIndexContainer.class,
+ oObj.getPropertyValue("ImageMap"));
+
+ int after = imgMap.getCount();
+ log.println("Count (after) " + after);
+ result = previous < after;
+ } catch (Exception ex) {
+ result = false;
+ }
+
+ tRes.tested("ImageMap", result);
+ }
+
+ /**
+ * Creates a new random points sequence.
+ */
+ public Point[][] newPoint() {
+ Point[][] res = new Point[1][185];
+
+ for (int i = 0; i < res[0].length; i++) {
+ res[0][i] = new Point();
+ res[0][i].X = rd() * rd() * rd();
+ res[0][i].Y = rd() * rd() * rd();
+ }
+
+ return res;
+ }
+
+ public int rd() {
+ return rdm.nextInt(6);
+ }
+
+ /**
+ * Changes the existing point sequence.
+ */
+ public Point[][] changePoint(Point[][] oldPoint) {
+ Point[][] res = oldPoint;
+
+ for (int i = 0; i < res[0].length; i++) {
+ res[0][i].X += 1;
+ res[0][i].Y += 1;
+ }
+
+ return res;
+ }
+} // finish class _TextGraphicObject
diff --git a/qadevOOo/tests/java/ifc/text/_TextPortion.java b/qadevOOo/tests/java/ifc/text/_TextPortion.java
new file mode 100644
index 000000000..24096fe6d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextPortion.java
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.text.ControlCharacter;
+
+/**
+ * Testing <code>com.sun.star.text.TextPortion</code>
+ * service properties :
+ * <ul>
+ * <li><code> TextPortionType</code></li>
+ * <li><code> ControlCharacter</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextPortion
+ */
+public class _TextPortion extends MultiPropertyTest {
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _ControlCharacter() {
+ testProperty("ControlCharacter",
+ Short.valueOf(ControlCharacter.LINE_BREAK),
+ Short.valueOf(ControlCharacter.PARAGRAPH_BREAK)) ;
+ }
+
+} //finish class _TextPortion
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextSection.java b/qadevOOo/tests/java/ifc/text/_TextSection.java
new file mode 100644
index 000000000..3c756a60f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextSection.java
@@ -0,0 +1,142 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+import com.sun.star.text.XTextColumns;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+ * Testing <code>com.sun.star.text.TextSection</code>
+ * service properties :
+ * <ul>
+ * <li><code> Condition</code></li>
+ * <li><code> IsVisible</code></li>
+ * <li><code> IsProtected</code></li>
+ * <li><code> FileLink</code></li>
+ * <li><code> LinkRegion</code></li>
+ * <li><code> DDECommandType</code></li>
+ * <li><code> DDECommandFile</code></li>
+ * <li><code> DDECommandElement</code></li>
+ * <li><code> BackGraphicURL</code></li>
+ * <li><code> BackGraphicFilter</code></li>
+ * <li><code> BackGraphicLocation</code></li>
+ * <li><code> FootnoteIsCollectAtTextEnd</code></li>
+ * <li><code> FootnoteIsRestartNumbering</code></li>
+ * <li><code> FootnoteRestartNumberingAt</code></li>
+ * <li><code> FootnoteIsOwnNumbering</code></li>
+ * <li><code> FootnoteNumberingType</code></li>
+ * <li><code> FootnoteNumberingPrefix</code></li>
+ * <li><code> FootnoteNumberingSuffix</code></li>
+ * <li><code> EndnoteIsCollectAtTextEnd</code></li>
+ * <li><code> EndnoteIsRestartNumbering</code></li>
+ * <li><code> EndnoteRestartNumberingAt</code></li>
+ * <li><code> EndnoteIsOwnNumbering</code></li>
+ * <li><code> EndnoteNumberingType</code></li>
+ * <li><code> EndnoteNumberingPrefix</code></li>
+ * <li><code> EndnoteNumberingSuffix</code></li>
+ * <li><code> IsAutomaticUpdate</code></li>
+ * </ul> <p>
+ * The following predefined files needed to complete the test:
+ * <ul>
+ * <li> <code>crazy-blue.jpg, space-metal.jpg</code> : are used for
+ * setting 'BackGraphicURL' property. </li>
+ * <ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextSection
+ */
+public class _TextSection extends MultiPropertyTest {
+
+ /**
+ * Only image file URL can be used as a value.
+ */
+ public void _BackGraphicURL() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("BackGraphicURL",
+ util.utils.getFullTestURL("crazy-blue.jpg"),
+ util.utils.getFullTestURL("space-metal.jpg")) ;
+ }
+
+ /**
+ * This property can be void, so if old value is <code> null </code>
+ * new value must be specified.
+ */
+ public void _FootnoteNumberingType() {
+ log.println("Testing with custom Property tester") ;
+ testProperty("FootnoteNumberingType",
+ Short.valueOf(com.sun.star.text.FootnoteNumbering.PER_DOCUMENT),
+ Short.valueOf(com.sun.star.text.FootnoteNumbering.PER_PAGE)) ;
+ }
+
+
+ /**
+ * Custom property tester for property <code>TextColumns</code>
+ */
+ protected PropertyTester TextColumnsTester = new PropertyTester() {
+
+ @Override
+ protected Object getNewValue(String propName, Object oldValue) {
+ XTextColumns TC = null;
+ short val2set = 25;
+
+ TC = (XTextColumns) tEnv.getObjRelation("TC");
+ try {
+ val2set += ((XTextColumns) AnyConverter.toObject(
+ new Type(XTextColumns.class),oldValue)).getColumnCount();
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Couldn't change Column count");
+ }
+ TC.setColumnCount(val2set);
+
+ return TC;
+ }
+
+ @Override
+ protected boolean compare(Object obj1, Object obj2) {
+ short val1 = 0;
+ short val2 = 1;
+ try {
+ val1 = ((XTextColumns) AnyConverter.toObject(
+ new Type(XTextColumns.class),obj1)).getColumnCount();
+ val2 = ((XTextColumns) AnyConverter.toObject(
+ new Type(XTextColumns.class),obj2)).getColumnCount();
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("comparing values failed");
+ }
+ return val1 == val2;
+ }
+
+ @Override
+ protected String toString(Object obj) {
+ return "XTextColumns: ColumnCount = "+
+ ((XTextColumns) obj).getColumnCount();
+ }
+
+ };
+
+ public void _TextColumns() {
+ log.println("Testing with custom Property tester");
+ testProperty("TextColumns", TextColumnsTester);
+ }
+
+
+} //finish class _TextContent
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextTable.java b/qadevOOo/tests/java/ifc/text/_TextTable.java
new file mode 100644
index 000000000..ad3645d22
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextTable.java
@@ -0,0 +1,110 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.text.TextTable</code>
+ * service properties :
+ * <ul>
+ * <li><code> BreakType</code></li>
+ * <li><code> LeftMargin</code></li>
+ * <li><code> RightMargin</code></li>
+ * <li><code> HoriOrient</code></li>
+ * <li><code> KeepTogether</code></li>
+ * <li><code> Split</code></li>
+ * <li><code> PageNumberOffset</code></li>
+ * <li><code> PageDescName</code></li>
+ * <li><code> RelativeWidth</code></li>
+ * <li><code> IsWidthRelative</code></li>
+ * <li><code> RepeatHeadline</code></li>
+ * <li><code> ShadowFormat</code></li>
+ * <li><code> TopMargin</code></li>
+ * <li><code> BottomMargin</code></li>
+ * <li><code> BackTransparent</code></li>
+ * <li><code> Width</code></li>
+ * <li><code> ChartRowAsLabel</code></li>
+ * <li><code> ChartColumnAsLabel</code></li>
+ * <li><code> TableBorder</code></li>
+ * <li><code> TableColumnSeparators</code></li>
+ * <li><code> TableColumnRelativeSum</code></li>
+ * <li><code> BackColor</code></li>
+ * <li><code> BackGraphicURL</code></li>
+ * <li><code> BackGraphicFilter</code></li>
+ * <li><code> BackGraphicLocation</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextTable
+ */
+public class _TextTable extends MultiPropertyTest {
+
+ /**
+ * This property accepts only restricted range of values.
+ * The property value is switched between '' and 'Standard'
+ * strings.
+ */
+ public void _PageDescName() {
+ testProperty("PageDescName", "Endnote", "Standard");
+ }
+
+ /**
+ * For setting this property, 'HoriOrient' property must be
+ * set to non-automatic.
+ */
+ public void _Width() {
+ Short align = Short.valueOf(com.sun.star.text.HoriOrientation.CENTER);
+ try {
+ oObj.setPropertyValue("HoriOrient",align);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {}
+ catch (com.sun.star.lang.WrappedTargetException ex) {}
+ catch (com.sun.star.beans.PropertyVetoException ex) {}
+ catch (com.sun.star.beans.UnknownPropertyException ex) {}
+
+ testProperty("Width");
+ }
+
+ /**
+ * For setting this property, 'HoriOrient' property must be
+ * set to non-automatic.
+ */
+ public void _RelativeWidth() {
+ Short align = Short.valueOf(com.sun.star.text.HoriOrientation.CENTER);
+ try {
+ oObj.setPropertyValue("HoriOrient",align);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {}
+ catch (com.sun.star.lang.WrappedTargetException ex) {}
+ catch (com.sun.star.beans.PropertyVetoException ex) {}
+ catch (com.sun.star.beans.UnknownPropertyException ex) {}
+
+ testProperty("RelativeWidth");
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // finish class _TextTable
+
diff --git a/qadevOOo/tests/java/ifc/text/_TextTableRow.java b/qadevOOo/tests/java/ifc/text/_TextTableRow.java
new file mode 100644
index 000000000..7bd23f22e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_TextTableRow.java
@@ -0,0 +1,43 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.text.TextTableRow</code>
+ * service properties :
+ * <ul>
+ * <li><code> BackColor</code></li>
+ * <li><code> BackTransparent</code></li>
+ * <li><code> VertOrient</code></li>
+ * <li><code> BackGraphicURL</code></li>
+ * <li><code> BackGraphicFilter</code></li>
+ * <li><code> BackGraphicLocation</code></li>
+ * <li><code> TableColumnSeparators</code></li>
+ * <li><code> Height</code></li>
+ * <li><code> IsAutoHeight</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.TextTableRow
+ */
+public class _TextTableRow extends MultiPropertyTest {
+
+} // finish class _TextTableRow
+
diff --git a/qadevOOo/tests/java/ifc/text/_ViewSettings.java b/qadevOOo/tests/java/ifc/text/_ViewSettings.java
new file mode 100644
index 000000000..676fe27db
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_ViewSettings.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.text.ViewSettings</code>
+ * service properties :
+ * <ul>
+ * <li><code> ShowAnnotations</code></li>
+ * <li><code> ShowBreaks</code></li>
+ * <li><code> ShowDrawings</code></li>
+ * <li><code> ShowFieldCommands</code></li>
+ * <li><code> ShowFootnoteBackground</code></li>
+ * <li><code> ShowGraphics</code></li>
+ * <li><code> ShowHiddenParagraphs</code></li>
+ * <li><code> ShowHiddenText</code></li>
+ * <li><code> ShowHoriRuler</code></li>
+ * <li><code> ShowHoriScrollBar</code></li>
+ * <li><code> ShowIndexMarkBackground</code></li>
+ * <li><code> ShowParaBreaks</code></li>
+ * <li><code> ShowProtectedSpaces</code></li>
+ * <li><code> ShowSoftHyphens</code></li>
+ * <li><code> ShowSpaces</code></li>
+ * <li><code> ShowTableBoundaries</code></li>
+ * <li><code> ShowTables</code></li>
+ * <li><code> ShowTabstops</code></li>
+ * <li><code> ShowTextBoundaries</code></li>
+ * <li><code> ShowTextFieldBackground</code></li>
+ * <li><code> ShowVertRuler</code></li>
+ * <li><code> ShowVertScrollBar</code></li>
+ * <li><code> SmoothScrolling</code></li>
+ * <li><code> IsVertRulerRightAligned</code></li>
+ * <li><code> ShowOnlineLayout</code></li>
+ * <li><code> ZoomType</code></li>
+ * <li><code> ZoomValue</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.text.ViewSettings
+ */
+public class _ViewSettings extends MultiPropertyTest {
+
+} // finish class _ViewSettings
+
diff --git a/qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java b/qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java
new file mode 100644
index 000000000..fed159a32
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java
@@ -0,0 +1,132 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XAutoTextContainer;
+import com.sun.star.text.XAutoTextGroup;
+
+/**
+ * Testing <code>com.sun.star.text.XAutoTextContainer</code>
+ * interface methods :
+ * <ul>
+ * <li><code> insertNewByName()</code></li>
+ * <li><code> removeByName()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XAutoTextContainer
+ */
+public class _XAutoTextContainer extends MultiMethodTest {
+ public XAutoTextContainer oObj = null;
+ // every Thread must insert its own AutoTextContainer:
+ public String Name = "";
+
+ /**
+ * First removes old element from container with the specified name
+ * if it exists. Then tries to add a new group with the specified
+ * name. <p>
+ *
+ * Has <b>OK</b> status if not <code>null</code>
+ * <code>AutoTextGroup</code> instance is returned.
+ */
+ public void _insertNewByName() {
+ System.out.println("Starting: insertNewByName");
+ boolean result = true;
+ Name = "XAutoTextContainerx" + Thread.currentThread().getName();
+ Name = Name.replace('-','x');
+ Name = Name.replace(':','x');
+ Name = Name.replace('.','x');
+ XAutoTextGroup oGroup = null;
+ //first clear the container
+ log.println("remove old elements in container");
+ System.out.println("remove old elements in container");
+ try {
+ oObj.removeByName(Name);
+ log.println("old elements removed -> OK");
+ System.out.println("old elements removed -> OK");
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("no old elements available -> OK");
+ System.out.println("no old elements available -> OK");
+ }
+
+ // insert an element
+ log.println("insertNewByName");
+ try {
+ System.out.println("Inserting element with name '" + Name + "'");
+ log.println("Inserting element with name '" + Name + "'");
+ oGroup = oObj.insertNewByName(Name);
+ System.out.println("done");
+ } catch (com.sun.star.container.ElementExistException e) {
+ log.println("insertNewByName(): " + e);
+ result &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("insertNewByName(): " + e);
+ result &= false;
+ }
+
+ result &= ( oGroup != null );
+ tRes.tested("insertNewByName()", result);
+ } // end insertNewByName()
+
+ /**
+ * First removes element by name which was added before,
+ * then tries to remove the element with the same name again. <p>
+ *
+ * Has <b> OK </b> status if in the first case no exceptions
+ * were thrown, and in the second case
+ * <code>NoSuchElementException</code> was thrown. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertNewByName() </code> : new element inserted here.</li>
+ * </ul>
+ */
+ public void _removeByName() {
+ requiredMethod("insertNewByName()");
+
+ boolean result = true;
+ // remove the element
+ log.println("removeByName()");
+ try {
+ log.println("Removing element with name '" + Name + "'");
+ oObj.removeByName(Name);
+ result &= true;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ log.println("removeByName(): " + e + " -> FAILED");
+ }
+
+ log.println("2nd removeByName()");
+ try {
+ oObj.removeByName(Name);
+ log.println("No exceptions were thrown -> FAILED");
+ result = false ;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("2nd removeByName(): -> OK");
+ result &= true;
+ }
+
+ tRes.tested("removeByName()", result);
+
+ } // end removeByName()
+
+} /// finish class XAutoTextContainer
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XAutoTextEntry.java b/qadevOOo/tests/java/ifc/text/_XAutoTextEntry.java
new file mode 100644
index 000000000..5f9b19634
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XAutoTextEntry.java
@@ -0,0 +1,69 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.text.XAutoTextEntry;
+import com.sun.star.text.XTextDocument;
+
+/**
+ * Testing <code>com.sun.star.text.XAutoTextEntry</code>
+ * interface methods :
+ * <ul>
+ * <li><code> applyTo()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'TEXTDOC'</code> (of type <code>XTextDocument</code>):
+ * the text document for creating a text range.</li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XAutoTextEntry
+ */
+public class _XAutoTextEntry extends MultiMethodTest {
+
+ public XAutoTextEntry oObj = null;
+
+ /**
+ * Applies the entry to a range created for the text document obtained from
+ * relation 'TEXTDOC'. <p>
+ * Has <b> OK </b> status if text of the document was changed. <p>
+ */
+ public void _applyTo() {
+ XTextDocument textDoc = (XTextDocument)tEnv.getObjRelation("TEXTDOC");
+ if (textDoc == null) {
+ throw new StatusException
+ (Status.failed("Couldn't get relation 'TEXTDOC'"));
+ }
+
+ String oldText = textDoc.getText().getString();
+ oObj.applyTo(textDoc.getText().createTextCursor());
+ String newText = textDoc.getText().getString();
+
+ log.println("Old text:\n" + oldText + "\nNew text:\n" + newText);
+
+ tRes.tested("applyTo()", ! newText.equals(oldText));
+ }
+
+} // finish class _XAutoTextEntry
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XAutoTextGroup.java b/qadevOOo/tests/java/ifc/text/_XAutoTextGroup.java
new file mode 100644
index 000000000..9a67c4301
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XAutoTextGroup.java
@@ -0,0 +1,299 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.ValueComparer;
+
+import com.sun.star.text.XAutoTextGroup;
+import com.sun.star.text.XTextRange;
+
+/**
+ * Testing <code>com.sun.star.text.XAutoTextGroup</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getTitles()</code></li>
+ * <li><code> renameByName()</code></li>
+ * <li><code> insertNewByName()</code></li>
+ * <li><code> removeByName()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'TextRange'</code> (of type <code>XTextRange</code>):
+ * the range for which an entry is added. </li>
+ * <ul> <p>
+ * Test is multithread compliant. <p>
+ * @see com.sun.star.text.XAutoTextGroup
+ */
+public class _XAutoTextGroup extends MultiMethodTest {
+
+ public XAutoTextGroup oObj = null;
+
+ /**
+ * Unique number among different interface threads.
+ */
+ protected static int uniq = 0 ;
+
+ /**
+ * Unique string for AutoTextEntry names among different
+ * threads.
+ */
+ protected String str = null ;
+
+ /**
+ * Prefix for unique string.
+ * @see #str
+ */
+ protected static final String pref = "XAutoTextGroup" ;
+ protected XTextRange oRange = null;
+
+ /**
+ * Constructs a unique string for current interface thread
+ * for naming purposes. All old entries which names are
+ * started with prefix used for entry names, are deleted
+ * from the group (they can remain after previous unsuccessful
+ * test runs). The relation is obtained.
+ *
+ * @throws StatusException if the relation is not found.
+ */
+ @Override
+ public void before() {
+ str = pref + uniq++ ;
+ String[] names = oObj.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]);
+ if (names[i].toUpperCase().indexOf(pref.toUpperCase()) > 0) {
+ try {
+ log.println(" ... removing ...");
+ oObj.removeByName(names[i]) ;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("Element '" + names[i] + "' not found.");
+ }
+ }
+ }
+
+ oRange = (XTextRange) tEnv.getObjRelation("TextRange");
+ if (oRange == null) {
+ throw new StatusException(Status.failed("No relation found")) ;
+ }
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getTitles() {
+
+ String[] titles = oObj.getTitles();
+ tRes.tested("getTitles()",titles != null);
+ }
+
+ /**
+ * Firsts inserts a new <code>AutoTextEntry</code> using a range
+ * from relation, entry titles are checked before and after
+ * insertion, second tries to add an entry with the same name. <p>
+ *
+ * Has <b>OK</b> status if in the first case titles are changed,
+ * and in the second case <code>ElementExistException</code> is
+ * thrown.
+ */
+ public void _insertNewByName() {
+
+ boolean result = false;
+
+ try {
+ String[] before = oObj.getTitles();
+ oObj.insertNewByName(str, "For " + str,oRange);
+ String[] after = oObj.getTitles();
+ result = !util.ValueComparer.equalValue(before, after);
+ }
+ catch (com.sun.star.container.ElementExistException ex) {
+ log.println("Exception occurred while testing insertNewByName");
+ ex.printStackTrace(log);
+ result = false;
+ }
+
+ try {
+ oObj.insertNewByName(str, "For " + str, oRange);
+ log.println(
+ "com::sun::star::container::ElementExistsException wasn't thrown");
+ oObj.removeByName(str);
+ result &= false;
+ } catch (com.sun.star.container.ElementExistException ex) {
+ result &= true;
+ } catch (com.sun.star.container.NoSuchElementException ex) {
+ log.println("Wrong exception was thrown :");
+ ex.printStackTrace(log);
+ result &= false;
+ }
+
+ tRes.tested("insertNewByName()",result);
+
+ }
+
+ /**
+ * Removes <code>AutoTextEntry</code> added before and checks
+ * titles of the group before and after removing. <p>
+ * Has <b> OK </b> status if titles are not equal before and after
+ * removing and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertNewByName() </code> : the entry is
+ * inserted here. </li>
+ * </ul>
+ */
+ public void _removeByName() {
+ requiredMethod("insertNewByName()") ;
+
+ try {
+ String[] before = oObj.getTitles();
+ oObj.removeByName(str);
+ String[] after = oObj.getTitles();
+ tRes.tested("removeByName()",
+ !ValueComparer.equalValue(before,after));
+ }
+ catch (com.sun.star.container.NoSuchElementException ex) {
+ log.println("Exception occurred while testing removeByName");
+ ex.printStackTrace(log);
+ tRes.tested("removeByName()",false);
+ }
+ }
+
+ /**
+ * Three cases are tested here :
+ * <ol>
+ * <li> Trying to rename an entry to a name, which already
+ * exists in the group. <code>ElementExistException</code>
+ * must be thrown. </li>
+ * <li> Trying to rename an element with non-existing name.
+ * <code>IllegalArgumentException</code> must be thrown.</li>
+ * <li> The normal situation : no exceptions must be thrown
+ * and element with a new name must arise. </li>
+ * </ol>
+ *
+ * Has <b>OK</b> status if all three cases were completed successfully.
+ */
+ public void _renameByName() {
+ boolean result = false;
+
+ try {
+ oObj.getTitles();
+ oObj.getElementNames();
+ oObj.insertNewByName(str,"For " + str,oRange);
+ oObj.insertNewByName(str + "dup","For " + str,oRange);
+ oObj.getTitles();
+ oObj.getElementNames();
+ result = true;
+ } catch (com.sun.star.container.ElementExistException e) {
+ log.println("Unexpected exception occurred :") ;
+ e.printStackTrace(log);
+ } finally {
+ if (!result) {
+ try {
+ oObj.removeByName(str);
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ try {
+ oObj.removeByName(str + "dup");
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ tRes.tested("renameByName()", false);
+ }
+ }
+
+
+ try {
+ oObj.renameByName(str, str + "dup", "For "+str);
+ log.println(
+ "com::sun::star::container::ElementExistsException wasn't thrown");
+ result = false;
+ } catch (com.sun.star.container.ElementExistException e) {
+ result = true;
+ } catch (com.sun.star.io.IOException e) {
+ log.println("Wrong exception was thrown :");
+ e.printStackTrace(log);
+ result = false;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Wrong exception was thrown :");
+ e.printStackTrace(log);
+ result = false;
+ } finally {
+ try {
+ oObj.removeByName(str);
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ try {
+ oObj.removeByName(str + "dup");
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ }
+
+ try {
+ oObj.renameByName("~"+str,str,str);
+ log.println(
+ "com::sun::star::lang::IllegalArgumentException wasn't thrown");
+ result &= false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ result &= true;
+ } catch (com.sun.star.container.ElementExistException e) {
+ log.println("Unexpected exception :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.io.IOException e) {
+ log.println("Unexpected exception :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } finally {
+ try {
+ oObj.removeByName(str);
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ }
+
+ try {
+ oObj.insertNewByName(str, "For " + str, oRange);
+
+ oObj.renameByName(str,str+"a",str+"b");
+ result &= oObj.hasByName(str + "a");
+ } catch (com.sun.star.container.ElementExistException ex) {
+ log.println("Exception occurred while testing renameByName");
+ ex.printStackTrace(log);
+ result &=false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while testing renameByName");
+ ex.printStackTrace(log);
+ result &=false;
+ } catch (com.sun.star.io.IOException ex) {
+ log.println("Exception occurred while testing renameByName");
+ ex.printStackTrace(log);
+ result &=false;
+ } finally {
+ try {
+ oObj.removeByName(str);
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ try {
+ oObj.removeByName(str + "a");
+ } catch (com.sun.star.container.NoSuchElementException e) {}
+ }
+
+ tRes.tested("renameByName()",result);
+
+ }
+
+} // finish class _XAutoTextGroup
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XBookmarksSupplier.java b/qadevOOo/tests/java/ifc/text/_XBookmarksSupplier.java
new file mode 100644
index 000000000..d01fc5686
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XBookmarksSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XBookmarksSupplier;
+import lib.MultiMethodTest;
+
+
+/**
+ * Testing <code>com.sun.star.text.XBookmarksSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getBookmarks()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XBookmarksSupplier
+ */
+public class _XBookmarksSupplier extends MultiMethodTest {
+
+ public static XBookmarksSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the collection returned has at least
+ * one element.
+ */
+ public void _getBookmarks() {
+ boolean res = false;
+
+ XNameAccess the_bookmarks = oObj.getBookmarks();
+ log.println("Found: ");
+ util.dbg.printArray(the_bookmarks.getElementNames());
+ res = the_bookmarks.getElementNames().length>0;
+
+ tRes.tested("getBookmarks()",res);
+ }
+
+} // finish class _XBookmarksSupplier
diff --git a/qadevOOo/tests/java/ifc/text/_XChapterNumberingSupplier.java b/qadevOOo/tests/java/ifc/text/_XChapterNumberingSupplier.java
new file mode 100644
index 000000000..3cac4bf7c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XChapterNumberingSupplier.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XIndexReplace;
+import com.sun.star.text.XChapterNumberingSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XChapterNumberingSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getChapterNumberingRules()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XChapterNumberingSupplier
+ */
+public class _XChapterNumberingSupplier extends MultiMethodTest {
+
+ public static XChapterNumberingSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the returned collection
+ * has at least one element.
+ */
+ public void _getChapterNumberingRules() {
+ boolean res = false;
+
+ XIndexReplace the_chapter = oObj.getChapterNumberingRules();
+ res = the_chapter.hasElements();
+
+ tRes.tested("getChapterNumberingRules()",res);
+ }
+
+} // finish class _XChapterNumberingSupplier
+
diff --git a/qadevOOo/tests/java/ifc/text/_XDefaultNumberingProvider.java b/qadevOOo/tests/java/ifc/text/_XDefaultNumberingProvider.java
new file mode 100644
index 000000000..6a98f0696
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XDefaultNumberingProvider.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.Locale;
+import com.sun.star.text.XDefaultNumberingProvider;
+
+/**
+* Testing <code>com.sun.star.text.XDefaultNumberingProvider</code>
+* interface methods :
+* <ul>
+* <li><code> getDefaultOutlineNumberings()</code></li>
+* <li><code> getDefaultContinuousNumberingLevels()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.text.XDefaultNumberingProvider
+*/
+public class _XDefaultNumberingProvider extends MultiMethodTest {
+
+ public static XDefaultNumberingProvider oObj = null;
+ private final Locale loc = new Locale("en", "EN", "") ;
+
+ /**
+ * Just gets numberings for "en" locale. <p>
+ * Has <b>OK</b> status if not <code>null</code> value returned
+ * and no runtime exceptions occurred.
+ */
+ public void _getDefaultOutlineNumberings() {
+ XIndexAccess xIA[] = oObj.getDefaultOutlineNumberings(loc) ;
+
+ tRes.tested("getDefaultOutlineNumberings()", xIA != null) ;
+ }
+
+ /**
+ * Just gets numberings for "en" locale. <p>
+ * Has <b>OK</b> status if not <code>null</code> value returned
+ * and no runtime exceptions occurred.
+ */
+ public void _getDefaultContinuousNumberingLevels() {
+ PropertyValue[][] lev = oObj.getDefaultContinuousNumberingLevels(loc) ;
+
+ tRes.tested("getDefaultContinuousNumberingLevels()", lev != null) ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XDocumentIndex.java b/qadevOOo/tests/java/ifc/text/_XDocumentIndex.java
new file mode 100644
index 000000000..861dbd681
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XDocumentIndex.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XDocumentIndex;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Testing <code>com.sun.star.text.XDocumentIndex</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getServiceName()</code></li>
+ * <li><code> update()</code></li>
+ * </ul> <p>
+ *
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'TextDoc'</code> (of type <code>XTextDocument</code>):
+ * the text document for creating and inserting index mark.</li>
+ * <ul> <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XDocumentIndex
+ */
+public class _XDocumentIndex extends MultiMethodTest {
+
+ public XDocumentIndex oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the returned service name
+ * is equal to 'com.sun.star.text.DocumentIndex'.
+ */
+ public void _getServiceName() {
+ String serv = oObj.getServiceName();
+ tRes.tested("getServiceName()",
+ serv.equals("com.sun.star.text.DocumentIndex"));
+ }
+
+ /**
+ * Gets the document from relation and insert a new index mark.
+ * Then it stores the text content of document index before
+ * update and after.<p>
+ *
+ * Has <b> OK </b> status if index content is changed and
+ * new index contains index mark inserted. <p>
+ */
+ public void _update() {
+ boolean bOK = true;
+
+ try {
+ XTextDocument xTextDoc = (XTextDocument)
+ tEnv.getObjRelation("TextDoc");
+ XText xText = xTextDoc.getText();
+ XTextRange xTR = xText.getEnd();
+ xTR.setString("IndexMark");
+
+ XMultiServiceFactory xDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+
+ Object idxMark = xDocMSF.createInstance
+ ("com.sun.star.text.DocumentIndexMark");
+ XTextContent xTC = UnoRuntime.queryInterface
+ (XTextContent.class, idxMark);
+ xText.insertTextContent(xTR, xTC, true);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't insert index mark.");
+ e.printStackTrace(log);
+ bOK = false ;
+ }
+
+ String contentBefore = oObj.getAnchor().getString();
+ log.println("Content before: '" + contentBefore + "'");
+
+ oObj.update();
+
+ waitForEventIdle();
+
+
+ String contentAfter = oObj.getAnchor().getString();
+ log.println("Content after: '" + contentAfter + "'");
+
+ bOK &= !contentAfter.equals(contentBefore);
+ bOK &= contentAfter.indexOf("IndexMark") > -1;
+
+ tRes.tested("update()",bOK);
+ }
+
+
+
+} // finish class _XDocumentIndex
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XDocumentIndexesSupplier.java b/qadevOOo/tests/java/ifc/text/_XDocumentIndexesSupplier.java
new file mode 100644
index 000000000..7d985f822
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XDocumentIndexesSupplier.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.text.XDocumentIndexesSupplier;
+
+import lib.MultiMethodTest;
+
+
+/**
+ * Testing <code>com.sun.star.text.XDocumentIndexesSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getDocumentIndexes()()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XDocumentIndexesSupplier
+ */
+public class _XDocumentIndexesSupplier extends MultiMethodTest {
+
+ public static XDocumentIndexesSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the collection returned has at least
+ * one element.
+ */
+ public void _getDocumentIndexes() {
+ boolean res = false;
+
+ XIndexAccess the_documentIndexes = oObj.getDocumentIndexes();
+ res = the_documentIndexes.getCount()>0;
+
+ tRes.tested("getDocumentIndexes()",res);
+ }
+
+} // finish class _XDocumentIndexesSupplier
diff --git a/qadevOOo/tests/java/ifc/text/_XEndnotesSupplier.java b/qadevOOo/tests/java/ifc/text/_XEndnotesSupplier.java
new file mode 100644
index 000000000..b08948a67
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XEndnotesSupplier.java
@@ -0,0 +1,72 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.text.XEndnotesSupplier;
+
+
+/**
+ * Testing <code>com.sun.star.text.XEndnotesSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getEndnotes()</code></li>
+ * <li><code> getEndnoteSettings()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XEndnotesSupplier
+ */
+public class _XEndnotesSupplier extends MultiMethodTest {
+
+ public static XEndnotesSupplier oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the collection returned has at least
+ * one element.
+ */
+ public void _getEndnotes() {
+ boolean res = false;
+
+ XIndexAccess the_endnotes = oObj.getEndnotes();
+ res = the_endnotes.hasElements();
+
+ tRes.tested("getEndnotes()",res);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getEndnoteSettings() {
+ boolean res = false;
+
+ XPropertySet the_props = oObj.getEndnoteSettings();
+ res = ( the_props != null );
+
+ tRes.tested("getEndnoteSettings()",res);
+ }
+
+} // finish class _XEndnotesSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XFootnote.java b/qadevOOo/tests/java/ifc/text/_XFootnote.java
new file mode 100644
index 000000000..6aedd2c75
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XFootnote.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import com.sun.star.text.XFootnote;
+
+
+/**
+ * Testing <code>com.sun.star.text.XFootnote</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getLabel()</code></li>
+ * <li><code> setLabel()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XFootnote
+ */
+public class _XFootnote extends MultiMethodTest {
+
+ public XFootnote oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getLabel(){
+
+ boolean result;
+
+ // testing getLabel
+ log.println("Testing getLabel() ... ");
+ String oldLabel = oObj.getLabel();
+ log.println("getLabel: Old Value: " + oldLabel);
+ result = (oldLabel != null);
+ if (result) {
+ log.println(" ... getLabel() - OK");
+ }
+ else {
+ log.println(" ... getLabel() - FAILED");
+ }
+ tRes.tested("getLabel()", result);
+
+ } // finished getLabel
+
+
+ /**
+ * Sets a new label, then using <code>getLabel</code> method
+ * checks if the label was set. <p>
+ *
+ * Has <b>OK</b> status if set and get values are equal.
+ */
+ public void _setLabel(){
+
+ boolean result;
+ String str = "New XFootnote Label";
+
+ // testing getLabel
+ log.println("Testing setLabel() ... ");
+ log.println("New label : " + str);
+
+ String oldLabel = oObj.getLabel();
+ log.println("Old label was: " + oldLabel);
+ oObj.setLabel(str);
+
+ String res = oObj.getLabel();
+
+ log.println("verify setLabel result");
+ result = res.equals(str);
+ if (result) {
+ log.println(" ... setLabel() - OK");
+ }
+ else {
+ log.println(" ... setLabel() - FAILED");
+ }
+ tRes.tested("setLabel()", result);
+
+ log.println("restoring the old label value");
+ oObj.setLabel(oldLabel);
+ } // finished setLabel
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XFootnotesSettingsSupplier.java b/qadevOOo/tests/java/ifc/text/_XFootnotesSettingsSupplier.java
new file mode 100644
index 000000000..2b53b9e27
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XFootnotesSettingsSupplier.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.XFootnotesSettingsSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XFootnotesSettingsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getFootnoteSettings()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XFootnotesSettingsSupplier
+ */
+public class _XFootnotesSettingsSupplier extends MultiMethodTest {
+ public XFootnotesSettingsSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getFootnotesSettings(){
+ boolean result = true;
+ XPropertySet footnoteSettings = null;
+
+ footnoteSettings = oObj.getFootnotesSettings();
+ result = footnoteSettings != null;
+
+ tRes.tested("getFootnotesSettings()", result);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XFootnotesSupplier.java b/qadevOOo/tests/java/ifc/text/_XFootnotesSupplier.java
new file mode 100644
index 000000000..1cd7b65d9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XFootnotesSupplier.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.text.XFootnotesSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XFootnotesSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getFootnotes()</code></li>
+ * <li><code> getFootnoteSettings()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XFootnotesSupplier
+ */
+public class _XFootnotesSupplier extends MultiMethodTest {
+ public XFootnotesSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getFootnotes(){
+ boolean result = true;
+ XIndexAccess footnotes = null;
+
+ log.println("testing getFootnotes() ... ");
+
+ footnotes = oObj.getFootnotes();
+ result = footnotes != null;
+ tRes.tested("getFootnotes()", result);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getFootnoteSettings(){
+ boolean result = true;
+ XPropertySet footnoteSettings = null;
+
+ log.println("testing getFootnoteSettings() ... ");
+
+ footnoteSettings = oObj.getFootnoteSettings();
+ result = footnoteSettings != null;
+
+ tRes.tested("getFootnoteSettings()", result);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XLineNumberingProperties.java b/qadevOOo/tests/java/ifc/text/_XLineNumberingProperties.java
new file mode 100644
index 000000000..cf39649b4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XLineNumberingProperties.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.XLineNumberingProperties;
+
+/**
+ * Testing <code>com.sun.star.text.XLineNumberingProperties</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getLineNumberingProperties()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XLineNumberingProperties
+ */
+public class _XLineNumberingProperties extends MultiMethodTest {
+
+ public XLineNumberingProperties oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getLineNumberingProperties() {
+
+ XPropertySet getting = oObj.getLineNumberingProperties();
+ tRes.tested("getLineNumberingProperties()",getting != null);
+ }
+
+} // finish class _XLineNumberingProperties
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XMailMergeBroadcaster.java b/qadevOOo/tests/java/ifc/text/_XMailMergeBroadcaster.java
new file mode 100644
index 000000000..5ac586b43
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XMailMergeBroadcaster.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.task.XJob;
+import com.sun.star.text.MailMergeEvent;
+import com.sun.star.text.XMailMergeBroadcaster;
+import com.sun.star.text.XMailMergeListener;
+
+/**
+* Testing <code>com.sun.star.text.XMailMergeBroadcaster</code>
+* interface methods:
+* <ul>
+* <li><code> addMailMergeEventListener() </code></li>
+* <li><code> removeMailMergeEventListener() </code></li>
+* </ul><p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'Job'</code> (of type <code>XJob</code>):
+* used to fire MailMergeEvent</li>
+* <li> <code>'executeArgs'</code> (of type <code>NamedValue[]</code>):
+* used as parameter for <code>'Job'</code> </li>
+* </ul> <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.text.XMailMergeBroadcaster
+*/
+public class _XMailMergeBroadcaster extends MultiMethodTest {
+ public static XMailMergeBroadcaster oObj = null;
+ protected boolean changed = false;
+
+
+ /**
+ * Class we need to test methods
+ */
+ protected class MyMailMergeEventListener implements XMailMergeListener {
+ public void notifyMailMergeEvent ( MailMergeEvent oEvent ) {
+ System.out.println("Listener called");
+ changed = true;
+ }
+ }
+
+ protected XMailMergeListener listener = new MyMailMergeEventListener();
+
+ /**
+ * Tries to query the tested component for object relation
+ * <code>executeArgs</code> [<code>NamedValue</code>] and <code>Job</code>
+ * [<code>XJob</code>]
+ * @throw StatusException If relations are not found
+ */
+ @Override
+ public void before() {
+ NamedValue[] executeArgs = (NamedValue[]) tEnv.getObjRelation("executeArgs") ;
+ if (executeArgs == null)
+ throw new StatusException(Status.failed
+ ("'executeArgs' relation not found ")) ;
+ XJob Job = (XJob) tEnv.getObjRelation("Job") ;
+ if (Job == null)
+ throw new StatusException(Status.failed
+ ("'Job' relation not found ")) ;
+ }
+
+ /**
+ * Test executes mail merge process<p>
+ * Has <b> OK </b> status if listener was called
+ */
+ public void _addMailMergeEventListener() {
+ log.println("Testing addMailMergeEventListener ...");
+
+ oObj.addMailMergeEventListener( listener );
+
+ NamedValue[] executeArgs = (NamedValue[]) tEnv.getObjRelation("executeArgs");
+ XJob Job = (XJob) tEnv.getObjRelation("Job");
+
+ try {
+ Job.execute(executeArgs);
+ } catch ( com.sun.star.lang.IllegalArgumentException e) {
+ throw new StatusException(Status.failed
+ ("'could not fire event: " + e)) ;
+ } catch ( com.sun.star.uno.Exception e) {
+ throw new StatusException(Status.failed
+ ("'could not fire event: " + e)) ;
+ }
+
+ tRes.tested("addMailMergeEventListener()", changed);
+ }
+
+ /**
+ * Test executes mail merge process<p>
+ * Has <b> OK </b> status if listener was not called
+ */
+ public void _removeMailMergeEventListener() {
+ log.println("Testing removeMailMergeEventListener ...");
+ requiredMethod("addMailMergeEventListener()");
+ changed = false;
+
+ oObj.removeMailMergeEventListener( listener );
+
+ NamedValue[] executeArgs = (NamedValue[]) tEnv.getObjRelation("executeArgs");
+ XJob Job = (XJob) tEnv.getObjRelation("Job");
+
+ try {
+ Job.execute(executeArgs);
+ } catch ( com.sun.star.lang.IllegalArgumentException e) {
+ throw new StatusException(Status.failed
+ ("'could not fire event: " + e)) ;
+ } catch ( com.sun.star.uno.Exception e) {
+ throw new StatusException(Status.failed
+ ("'could not fire event: " + e)) ;
+ }
+
+ waitForEventIdle();
+
+ tRes.tested("removeMailMergeEventListener()", !changed);
+ }
+
+
+} // finished class _XMailMergeBroadcaster
+
diff --git a/qadevOOo/tests/java/ifc/text/_XPageCursor.java b/qadevOOo/tests/java/ifc/text/_XPageCursor.java
new file mode 100644
index 000000000..6fdcd8bb3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XPageCursor.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XPageCursor;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+
+
+/**
+ * Testing <code>com.sun.star.text.XPageCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> jumpToFirstPage()</code></li>
+ * <li><code> jumpToLastPage()</code></li>
+ * <li><code> jumpToPage()</code></li>
+ * <li><code> getPage()</code></li>
+ * <li><code> jumpToNextPage()</code></li>
+ * <li><code> jumpToPreviousPage()</code></li>
+ * <li><code> jumpToEndOfPage()</code></li>
+ * <li><code> jumpToStartOfPage()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'TEXTDOC'</code> (of type <code>XTextDocument</code>):
+ * is used to insert text to document to fill at least two pages. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XPageCursor
+ */
+public class _XPageCursor extends MultiMethodTest {
+
+ public XPageCursor oObj = null; // oObj filled by MultiMethodTest
+ short count = 0;
+
+ /**
+ * First adds text to the document using relation to fill at least two
+ * pages. Then obtains the number of current page. <p>
+ *
+ * Has <b>OK</b> status if the returned value is positive.
+ */
+ public void _getPage(){
+ log.println( "test for getPage()" );
+ XTextDocument myText = (XTextDocument)tEnv.getObjRelation( "TEXTDOC" );
+ XText aText = myText.getText();
+ XTextCursor myCursor = aText.createTextCursor();
+
+ try{
+ for (int i = 0; i < 10; i++){
+ for (int j = 0; j < 20; j++){
+ aText.insertString(myCursor, "The quick brown fox ",false);
+ aText.insertString(myCursor, "jumps over the lazy dog ",
+ false);
+ }
+ aText.insertControlCharacter(myCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ }
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println( "Exception :" );
+ e.printStackTrace(log);
+ }
+
+ count = oObj.getPage();
+ tRes.tested("getPage()", count > 0 );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToEndOfPage(){
+ log.println( "test for jumpToEndOfPage()" );
+ tRes.tested("jumpToEndOfPage()", oObj.jumpToEndOfPage());
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToFirstPage(){
+ log.println( "test for jumpToFirstPage()" );
+ tRes.tested("jumpToFirstPage()", oObj.jumpToFirstPage());
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToLastPage(){
+ log.println( "test for jumpToLastPage()" );
+ tRes.tested("jumpToLastPage()", oObj.jumpToLastPage());
+ }
+
+ /**
+ * First jumps to the first page to have at least one
+ * next page, then call the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToNextPage(){
+ oObj.jumpToFirstPage() ;
+ log.println( "test for jumpToNextPage()" );
+ tRes.tested("jumpToNextPage()", oObj.jumpToNextPage());
+ }
+
+ /**
+ * Tries to jump to the page with number 1. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToPage(){
+ short n = 1;
+ log.println( "test for jumpToPage()" );
+ tRes.tested("jumpToPage()", oObj.jumpToPage(n));
+ }
+
+ /**
+ * First jumps to the last page to have at least one
+ * previous page, then call the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToPreviousPage(){
+ log.println( "test for jumpToPreviousPage()" );
+ oObj.jumpToLastPage();
+ tRes.tested("jumpToPreviousPage()", oObj.jumpToPreviousPage());
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _jumpToStartOfPage(){
+ log.println( "test for jumpToStartOfPage()" );
+ tRes.tested("jumpToStartOfPage()", oObj.jumpToStartOfPage());
+ }
+} // finish class _XPageCursor
+
diff --git a/qadevOOo/tests/java/ifc/text/_XPagePrintable.java b/qadevOOo/tests/java/ifc/text/_XPagePrintable.java
new file mode 100644
index 000000000..5b1f69978
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XPagePrintable.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XPagePrintable;
+
+/**
+ * Testing <code>com.sun.star.text.XPagePrintable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getPagePrintSettings()</code></li>
+ * <li><code> setPagePrintSettings()</code></li>
+ * <li><code> printPages()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XPagePrintable
+ */
+public class _XPagePrintable extends MultiMethodTest {
+
+ public static XPagePrintable oObj = null;
+ public PropertyValue[] PrintSettings = new PropertyValue[0];
+
+ /**
+ * Types of print settings properties by order they returned by
+ * <code>getPagePrintSettings()</code>.
+ */
+ public String[] types = new String[]{"Short","Short","Integer","Integer",
+ "Integer","Integer","Integer","Integer","Boolean"};
+
+ /**
+ * Calls the method and examines the returned array of properties. <p>
+ *
+ * Has <b>OK</b> status if all properties' types are correspond
+ * to their expected values of the <code>types</code> array.
+ *
+ * @see #types
+ */
+ public void _getPagePrintSettings() {
+ boolean res = true;
+ PrintSettings = oObj.getPagePrintSettings();
+
+ for (int i=0;i<PrintSettings.length;i++) {
+ String the_type = PrintSettings[i].Value.getClass().toString();
+ if (!the_type.endsWith(types[i])) {
+ log.println("Name: "+PrintSettings[i].Name);
+ log.println("Value: "+PrintSettings[i].Value);
+ log.println("Type"+the_type);
+ log.println("Expected: java.lang."+types[i]);
+ res = false;
+ }
+ }
+
+ tRes.tested("getPagePrintSettings()",res);
+ }
+
+ /**
+ * Changes a property 'IsLandscape' in existing print settings,
+ * and sets these settings back. <p>
+ *
+ * Has <b>OK</b> status if settings gotten again has the changed
+ * 'IsLandscape' property value. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPagePrintSettings() </code> : to have existing
+ * print settings. </li>
+ * </ul>
+ */
+ public void _setPagePrintSettings() {
+ requiredMethod("getPagePrintSettings()");
+ boolean res = true;
+
+ Boolean landscape = (Boolean) PrintSettings[8].Value;
+ Boolean newlandscape = Boolean.valueOf(!landscape.booleanValue());
+ PrintSettings[8].Value = newlandscape;
+ oObj.setPagePrintSettings(PrintSettings);
+ res = oObj.getPagePrintSettings()[8].Value.equals(newlandscape);
+
+ tRes.tested("setPagePrintSettings()",res);
+ }
+
+ /**
+ * Creates print options for printing into file situated in the SOffice
+ * temporary directory. If the file already exists it is deleted.
+ * Then calls the method. <p>
+ *
+ * Has <b>OK</b> status if the file to which printing must be performed
+ * is exists.
+ */
+ public void _printPages() throws Exception {
+ boolean res = true;
+
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ String printFile = utils.getOfficeTemp(xMSF) + "XPagePrintable.prt";
+ log.println("Printing to : "+ printFile);
+
+ PropertyValue[] PrintOptions = new PropertyValue[1];
+ PropertyValue firstProp = new PropertyValue();
+ firstProp.Name = "FileName";
+
+ firstProp.Value = printFile;
+ firstProp.State = com.sun.star.beans.PropertyState.DEFAULT_VALUE;
+ PrintOptions[0] = firstProp;
+
+ if (! util.utils.deleteFile(xMSF, printFile)){
+ log.println("ERROR: could not remove '" + printFile + "'");
+ res = false;
+ }
+
+ oObj.printPages(PrintOptions);
+
+ waitForEventIdle();
+
+ if (! util.utils.fileExists(xMSF, printFile)){
+ log.println("ERROR: could not find '" + printFile + "'");
+ res = false;
+ }
+
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception while checking 'printPages'");
+ res = false;
+ ex.printStackTrace(log);
+ }
+
+ tRes.tested("printPages()",res);
+ }
+
+} // finish class _XPagePrintable
+
diff --git a/qadevOOo/tests/java/ifc/text/_XParagraphCursor.java b/qadevOOo/tests/java/ifc/text/_XParagraphCursor.java
new file mode 100644
index 000000000..1aa58a300
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XParagraphCursor.java
@@ -0,0 +1,128 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import com.sun.star.text.XParagraphCursor;
+
+/**
+ * Testing <code>com.sun.star.text.XParagraphCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> isStartOfParagraph()</code></li>
+ * <li><code> isEndOfParagraph()</code></li>
+ * <li><code> gotoStartOfParagraph()</code></li>
+ * <li><code> gotoEndOfParagraph()</code></li>
+ * <li><code> gotoNextParagraph()</code></li>
+ * <li><code> gotoPreviousParagraph()</code></li>
+ * </ul> <p>
+ *
+ * <b>Prerequisites :</b> the text must have at least
+ * two paragraphs. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XParagraphCursor
+ */
+public class _XParagraphCursor extends MultiMethodTest {
+
+ public XParagraphCursor oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _gotoEndOfParagraph(){
+ log.println( "test for gotoEndOfParagraph()" );
+ if (oObj.isEndOfParagraph()) log.println("This is the end of the paragraph");
+ else log.println("This isn't the end of the paragraph");
+ log.println("gotoEndOfParagraph()");
+ boolean result = oObj.gotoEndOfParagraph(false);
+ tRes.tested("gotoEndOfParagraph()", result );
+ if (oObj.isEndOfParagraph()) log.println("This is the end of the paragraph");
+ else log.println("This isn't the end of the paragraph");
+ if (!result) log.println("But 'gotoEndOfParagraph()' returns false");
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code>gotoPreviousParagraph()</code> : to be sure next paragraph
+ * exists. </li>
+ * </ul>
+ */
+ public void _gotoNextParagraph(){
+ requiredMethod( "gotoPreviousParagraph()" );
+ log.println( "test for gotoNextParagraph()" );
+ tRes.tested("gotoNextParagraph()", oObj.gotoNextParagraph(false) );
+ }
+
+ /**
+ * First moves the cursor to the next paragraph to be sure
+ * that previous paragraph exists and then calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _gotoPreviousParagraph(){
+ //requiredMethod( "gotoNextParagraph()" );
+ oObj.gotoNextParagraph(false);
+ log.println( "test for gotoPreviousParagraph()" );
+ tRes.tested("gotoPreviousParagraph()", oObj.gotoPreviousParagraph(false) );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _gotoStartOfParagraph(){
+ log.println( "test for gotoStartOfParagraph()" );
+ tRes.tested("gotoStartOfParagraph()", oObj.gotoStartOfParagraph(false) );
+ }
+
+ /**
+ * Moves the cursor to the end of paragraph then check if it is
+ * at the end. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _isEndOfParagraph(){
+ oObj.gotoEndOfParagraph(false);
+ log.println( "test for isEndOfParagraph()" );
+ tRes.tested("isEndOfParagraph()", oObj.isEndOfParagraph() );
+ }
+
+ /**
+ * Moves the cursor to the start of paragraph then check if it is
+ * at the start. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value.
+ */
+ public void _isStartOfParagraph(){
+ oObj.gotoStartOfParagraph(false);
+ log.println( "test for isStartOfParagraph()" );
+ tRes.tested("isStartOfParagraph()", oObj.isStartOfParagraph() );
+ }
+
+ } // finish class _XParagraphCursor
+
diff --git a/qadevOOo/tests/java/ifc/text/_XReferenceMarksSupplier.java b/qadevOOo/tests/java/ifc/text/_XReferenceMarksSupplier.java
new file mode 100644
index 000000000..409155f7d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XReferenceMarksSupplier.java
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XReferenceMarksSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XReferenceMarksSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getReferenceMarks()</code></li>
+ * </ul> <p>
+ *
+ * <b>Prerequisites: </b> the reference mark collection
+ * must contain an element named 'SwXTextDocument' <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XReferenceMarksSupplier
+ */
+public class _XReferenceMarksSupplier extends MultiMethodTest {
+
+ public static XReferenceMarksSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if there is an element
+ * named 'SwXTextDocument' in the returned collection.
+ */
+ public void _getReferenceMarks() {
+ boolean res = false;
+ XNameAccess the_marks = oObj.getReferenceMarks();
+ res = the_marks.hasByName("SwXTextDocument");
+ tRes.tested("getReferenceMarks()",res);
+ }
+
+} // finish class _XReferenceMarksSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XRelativeTextContentInsert.java b/qadevOOo/tests/java/ifc/text/_XRelativeTextContentInsert.java
new file mode 100644
index 000000000..af6995662
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XRelativeTextContentInsert.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import util.XInstCreator;
+
+import com.sun.star.text.XRelativeTextContentInsert;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Testing <code>com.sun.star.text.XRelativeTextContentInsert</code>
+ * interface methods :
+ * <ul>
+ * <li><code> insertTextContentBefore()</code></li>
+ * <li><code> insertTextContentAfter()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'PARA'</code> (of type <code>XInstCreator</code>):
+ * the creator which can create instances of
+ * <code>com.sun.star.text.Paragraph</code> service. </li>
+ * <li> <code>'XTEXTINFO'</code> (of type <code>XInstCreator</code>):
+ * the creator which can create instances of some text content
+ * service (objects which implement <code>XTextContent</code>).
+ * </li>
+ * <ul> <p>
+ *
+ * Tested component <b>must implement</b> <code>XText</code>
+ * interface for proper testing. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XRelativeTextContentInsert
+ */
+public class _XRelativeTextContentInsert extends MultiMethodTest {
+
+ public XRelativeTextContentInsert oObj = null;
+ public XTextContent content = null;
+
+ /**
+ * First an instance of <code>Paragraph</code> service created
+ * using relation and inserted into text. Then an instance
+ * of text content is created and inserted after the paragraph. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred.
+ */
+ public void _insertTextContentAfter() {
+
+ try {
+ XInstCreator para = (XInstCreator)tEnv.getObjRelation( "PARA" );
+ XInterface oInt = para.createInstance();
+ XTextContent new_content = (XTextContent) oInt;
+ XText theText = UnoRuntime.queryInterface(XText.class,oObj);
+ XTextCursor oCursor = theText.createTextCursor();
+ XInstCreator info = (XInstCreator)
+ tEnv.getObjRelation( "XTEXTINFO" );
+ oInt = info.createInstance();
+ content = (XTextContent) oInt;
+ theText.insertTextContent(oCursor, content, false);
+ oObj.insertTextContentAfter(new_content,content);
+ tRes.tested("insertTextContentAfter()",true);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while checking "+
+ "insertTextContentAfter()");
+ ex.printStackTrace(log);
+ tRes.tested("insertTextContentAfter()",false);
+ }
+
+
+ } // end _insertTextContentAfter()
+
+ /**
+ * An instance of text content is created using relation
+ * and inserted before the paragraph which was added into
+ * text in <code>insertTextContentAfter</code> method test. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertTextContentAfter() </code> : here the
+ * <code>Paragraph</code> instance is inserted. </li>
+ * </ul>
+ */
+ public void _insertTextContentBefore() {
+ requiredMethod("insertTextContentAfter()");
+ try {
+ XInstCreator para = (XInstCreator)tEnv.getObjRelation( "PARA" );
+ XInterface oInt = para.createInstance();
+ XTextContent new_content = (XTextContent) oInt;
+ oObj.insertTextContentBefore(new_content,content);
+ tRes.tested("insertTextContentBefore()",true);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred while checking "+
+ "insertTextContentBefore()");
+ ex.printStackTrace(log);
+ tRes.tested("insertTextContentBefore()",false);
+ }
+
+
+ } // end _insertTextContentBefore()
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XSentenceCursor.java b/qadevOOo/tests/java/ifc/text/_XSentenceCursor.java
new file mode 100644
index 000000000..7729f42a6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XSentenceCursor.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XSentenceCursor;
+
+/**
+ * Testing <code>com.sun.star.text.XSentenceCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> isStartOfSentence()</code></li>
+ * <li><code> isEndOfSentence()</code></li>
+ * <li><code> gotoNextSentence()</code></li>
+ * <li><code> gotoPreviousSentence()</code></li>
+ * <li><code> gotoStartOfSentence()</code></li>
+ * <li><code> gotoEndOfSentence()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XSentenceCursor
+ */
+public class _XSentenceCursor extends MultiMethodTest {
+
+ public XSentenceCursor oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * First goes to next sentence (to be sure that previous exists),
+ * then calls the method. <p>
+ *
+ * Has <b>OK</b> status if the method returns <code>true</code>.
+ */
+ public void _gotoPreviousSentence(){
+ oObj.gotoNextSentence(false);
+ oObj.gotoNextSentence(false);
+ tRes.tested("gotoPreviousSentence()", oObj.gotoPreviousSentence(false) );
+ }
+
+ /**
+ * First goes to previous sentence (to be sure that next exists),
+ * then calls the method. <p>
+ *
+ * Has <b>OK</b> status if the method returns <code>true</code>.
+ */
+ public void _gotoNextSentence(){
+ oObj.gotoPreviousSentence(false) ;
+ oObj.gotoPreviousSentence(false) ;
+ tRes.tested("gotoNextSentence()", oObj.gotoNextSentence(false) );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> gotoPreviousSentence() </code> : to be sure the
+ * cursor is in range of some sentence. </li>
+ * </ul>
+ */
+ public void _gotoEndOfSentence(){
+ requiredMethod( "gotoPreviousSentence()" );
+ tRes.tested("gotoEndOfSentence()", oObj.gotoEndOfSentence(false) );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> gotoPreviousSentence() </code> : to be sure the
+ * cursor is in range of some sentence. </li>
+ * </ul>
+ */
+ public void _gotoStartOfSentence(){
+ requiredMethod( "gotoPreviousSentence()" );
+ tRes.tested("gotoStartOfSentence()", oObj.gotoStartOfSentence(false) );
+ }
+
+ /**
+ * First moves the cursor to the start of sentence and then calls
+ * the method. <p>
+ *
+ * Has <b>OK</b> status if the method returns <code>true</code>.
+ */
+ public void _isStartOfSentence(){
+ oObj.gotoStartOfSentence(false) ;
+ tRes.tested("isStartOfSentence()", oObj.isStartOfSentence() );
+ }
+
+ /**
+ * First moves the cursor to the end of sentence and then calls
+ * the method. <p>
+ *
+ * Has <b>OK</b> status if the method returns <code>true</code>.
+ */
+ public void _isEndOfSentence(){
+ oObj.gotoEndOfSentence(false) ;
+ tRes.tested("isEndOfSentence()", oObj.isEndOfSentence() );
+ }
+
+ } // finish class _XSentenceCursor
+
diff --git a/qadevOOo/tests/java/ifc/text/_XSimpleText.java b/qadevOOo/tests/java/ifc/text/_XSimpleText.java
new file mode 100644
index 000000000..bd6d6e294
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XSimpleText.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+
+/**
+* Testing <code>com.sun.star.text.XSimpleText</code>
+* interface methods :
+* <ul>
+* <li><code> createTextCursor()</code></li>
+* <li><code> createTextCursorByRange()</code></li>
+* <li><code> insertString()</code></li>
+* <li><code> insertControlCharacter()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.text.XSimpleText
+*/
+public class _XSimpleText extends MultiMethodTest {
+
+ XTextCursor oCursor = null;
+ public XSimpleText oObj = null;
+
+ /**
+ * Creates text cursor. <p>
+ * Has <b> OK </b> status if not null value returned. <p>
+ */
+ public void _createTextCursor() {
+
+ log.println( "Testing createTextCursor()" );
+ oCursor = oObj.createTextCursor();
+ tRes.tested( "createTextCursor()", oCursor != null );
+ }
+
+ /**
+ * Inserts a string at the cursor position.<p>
+ * Has <b> OK </b> status if the whole result string has a string
+ * inserted as its substring. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createTextCursor() </code> : to have a cursor
+ * where text should be inserted. </li>
+ * </ul>
+ */
+ public void _insertString() {
+ requiredMethod("createTextCursor()");
+ log.println( "Testing insertString" );
+ String sStr = getInterfaceName() ;
+ oObj.insertString( oCursor, sStr, false );
+ String gStr = oObj.getText().getString() ;
+
+ tRes.tested( "insertString()", gStr != null &&
+ gStr.indexOf(sStr) >= 0) ;
+ }
+
+ /**
+ * Inserts paragraph break character into text and then checks
+ * if this character is present in the result string. <p>
+ * Has <b> OK </b> status if the result string has
+ * paragraph break character. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createTextCursor </code> : to have a cursor object. </li>
+ * </ul>
+ */
+ public void _insertControlCharacter() {
+ boolean bOK = true;
+
+ requiredMethod("createTextCursor()");
+ log.println( "Testing insertControlCharacter()" );
+ try {
+ oObj.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ oObj.insertControlCharacter( oCursor,
+ ControlCharacter.LINE_BREAK, false);
+ oObj.insertString(oObj.createTextCursor(),"newLine",false);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e ) {
+ // Some exception.FAILED
+ log.println(e.toString());
+ bOK = false;
+ }
+ String gStr = oObj.getString() ;
+
+ tRes.tested( "insertControlCharacter()", bOK && gStr != null &&
+ gStr.indexOf("\n") > -1);
+ }
+
+ /**
+ * Creates another text cursor using existing cursor's range. <p>
+ * Has <b> OK </b> status if not null value returned. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createTextCursor </code> : to have a cursor object. </li>
+ * </ul>
+ */
+ public void _createTextCursorByRange() {
+
+ requiredMethod("createTextCursor()");
+ oCursor.gotoStart(false);
+ log.println( "Testing createTextCursorByRange()" );
+ XTextCursor oTCursor = oObj.createTextCursorByRange(oCursor);
+ tRes.tested("createTextCursorByRange()", oTCursor != null) ;
+ }
+} // finish class _XSimpleText
+
diff --git a/qadevOOo/tests/java/ifc/text/_XText.java b/qadevOOo/tests/java/ifc/text/_XText.java
new file mode 100644
index 000000000..02e2f5742
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XText.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import util.XInstCreator;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.XInterface;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.text.XText</code>
+ * interface methods :
+ * <ul>
+ * <li><code> insertTextContent()</code></li>
+ * <li><code> removeTextContent()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'XTEXTINFO'</code> (of type <code>lib.XInstCreator</code>):
+ * creator which can create instances of <code>XTextContent</code>
+ * implementations. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XText
+ */
+public class _XText extends MultiMethodTest {
+
+ public static XText oObj = null; // oObj filled by MultiMethodTest
+ XTextCursor oCursor = null; // textcursor
+ XInstCreator info = null; // instance creator
+ XInterface oInt = null; // instance to insert and remove
+
+ /**
+ * First an instance of text content is created using relation
+ * and inserted into text. Then the number of contents is checked
+ * using the relation. Second a <code>null</code> content is tried
+ * to insert. <p>
+ *
+ * Has <b> OK </b> status if in the first case after inserting number
+ * of content objects is greater than zero and in the second
+ * case <code>IllegalArgumentException</code> is thrown. <p>
+ */
+ public void _insertTextContent() {
+ boolean result = false;
+ info = (XInstCreator)tEnv.getObjRelation( "XTEXTINFO" );
+ oInt = info.createInstance();
+
+ // write to log what we try next
+ log.println( "test for createTextCursor()" );
+ oCursor = oObj.createTextCursor();
+
+ // write to log what we try next
+ log.println( "test for insertTextContent()" );
+ try {
+ oObj.insertTextContent(oCursor, (XTextContent)oInt, false);
+ }
+ catch( com.sun.star.lang.IllegalArgumentException iaE ){
+ throw new StatusException("Couldn't insert textcontent",iaE);
+ }
+
+ // get indexaccess to the tablecollection
+ XIndexAccess xIA = info.getCollection();
+
+ // this comparison works just because it has to be at least one
+ // table at this point regardless which thread inserted it
+ // there is although the possibility that the first threads call
+ // failed, the second not and comparison happens after second threads
+ // otherwise if something fails it should have thrown an exception
+ //tRes.tested("insertTextContent()", xIA.getCount() > 0 );
+
+ if (xIA != null ) {
+ result = (xIA.getCount()>0);
+ } else {
+ result = true;
+ }
+
+ if (!result) log.println("The TextContent wasn't inserted");
+
+
+ // try to insert an invalid TextContent
+ log.println( "test for insertTextContent" );
+ try {
+ oObj.insertTextContent(oCursor, null, false);
+ log.println("The expected Exception doesn't occurred");
+ result &= false;
+ }
+ catch( com.sun.star.lang.IllegalArgumentException iaE ){
+ // Some exception.FAILED
+ log.println("Expected Exception occurred");
+ String msg = iaE.getMessage();
+ if (msg.equals("")) {
+ log.println("But there is not detailed message");
+ } else {
+ log.println("Detailed message: "+msg);
+ }
+
+ result &= true;
+ }
+
+ tRes.tested("insertTextContent()", result );
+ }
+
+
+ /**
+ * Removes the text content added before. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertTextContent() </code> : inserts the content
+ * to be removed in this test. </li>
+ * </ul>
+ */
+ public void _removeTextContent() {
+
+ // leads to a method which should be called previously
+ requiredMethod( "insertTextContent()" );
+
+ // write to log what we try next
+ log.println( "test for removeTextContent" );
+ try {
+ oObj.removeTextContent( (XTextContent)oInt );
+ }
+ catch( com.sun.star.container.NoSuchElementException nseE ){
+ // Some exception.FAILED
+ log.println(nseE.toString());
+ return;
+ }
+
+ // no exception occurred so it works
+ tRes.tested( "removeTextContent()", true );
+
+ }
+} // finish class _XText
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextColumns.java b/qadevOOo/tests/java/ifc/text/_XTextColumns.java
new file mode 100644
index 000000000..eaf103674
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextColumns.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.TextColumn;
+import com.sun.star.text.XTextColumns;
+
+/**
+ * Testing <code>com.sun.star.text.XTextColumns</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getReferenceValue()</code></li>
+ * <li><code> getColumnCount()</code></li>
+ * <li><code> setColumnCount()</code></li>
+ * <li><code> getColumns()</code></li>
+ * <li><code> setColumns()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextColumns
+ */
+public class _XTextColumns extends MultiMethodTest {
+
+ public XTextColumns oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * positive value.
+ */
+ public void _getColumnCount(){
+
+ short howmuch = oObj.getColumnCount();
+ tRes.tested("getColumnCount()",howmuch >=0);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getColumns(){
+ TextColumn[] cols = oObj.getColumns();
+ tRes.tested("getColumns()",cols != null);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * positive value.
+ */
+ public void _getReferenceValue(){
+
+ int ref = oObj.getReferenceValue();
+ tRes.tested("getReferenceValue()",ref >0);
+ }
+
+ /**
+ * Sets the column count property to some value
+ * then checks it by <code>getColumnCount</code> method. <p>
+ *
+ * Has <b>OK</b> status if set and get values are equal.
+ */
+ public void _setColumnCount(){
+
+ oObj.setColumnCount((short) 3);
+ short howmuch = oObj.getColumnCount();
+ tRes.tested("setColumnCount()",howmuch == 3);
+ }
+
+ /**
+ * Sets columns to some array
+ * then checks it by <code>getColumns</code> method. <p>
+ *
+ * Has <b>OK</b> status if set and get arrays are equal.
+ */
+ public void _setColumns(){
+
+ TextColumn newCol = new TextColumn(5,1,1);
+ TextColumn[] cols = {newCol};
+ oObj.setColumns(cols);
+ TextColumn[] gCols = oObj.getColumns();
+ tRes.tested("setColumns()",util.ValueComparer.equalValue(cols, gCols));
+ }
+
+} // finish class _XTextColumns
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextContent.java b/qadevOOo/tests/java/ifc/text/_XTextContent.java
new file mode 100644
index 000000000..bcb65b806
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextContent.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextRange;
+
+/**
+ * Testing <code>com.sun.star.text.XTextContent</code>
+ * interface methods :
+ * <ul>
+ * <li><code> attach()</code></li>
+ * <li><code> getAnchor()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'CONTENT'</code> <b>optional</b>
+ * (of type <code>XTextContent</code>):
+ * if this relation exists than it is used as the
+ * tested object. </li>
+ * <li> <code>'TEXT'</code> <b>optional</b>
+ * (of type <code>XText</code>):
+ * the relation must be specified if the 'CONTENT'
+ * relation exists. From this relation an anchor
+ * for <code>attach()</code> method is obtained.</li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextContent
+ */
+public class _XTextContent extends MultiMethodTest {
+ public XTextContent oObj = null;
+ public XTextRange oAnchor = null;
+
+ /**
+ * Tries to get the anchor of the text content
+ * an XTextRange is returned. <p>
+ * The test is OK if a not null text range is returned
+ */
+ public void _getAnchor() {
+ log.println("getAnchor()");
+ oAnchor = oObj.getAnchor();
+ tRes.tested("getAnchor()", oAnchor != null ) ;
+
+ } // end getAnchor()
+
+ /**
+ * Tries to attach the text content to the test range
+ * gotten with getAnchor(). If relations are found
+ * then they are used for testing. <p>
+ *
+ * The test is OK if the method works without error.
+ * @see #_getAnchor()
+ */
+ public void _attach() {
+ requiredMethod("getAnchor()");
+ try {
+ XTextContent aContent = (XTextContent) tEnv.getObjRelation("CONTENT");
+ XTextRange aRange = (XTextRange) tEnv.getObjRelation("RANGE");
+
+ if ( aContent !=null) {
+ aContent.attach(aRange);
+ } else {
+ oObj.attach(aRange);
+ }
+ tRes.tested("attach()", true ) ;
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ String noAttach = (String) tEnv.getObjRelation("NoAttach");
+ if (noAttach != null) {
+ log.println("Exception expected for "+noAttach);
+ log.println("This Component doesn't support attach");
+ tRes.tested("attach()",true);
+ } else {
+ ex.printStackTrace(log);
+ tRes.tested("attach()",false);
+ }
+ } catch (com.sun.star.uno.RuntimeException re) {
+ String noAttach = (String) tEnv.getObjRelation("NoAttach");
+ if (noAttach != null) {
+ log.println("Exception expected for "+noAttach);
+ log.println("This Component doesn't support attach");
+ tRes.tested("attach()",true);
+ } else {
+ re.printStackTrace(log);
+ tRes.tested("attach()",false);
+ }
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextCursor.java b/qadevOOo/tests/java/ifc/text/_XTextCursor.java
new file mode 100644
index 000000000..87369a7ec
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextCursor.java
@@ -0,0 +1,235 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XTextCursor;
+
+
+/**
+ * Testing <code>com.sun.star.text.XTextCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> collapseToStart()</code></li>
+ * <li><code> collapseToEnd()</code></li>
+ * <li><code> isCollapsed()</code></li>
+ * <li><code> goLeft()</code></li>
+ * <li><code> goRight()</code></li>
+ * <li><code> gotoStart()</code></li>
+ * <li><code> gotoEnd()</code></li>
+ * <li><code> gotoRange()</code></li>
+ * </ul> <p>
+ *
+ * During this test the component text is changed,
+ * that's why it must be stored before methods' tests,
+ * and restored after. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextCursor
+ */
+public class _XTextCursor extends MultiMethodTest {
+
+ public XTextCursor oObj = null; // oObj filled by MultiMethodTest
+ String oldText = null ;
+
+ /**
+ * Stores component's text.
+ */
+ @Override
+ public void before() {
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+ oldText = oObj.getString() ;
+ }
+
+ /**
+ * First some text is set (for component to has at least some
+ * text), cursor is expanded to the whole text (to be not collapsed),
+ * the <code>collapseToEnd</code> is called. Then current cursor
+ * text is examined. <p>
+ *
+ * Has <b>OK</b> status if the current cursor text is an
+ * empty string.
+ */
+ public void _collapseToEnd(){
+ boolean bCol = false;
+
+ oObj.setString("XTextCursor");
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+ oObj.collapseToEnd();
+ bCol = oObj.getString().equals("");
+ tRes.tested("collapseToEnd()", bCol );
+ }
+
+ /**
+ * First some text is set (for component to has at least some
+ * text), cursor is expanded to the whole text (to be not collapsed),
+ * the <code>collapseToStart</code> is called. Then current cursor
+ * text is examined. <p>
+ *
+ * Has <b>OK</b> status if the current cursor text is an
+ * empty string.
+ */
+ public void _collapseToStart(){
+ boolean bCol = false;
+ oObj.setString("XTextCursor");
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+
+ oObj.collapseToStart();
+ bCol = oObj.getString().equals("");
+ tRes.tested("collapseToStart()", bCol );
+ }
+
+ /**
+ * First the cursor is moved to the end of text (to have a space
+ * for left cursor moving, and moves the cursor left by a number
+ * of characters. <p>
+ *
+ * Has <b>OK</b> status if the method returns <code>true</code>,
+ * and the current cursor string has the same length as number
+ * of characters the cursor was moved by.
+ */
+ public void _goLeft(){
+ boolean bLeft = false;
+ short n = 5;
+
+ oObj.gotoEnd(false);
+ bLeft = oObj.goLeft(n, true);
+ String gStr = oObj.getString() ;
+ log.println("'" + gStr + "'") ;
+ bLeft &= gStr.length() == n ;
+
+ tRes.tested("goLeft()", bLeft );
+ }
+
+ /**
+ * First the cursor is moved to the start of text (to have a space
+ * for right cursor moving, and moves the cursor right by a number
+ * of characters. <p>
+ *
+ * Has <b>OK</b> status if the method returns <code>true</code>,
+ * and the current cursor string has the same length as number
+ * of characters the cursor was moved by.
+ */
+ public void _goRight(){
+ boolean bRight = false;
+ short n = 5;
+
+ oObj.gotoStart(false);
+ bRight = oObj.goRight(n, true);
+
+ String gStr = oObj.getString() ;
+ log.println("'" + gStr + "'") ;
+ bRight &= gStr.length() == n ;
+
+ tRes.tested("goRight()", bRight );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method <code>goRight()</code>
+ * returns <code>false</code> (cursor can't move to the right).
+ */
+ public void _gotoEnd(){
+ boolean bEnd = false;
+ short n = 1;
+
+ oObj.gotoEnd(false);
+ bEnd = !oObj.goRight(n, false) ;
+
+ tRes.tested("gotoEnd()", bEnd );
+ }
+
+ /**
+ * First the whole text is set to a string, and cursor
+ * is moved to the range situated at the start of the
+ * text. <p>
+ *
+ * Has <b>OK</b> status if some characters to the right
+ * of the current cursor position are the beginning of
+ * the text.
+ */
+ public void _gotoRange(){
+ boolean bRange = false;
+
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+ oObj.setString("XTextCursor,XTextCursor");
+ oObj.gotoRange(oObj.getStart(),false);
+ oObj.goRight((short) 5, true);
+ bRange = oObj.getString().equals("XText");
+
+ if (!bRange) log.println("getString() returned '" +
+ oObj.getString() + "'") ;
+
+ tRes.tested("gotoRange()", bRange );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method <code>goLeft()</code>
+ * returns <code>false</code> (cursor can't move to the left).
+ */
+ public void _gotoStart(){
+ boolean bStart = false;
+ short n = 1;
+
+ oObj.gotoStart(false);
+ bStart = !oObj.goLeft(n, false) ;
+
+ tRes.tested("gotoStart()", bStart );
+ }
+
+ /**
+ * First the cursor is moved to start without expanding
+ * (must be collapsed), and then it's expanded to the
+ * whole text (must not be collapsed). <p>
+ *
+ * Has <b>OK</b> status if in the first case method
+ * <code>isCollapsed</code> returns <code>true</code>,
+ * and in the second <code>false</code>
+ */
+ public void _isCollapsed(){
+ boolean bCol = false;
+
+ oObj.gotoStart(false);
+ bCol = oObj.isCollapsed();
+
+ oObj.gotoEnd(true);
+ bCol &= !oObj.isCollapsed() ;
+
+ tRes.tested("isCollapsed()", bCol );
+ }
+
+ /**
+ * Restores the text of the component to the
+ * state it was before this interface test.
+ */
+ @Override
+ public void after() {
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+ oObj.setString(oldText) ;
+ }
+
+} // finish class _XTextCursor
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextDocument.java b/qadevOOo/tests/java/ifc/text/_XTextDocument.java
new file mode 100644
index 000000000..10eb5360a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextDocument.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextDocument;
+
+/**
+ * Testing <code>com.sun.star.text.XTextDocument</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getText()</code></li>
+ * <li><code> reformat()</code></li>
+ * </ul> <p>
+ * Test is multithread compliant. <p>
+ * @see com.sun.star.text.XTextDocument
+ */
+public class _XTextDocument extends MultiMethodTest {
+
+ public XTextDocument oObj = null;
+ public XText myText = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getText(){
+ myText = oObj.getText();
+ tRes.tested("getText()", myText != null );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _reformat(){
+ oObj.reformat();
+ tRes.tested("reformat()", true );
+ }
+
+} // finish class _XTextDocument
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextEmbeddedObjectsSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextEmbeddedObjectsSupplier.java
new file mode 100644
index 000000000..15e5a1482
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextEmbeddedObjectsSupplier.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XTextEmbeddedObjectsSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XTextEmbeddedObjectsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getEmbeddedObjects()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextEmbeddedObjectsSupplier
+ */
+public class _XTextEmbeddedObjectsSupplier extends MultiMethodTest {
+
+ public XTextEmbeddedObjectsSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getEmbeddedObjects(){
+ boolean bResult = false;
+ XNameAccess oNA = oObj.getEmbeddedObjects();
+ bResult = oNA != null ;
+ tRes.tested("getEmbeddedObjects()", bResult );
+ }
+
+ } // finish class _XTextEmbeddedObjectsSupplier
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextField.java b/qadevOOo/tests/java/ifc/text/_XTextField.java
new file mode 100644
index 000000000..826718e34
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextField.java
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XTextField;
+
+/**
+ * Testing <code>com.sun.star.text.XTextField</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getPresentation()</code></li>
+ * </ul> <p>
+ * Test is multithread compliant. <p>
+ * @see com.sun.star.text.XTextField
+ */
+public class _XTextField extends MultiMethodTest{
+ public XTextField oObj = null;
+
+ /**
+ * Calls the method with <code>true</code> and <code>false</code>
+ * parameter. <p>
+ * Has <b>OK</b> status if in both cases not <code>null</code>
+ * value returned.
+ */
+ public void _getPresentation() {
+
+ boolean result = true;
+
+ // begin test here
+ log.println("getting presentetion with bShowCommand flag...");
+ result &= oObj.getPresentation(true) != null;
+ log.println("getting presentetion without bShowCommand flag...");
+ result &= oObj.getPresentation(false) != null;
+
+ tRes.tested( "getPresentation()", result );
+
+ } // end getPresentation()
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextFieldsSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextFieldsSupplier.java
new file mode 100644
index 000000000..e26fefdd6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextFieldsSupplier.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.text.XDependentTextField;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextFieldsSupplier;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+/**
+ *
+ */
+public class _XTextFieldsSupplier extends MultiMethodTest {
+
+ public XTextFieldsSupplier oObj = null; // oObj filled by MultiMethodTest
+ private boolean mDispose = false;
+ private boolean mbCreateFieldMaster = true;
+
+ /**
+ * Insert some text fields into a cell on the sheet, so this interface test
+ * makes sense.
+ */
+ @Override
+ protected void before() {
+ Object o = tEnv.getObjRelation("XTextFieldsSupplier.MAKEENTRY");
+ if (o != null && ((Boolean)o).booleanValue()) {
+ mDispose = true;
+ mbCreateFieldMaster = false;
+ XCell xCell = (XCell)tEnv.getObjRelation("MAKEENTRYINCELL");
+
+ XSpreadsheetDocument xSheetDoc = (XSpreadsheetDocument)tEnv.getObjRelation("SPREADSHEET");
+
+ XText oText = null;
+ XTextContent oContent = null;
+ XInterface aField = null;
+
+ try {
+ // we want to create an instance of ScCellFieldObj.
+ // to do this we must get an MultiServiceFactory.
+
+ XMultiServiceFactory _oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xSheetDoc);
+
+ aField = (XInterface)
+ _oMSF.createInstance("com.sun.star.text.TextField.URL");
+ oContent = UnoRuntime.queryInterface(XTextContent.class, aField);
+
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ String[] services = _oMSF.getAvailableServiceNames();
+ for (int i=0; i<services.length; i++) {
+ if (services[i].startsWith("com.sun.star.text.FieldMaster")) {
+ mbCreateFieldMaster = true;
+ log.println("service " + i + ": " + services[i]);
+ }
+ }
+
+ if (mbCreateFieldMaster) {
+ Object FieldMaster = _oMSF.createInstance("com.sun.star.text.FieldMaster.User");
+ XPropertySet PFieldMaster = UnoRuntime.queryInterface
+ (XPropertySet.class,FieldMaster);
+
+ XDependentTextField xTF = UnoRuntime.queryInterface(XDependentTextField.class,aField);
+
+ PFieldMaster.setPropertyValue("Content","Some content");
+
+ xTF.attachTextFieldMaster(PFieldMaster);
+ }
+
+ oText = UnoRuntime.queryInterface(XText.class, xCell);
+ XTextCursor the_Cursor = oText.createTextCursor();
+
+ oText.insertTextContent(
+ the_Cursor, oContent, true);
+
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred while creating test Object.");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't insert textField.URL", e);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred while creating test Object.");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't insert textField.URL", e);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occurred while creating test Object.");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't insert textField.URL", e);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception occurred while creating test Object.");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't insert textField.URL", e);
+ }
+
+ }
+ }
+
+ public void _getTextFields() {
+ XEnumerationAccess xEnumAccess = oObj.getTextFields();
+ XEnumeration xEnum = xEnumAccess.createEnumeration();
+ while(xEnum != null && xEnum.hasMoreElements()) {
+ try {
+ xEnum.nextElement();
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ setMethodFalse("getTextFields()", e);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ setMethodFalse("getTextFields()", e);
+ }
+ }
+ tRes.tested("getTextFields()", xEnum != null);
+ }
+
+ public void _getTextFieldMasters() {
+ if (mbCreateFieldMaster) {
+ XNameAccess xName = oObj.getTextFieldMasters();
+ util.dbg.printInterfaces(xName);
+ tRes.tested("getTextFieldMasters()", xName != null);
+ }
+ else {
+ log.println("Could not test 'getTextFieldMasters' because no field masters can be created on this object.");
+ tRes.tested("getTextFieldMasters()", true);
+ }
+ }
+
+ /**
+ * Just for convenience: log the exception and set the method false.
+ * @param method The name of the method to set to false.
+ * @param e The Exception that occurred.
+ */
+ private void setMethodFalse(String method, Exception e) {
+ log.println("Exception while executing '" + method + "'");
+ e.printStackTrace(log);
+ tRes.tested(method, false);
+ }
+
+ @Override
+ protected void after() {
+ if (mDispose)
+ disposeEnvironment();
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/text/_XTextFrame.java b/qadevOOo/tests/java/ifc/text/_XTextFrame.java
new file mode 100644
index 000000000..50a782f13
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextFrame.java
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextFrame;
+
+
+/**
+ * Testing <code>com.sun.star.text.XTextFrame</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getText()</code></li>
+ * </ul> <p>
+ *
+ * The frame <b>must contain</b> the text 'The FrameText'
+ * for proper interface testing. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextFrame
+ */
+public class _XTextFrame extends MultiMethodTest {
+
+ public XTextFrame oObj = null;
+
+ /**
+ * Gets the text of the frame. <p>
+ *
+ * Has <b>OK</b> status if the text is equal to 'The FrameText'.
+ */
+ public void _getText() {
+
+ log.println("Testing getText ...");
+ XText oFrameText = oObj.getText();
+ String Content = oFrameText.getString();
+ tRes.tested( "getText()",Content.equals("The FrameText") );
+ }
+
+} // finish class _XTextFrame
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextFramesSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextFramesSupplier.java
new file mode 100644
index 000000000..63fcfaa7d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextFramesSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XTextFramesSupplier;
+import lib.MultiMethodTest;
+
+
+/**
+ * Testing <code>com.sun.star.text.XTextFramesSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getTextFrames()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextFramesSupplier
+ */
+public class _XTextFramesSupplier extends MultiMethodTest {
+
+ public static XTextFramesSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the collection returned has at least
+ * one element.
+ */
+ public void _getTextFrames() {
+ boolean res = false;
+
+ XNameAccess the_frames = oObj.getTextFrames();
+ log.println("Found: ");
+ util.dbg.printArray(the_frames.getElementNames());
+ res = the_frames.getElementNames().length>0;
+
+ tRes.tested("getTextFrames()",res);
+ }
+
+} // finish class _XTextFramesSupplier
diff --git a/qadevOOo/tests/java/ifc/text/_XTextGraphicObjectsSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextGraphicObjectsSupplier.java
new file mode 100644
index 000000000..730f4b5eb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextGraphicObjectsSupplier.java
@@ -0,0 +1,58 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XTextGraphicObjectsSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XTextGraphicObjectsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getGraphicObjects()</code></li>
+ * </ul> <p>
+ *
+ * The component <b>must have</b> the graphic object with
+ * name 'SwXTextDocument'. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextGraphicObjectsSupplier
+ */
+public class _XTextGraphicObjectsSupplier extends MultiMethodTest {
+
+ public static XTextGraphicObjectsSupplier oObj = null;
+
+ /**
+ * Gets graphic objects collection from the component, and checks
+ * if the object with name 'SwXTextDocument' exists. <p>
+ * Has <b>OK</b> status if the object exists.
+ */
+ public void _getGraphicObjects() {
+ boolean res = false;
+
+ XNameAccess the_graphics = oObj.getGraphicObjects();
+ res = the_graphics.hasByName("SwXTextDocument");
+
+ tRes.tested("getGraphicObjects()",res);
+ }
+
+} // finish class _XTextGraphicObjectsSupplier
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextRange.java b/qadevOOo/tests/java/ifc/text/_XTextRange.java
new file mode 100644
index 000000000..033f87000
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextRange.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextRange;
+
+
+/**
+* Testing <code>com.sun.star.text.XTextRange</code>
+* interface methods :
+* <ul>
+* <li><code> getText()</code></li>
+* <li><code> getStart()</code></li>
+* <li><code> getEnd()</code></li>
+* <li><code> getString()</code></li>
+* <li><code> setString()</code></li>
+* </ul> <p>
+* First the content is set to 'Middle' string value, then
+* start range is retrieved and its content is set to 'Start'
+* and end range is set to 'End'. Finally the whole TextRange
+* is checked and it must be 'StartMiddleEnd'. <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.text.XTextRange
+*/
+public class _XTextRange extends MultiMethodTest {
+
+ public XTextRange oObj = null; // oObj is filled by setField()
+ // in MultiMethodTest
+ XTextRange oStartRange = null; // startrange of textrang
+ XTextRange oEndRange = null; // endrange of textrang
+
+ /**
+ * Retrieves the start range and sets its context to
+ * 'Start' string. <p>
+ * Has <b>OK</b> status if the whole range string starts
+ * with 'Start' substring. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setString </code> </li>
+ * </ul>
+ */
+ public void _getStart() {
+
+ XText the_text = (XText) tEnv.getObjRelation("XTEXT");
+
+ if (the_text != null) {
+ the_text.setString("");
+ }
+
+ String exp="";
+
+ oObj.setString("MiddleEnd");
+
+ oStartRange = oObj.getStart();
+ oStartRange.setString("Start");
+
+ if (the_text !=null) {
+ exp = the_text.getString();
+ } else exp = oObj.getText().getString();
+
+ log.println("Start: "+exp);
+
+ tRes.tested( "getStart()", exp.startsWith("Start"));
+
+ oStartRange.setString("");
+
+ }
+
+ /**
+ * Retrieves the end range and sets its context to
+ * 'End' string. <p>
+ * Has <b>OK</b> status if the whole range string ends
+ * with 'End' substring. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setString </code> </li>
+ * </ul>
+ */
+ public void _getEnd() {
+ XText the_text = (XText) tEnv.getObjRelation("XTEXT");
+
+ if (the_text != null) {
+ the_text.setString("");
+ }
+
+ String exp="";
+ oObj.setString("StartMiddle");
+
+ oEndRange = oObj.getEnd();
+ oEndRange.setString("End");
+
+ if (the_text !=null) {
+ exp = the_text.getString();
+ } else exp = oObj.getText().getString();
+
+ log.println("End: "+exp);
+
+ tRes.tested( "getEnd()", exp.endsWith("End"));
+
+ oEndRange.setString("");
+ }
+
+ /**
+ * Gets the text of the range and retrieves its String content. <p>
+ * Has <b>OK</b> status if the string returned equals to
+ * 'StartMiddleEnd' value. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setString </code> to get finally the string expected.</li>
+ * <li> <code> getStart </code> to get finally the string expected.</li>
+ * <li> <code> getEnd </code> to get finally the string expected.</li>
+ * </ul>
+ */
+ public void _getText() {
+ requiredMethod("setString()");
+ requiredMethod("getStart()");
+ requiredMethod("getEnd()");
+
+ XText txt = oObj.getText() ;
+
+ tRes.tested( "getText()", txt != null &&
+ txt.getString().equals("StartMiddle"));
+ }
+
+ /**
+ * Gets the String of the range. <p>
+ * Has <b>OK</b> status if the string returned equals to
+ * 'StartMiddleEnd' value. <p>
+ */
+ public void _getString() {
+
+ oObj.setString("StartMiddleEnd");
+ String gStr = oObj.getString() ;
+
+ tRes.tested( "getString()", gStr != null &&
+ gStr.equals("StartMiddleEnd"));
+
+ }
+
+ /**
+ * Sets the string content of the range to 'Middle' value. <p>
+ * Has <b>OK</b> status if <code>getString</code> method returns
+ * 'Middle' value.
+ */
+ public void _setString() {
+ oObj.setString("Middle") ;
+
+ tRes.tested("setString()", "Middle".equals(oObj.getString())) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextRangeCompare.java b/qadevOOo/tests/java/ifc/text/_XTextRangeCompare.java
new file mode 100644
index 000000000..47d389c9a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextRangeCompare.java
@@ -0,0 +1,174 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRangeCompare;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Testing <code>com.sun.star.text.XTextRangeCompare</code>
+ * interface methods :
+ * <ul>
+ * <li><code> compareRegionStarts()</code></li>
+ * <li><code> compareRegionEnds()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'TEXTDOC'</code> <b>optional</b>
+ * (must implement <code>XTextDocument</code>):
+ * can be used to obtain <code>Text</code> of the document from
+ * which cursors can be created.
+ * If the relation does not exist, the relation <code>TEXT</code>
+ * must be specified. </li>
+ * <li> <code>'TEXT'</code> <b>optional</b>
+ * (of type <code>XText</code>):
+ * used to create text cursor.
+ * If the relation does not exist, the relation <code>TEXTDOC</code>
+ * must be specified. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextRangeCompare
+ */
+public class _XTextRangeCompare extends MultiMethodTest {
+
+ /**
+ * the test object
+ */
+ public XTextRangeCompare oObj = null;
+ String nameStr = null;
+ XTextCursor cursor1 = null;
+ XTextCursor cursor2 = null;
+ XText oText = null;
+
+ /**
+ * Retrieves <code>XText</code> interface from relation 'TEXTDOC'
+ * or from 'TEXT'.
+ * @throws StatusException If neither 'TEXTDOC' nor 'TEXT'
+ * relation exists.
+ */
+ @Override
+ public void before() {
+ nameStr = this.getClass().getName();
+
+ XInterface oIfc = (XInterface)tEnv.getObjRelation("TEXTDOC");
+ if (oIfc!=null) {
+ XTextDocument oTDoc = UnoRuntime.queryInterface(
+ XTextDocument.class, oIfc);
+ oText = oTDoc.getText();
+ }
+ XText aText = (XText) tEnv.getObjRelation("TEXT");
+ if (aText != null) {
+ oText = aText;
+ }
+
+ if (oText == null) {
+ throw new StatusException(Status.failed
+ ("Neither 'TEXTDOC' nor 'TEXT' relation not found")) ;
+ }
+ }
+
+ /**
+ * One cursor is created and to its position a paragraph
+ * inserted, then the first five characters were selected.
+ * A second cursor was created and the last 7 characters
+ * were selected.<p>
+ *
+ * Has <b>OK</b> status if the compare returns 1, i.e.
+ * the second cursor end is before the first.
+ */
+ public void _compareRegionEnds() {
+ boolean bResult = false;
+ short n = 0;
+ log.println( "testing compareRegionEnds()" );
+
+ try{
+ cursor1 = oText.createTextCursor();
+ oText.insertString(cursor1, nameStr, false);
+
+ cursor1.gotoStart(false);
+ cursor1.goRight((short)5, true);
+ cursor2 = oText.createTextCursor();
+ cursor2.gotoEnd(false);
+ cursor2.goLeft((short)7, true);
+
+ log.println("hole text: '" + oText.getString() + "'");
+ log.println("cursor1: '"+cursor1.getString() + "'");
+ log.println("cursor2: '"+cursor2.getString() + "'");
+ log.println("check: oObj.compareRegionStarts(cursor1, cursor2)");
+
+ n = oObj.compareRegionEnds(cursor1, cursor2);
+
+ log.println( "Result (short) : " + n );
+ }catch(com.sun.star.lang.IllegalArgumentException e){
+ log.println( "Exception: " + e);
+ e.printStackTrace(log);
+ }
+
+ if (n == 1){bResult = true;}
+ tRes.tested( "compareRegionEnds()", bResult );
+ }
+
+ /**
+ * One cursor is created and to its position a paragraph
+ * inserted, then the first five characters were selected.
+ * A second cursor was created and the last 7 characters
+ * were selected.<p>
+ *
+ * Has <b>OK</b> status if the compare returns 1, i.e.
+ * the second cursor start is before the first.
+ */
+ public void _compareRegionStarts() {
+ boolean bResult = false;
+ short n = 0;
+
+ try{
+ cursor1 = oText.createTextCursor();
+ oText.insertString(cursor1, nameStr, false);
+
+ cursor1.gotoStart(false);
+ cursor1.goRight((short)5, true);
+ cursor2 = oText.createTextCursor();
+ cursor2.gotoEnd(false);
+ cursor2.goLeft((short)7, true);
+
+ log.println("hole text: '" + oText.getString() + "'");
+ log.println("cursor1: '"+cursor1.getString() + "'");
+ log.println("cursor2: '"+cursor2.getString() + "'");
+ log.println("check: oObj.compareRegionStarts(cursor1, cursor2)");
+ n = oObj.compareRegionStarts(cursor1, cursor2);
+
+ log.println( "Result (short) : " + n );
+ }catch(com.sun.star.lang.IllegalArgumentException e){
+ log.println( "Exception: " + e);
+ e.printStackTrace(log);
+ }
+ if (n == 1){bResult = true;}
+ tRes.tested( "compareRegionStarts()", bResult );
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextRangeMover.java b/qadevOOo/tests/java/ifc/text/_XTextRangeMover.java
new file mode 100644
index 000000000..affdb6ce8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextRangeMover.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.text.XTextRange;
+import com.sun.star.text.XTextRangeMover;
+
+/**
+ * Testing <code>com.sun.star.text.XTextRangeMover</code>
+ * interface methods :
+ * <ul>
+ * <li><code> moveTextRange()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'RangeForMove'</code> (of type <code>XTextRange</code>):
+ * the range to be moved. </li>
+ * <li> <code>'XTextRange'</code> (of type <code>XTextRange</code>):
+ * the range that includes moving range. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextRangeMover
+ */
+public class _XTextRangeMover extends MultiMethodTest {
+
+ public XTextRangeMover oObj = null;
+
+ XTextRange xTextRange = null;
+ XTextRange oMoveRange = null;
+
+ /**
+ * Moves the range obtained from relation 'RangeForMove' by 1 paragraph
+ * and compares index of moved string in the whole text obtained
+ * from relation 'XTextRange'. <p>
+ * Has <b>OK</b> status if index of moved range is changed after method call.
+ */
+ public void _moveTextRange(){
+ oMoveRange = (XTextRange) tEnv.getObjRelation("RangeForMove");
+ xTextRange = (XTextRange) tEnv.getObjRelation("XTextRange");
+
+ if (oMoveRange == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get relation 'RangeForMove'"));
+ }
+
+ if (xTextRange == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get relation 'XTextRange'"));
+ }
+
+ log.println("Content before moving:");
+ log.println(xTextRange.getString());
+ log.println("Text range for moving:");
+ log.println(oMoveRange.getString());
+ int indexBefore = xTextRange.getString().indexOf(oMoveRange.getString());
+ oObj.moveTextRange(oMoveRange,(short) 1);
+ log.println("Content after moving:");
+ log.println(xTextRange.getString());
+ int indexAfter = xTextRange.getString().indexOf(oMoveRange.getString());
+
+ boolean res = indexBefore != indexAfter;
+ log.println("Index before moving:" + indexBefore);
+ log.println("Index after moving:" + indexAfter);
+
+ tRes.tested("moveTextRange()", res);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextSection.java b/qadevOOo/tests/java/ifc/text/_XTextSection.java
new file mode 100644
index 000000000..9aeb70c14
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextSection.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XTextSection;
+
+/**
+ * Testing <code>com.sun.star.text.XTextSection</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getParentSection()</code></li>
+ * <li><code> getChildSections()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextSection
+ */
+public class _XTextSection extends MultiMethodTest {
+
+ public static XTextSection oObj = null;
+ public XTextSection child = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns non zero length array.
+ */
+ public void _getChildSections(){
+ boolean bResult = false;
+ XTextSection oSect[] = oObj.getChildSections();
+ if (oSect.length > 0){
+ bResult = true;
+ child = oSect[0];
+ }
+ tRes.tested("getChildSections()", bResult);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getParentSection(){
+ requiredMethod("getChildSections()");
+ boolean bResult = false;
+ bResult = (child.getParentSection() != null);
+ tRes.tested("getParentSection()", bResult);
+ }
+
+
+} // finish class _XTextSection
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextSectionsSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextSectionsSupplier.java
new file mode 100644
index 000000000..38b31ad12
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextSectionsSupplier.java
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XTextSectionsSupplier;
+
+
+public class _XTextSectionsSupplier extends MultiMethodTest {
+ public XTextSectionsSupplier oObj;
+
+ public void _getTextSections() {
+ XNameAccess sections = oObj.getTextSections();
+ boolean res = checkSections(sections);
+ tRes.tested("getTextSections()", res);
+ }
+
+ protected boolean checkSections(XNameAccess sections) {
+ String[] sNames = sections.getElementNames();
+ boolean res = true;
+
+ for (int k = 0; k < sNames.length; k++) {
+ try {
+ res &= sections.hasByName(sNames[k]);
+ res &= (sections.getByName(sNames[k]) != null);
+ log.println("Works for ... " + sNames[k]);
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("positive test failed " + e.getMessage());
+ res = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("positive test failed " + e.getMessage());
+ res = false;
+ }
+ }
+
+ try {
+ sections.getByName("unknown");
+ log.println("negative test failed ... no Exception thrown");
+ res = false;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("expected Exception for wrong argument ... OK");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("negative test failed ... wrong Exception thrown");
+ res = false;
+ }
+
+ return res;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/text/_XTextTable.java b/qadevOOo/tests/java/ifc/text/_XTextTable.java
new file mode 100644
index 000000000..93ac5a9d9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextTable.java
@@ -0,0 +1,173 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.text.XTextTable;
+
+/**
+ * Testing <code>com.sun.star.text.XTextTable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> initialize()</code></li>
+ * <li><code> getRows()</code></li>
+ * <li><code> getColumns()</code></li>
+ * <li><code> getCellByName()</code></li>
+ * <li><code> getCellNames()</code></li>
+ * <li><code> createCursorByCellName()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'NROW'</code> : the number of rows in table
+ * </li>
+ * <li> <code>'NCOL'</code> : the number of columns in table
+ * </li>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XTextTable
+ */
+public class _XTextTable extends MultiMethodTest {
+
+ public XTextTable oObj = null; // oObj filled by MultiMethodTest
+ int nRow;
+ int nCol;
+
+ String cellNamesList[] = null ;
+
+ @Override
+ protected void before() {
+ Integer num_row = (Integer)tEnv.getObjRelation("NROW");
+ if (num_row == null) {
+ throw new StatusException
+ (Status.failed("Couldn't get relation 'NROW'"));
+ }
+ Integer num_col = (Integer)tEnv.getObjRelation("NCOL");
+ if (num_col == null) {
+ throw new StatusException
+ (Status.failed("Couldn't get relation 'NCOL'"));
+ }
+ nRow = num_row.intValue();
+ nCol = num_col.intValue();
+ }
+
+ /**
+ * The method is not called directly here, because it must
+ * be called before being inserted to the document. <p>
+ *
+ * Always has <b> OK </b> status. <p>
+ */
+ public void _initialize() {
+
+ // initialize()
+ log.println( "test for initialize()" );
+ tRes.tested( "initialize()", true);
+ }
+
+ /**
+ * Test calls the method passing as cell name the first
+ * element from names returned by <code>getCellNames</code>
+ * method. <p>
+ *
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getCellNames() </code> : its result used by test. </li>
+ * </ul>
+ */
+ public void _createCursorByCellName(){
+ requiredMethod("getCellNames()") ;
+
+ // createCursorByCellName()
+ log.println( "test for createCursorByCellName()" );
+ tRes.tested( "createCursorByCellName()",
+ oObj.createCursorByCellName( cellNamesList[0] ) != null );
+ }
+
+ /**
+ * Test calls the method passing as cell name the first
+ * element from names returned by <code>getCellNames</code>
+ * method. <p>
+ *
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getCellNames() </code> : its result used by test. </li>
+ * </ul>
+ */
+ public void _getCellByName(){
+ requiredMethod("getCellNames()") ;
+
+ // getCellByName()
+ log.println( "test for getCellByName()" );
+ tRes.tested( "getCellByName()",
+ oObj.getCellByName( cellNamesList[0] ) != null );
+ }
+
+ /**
+ * Obtains cell names of the table. <p>
+ *
+ * Has <b>OK</b> status if number of elements in the returned
+ * array is equal to [row number] * [column number]
+ * and if the first name is 'A1'.
+ */
+ public void _getCellNames(){
+ // getCellNames()
+ log.println( "test for getCellNames()" );
+ cellNamesList = oObj.getCellNames();
+
+ boolean result = cellNamesList.length == ( nRow * nCol ) ;
+ result &= cellNamesList[0].equals( "A1" ) ;
+
+ tRes.tested( "getCellNames()", result ) ;
+ }
+
+ /**
+ * Obtains columns of the table. <p>
+ *
+ * Has <b>OK</b> status if the number of element of returned
+ * collection is equal to real number of columns in the table.
+ */
+ public void _getColumns(){
+ // getColumns()
+ log.println( "test for getColumns()" );
+ tRes.tested( "getColumns()", nCol == oObj.getColumns().getCount() );
+ }
+
+ /**
+ * Obtains rows of the table. <p>
+ *
+ * Has <b>OK</b> status if the number of element of returned
+ * collection is equal to real number of rows in the table.
+ */
+ public void _getRows(){
+ // getRows()
+ log.println( "test for getRows()" );
+ tRes.tested( "getRows()", nRow == oObj.getRows().getCount() );
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextTableCursor.java b/qadevOOo/tests/java/ifc/text/_XTextTableCursor.java
new file mode 100644
index 000000000..ac95453d0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextTableCursor.java
@@ -0,0 +1,283 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XTextTableCursor;
+
+
+/**
+ * Testing <code>com.sun.star.text.XTextTableCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getRangeName()</code></li>
+ * <li><code> gotoCellByName()</code></li>
+ * <li><code> goLeft()</code></li>
+ * <li><code> goRight()</code></li>
+ * <li><code> goUp()</code></li>
+ * <li><code> goDown()</code></li>
+ * <li><code> gotoStart()</code></li>
+ * <li><code> gotoEnd()</code></li>
+ * <li><code> mergeRange()</code></li>
+ * <li><code> splitRange()</code></li>
+ * </ul> <p>
+ *
+ * <b>Prerequisites : </b> the table must have a size
+ * 2x2 and current cursor position must be in the upper
+ * left cell. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ *
+ * After test completion object environment has to be recreated
+ * because after merging and splitting cells their names
+ * differ from initial.
+ *
+ * @see com.sun.star.text.XTextTableCursor
+ */
+public class _XTextTableCursor extends MultiMethodTest {
+
+ public XTextTableCursor oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Moves the cursor to upper-left cell and checks
+ * its range name. <p>
+ *
+ * Has <b>OK</b> status if the name returned is 'A1'.
+ */
+ public void _getRangeName(){
+ log.println( "test for getRangeName()" );
+ oObj.gotoStart(false);
+ String oCellName = oObj.getRangeName();
+ log.println( "CellName = " + oCellName );
+
+ tRes.tested("getRangeName()", oCellName.equals("A1") );
+ }
+
+ /**
+ * Calls the method which moves the cursor down by 1 cell,
+ * after that returns cursor to the old position. <p>
+ *
+ * Has <b>OK</b> status if the method returns
+ * <code>true</code>.
+ */
+ public void _goDown(){
+ boolean bDown = false;
+ log.println( "test for goDown()" );
+ short i = 1;
+
+ bDown = oObj.goDown(i,false);
+
+ tRes.tested("goDown()", bDown );
+ oObj.goUp(i,false);
+ }
+
+ /**
+ * Calls the method which moves the cursor to the right by 1 cell,
+ * after that returns cursor to the old position. <p>
+ *
+ * Has <b>OK</b> status if the method returns
+ * <code>true</code>.
+ */
+ public void _goRight(){
+ boolean bRight = false;
+ log.println( "test for goRight()" );
+ short i = 1;
+
+ bRight = oObj.goRight(i,false);
+
+ tRes.tested("goRight()", bRight );
+ oObj.goLeft(i,false);
+ }
+
+ /**
+ * Calls the method which moves the cursor to the left by 1 cell,
+ * after that returns cursor to the old position. <p>
+ *
+ * Has <b>OK</b> status if the method returns
+ * <code>true</code>.
+ */
+ public void _goLeft(){
+ boolean bLeft = false;
+ log.println( "test for goLeft()" );
+ short i = 1;
+
+ oObj.goRight(i,false);
+ bLeft = oObj.goLeft(i,false);
+
+ tRes.tested("goLeft()", bLeft );
+ }
+
+ /**
+ * Calls the method which moves the cursor up by 1 cell,
+ * after that returns cursor to the old position. <p>
+ *
+ * Has <b>OK</b> status if the method returns
+ * <code>true</code>.
+ */
+ public void _goUp(){
+ boolean bUp = false;
+ log.println( "test for goUp()" );
+ short i = 1;
+
+ oObj.gotoEnd(true);
+
+ bUp = oObj.goUp(i,false);
+ tRes.tested("goUp()", bUp );
+ }
+
+ /**
+ * Moves the cursor to the cell with name 'B1', then
+ * checks the current range name. <p>
+ * Has <b>OK</b> status if the returned range name is
+ * 'B1'.
+ */
+ public void _gotoCellByName(){
+ log.println( "test for gotoCellByName()" );
+
+ oObj.gotoCellByName("B1",false);
+ String oCellName = oObj.getRangeName();
+
+ tRes.tested("gotoCellByName()", oCellName.equals("B1") );
+ }
+
+ /**
+ * Moves cursor to the start (upper-left cell). Then
+ * checks the current range name. <p>
+ *
+ * Has <b>OK</b> status if current range name is 'A1'.
+ */
+ public void _gotoStart(){
+ log.println( "test for gotoStart()" );
+
+ oObj.gotoStart(false);
+ String oCellName = oObj.getRangeName();
+
+ tRes.tested("gotoStart()", oCellName.equals("A1") );
+ }
+
+ /**
+ * Moves cursor to the end (lower-right cell). Then
+ * checks the current range name. <p>
+ *
+ * Has <b>OK</b> status if current range name is 'B2'
+ * (the table is assumed to be of size 2x2).
+ */
+ public void _gotoEnd(){
+ log.println( "test for gotoEnd()" );
+
+ oObj.gotoEnd(false);
+ String oCellName = oObj.getRangeName();
+
+ tRes.tested("gotoEnd()", oCellName.equals("B2") );
+ }
+
+ /**
+ * Selects all cells in the table and merges them.
+ * Finally move the cursor to the end and checks
+ * current range name.<p>
+ *
+ * Has <b>OK</b> status if the end cell has a name
+ * 'A1'.
+ *
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getRangeName(), gotoStart(), gotoEnd()
+ * goLeft(), goRight(), goUp(), goDown(), gotoCellByName()</code>
+ * : these methods must be completed before all cells of the
+ * table are merged into one cell </li>
+ * </ul>
+ */
+ public void _mergeRange(){
+ executeMethod("getRangeName()") ;
+ executeMethod("gotoStart()") ;
+ executeMethod("gotoEnd()") ;
+ executeMethod("goLeft()") ;
+ executeMethod("goRight()") ;
+ executeMethod("goUp()") ;
+ executeMethod("goDown()") ;
+ executeMethod("gotoCellByName()") ;
+
+ boolean bMerge = false;
+ log.println( "test for mergeRange()" );
+
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+ bMerge = oObj.mergeRange();
+
+ oObj.gotoEnd(false);
+
+ String curName = oObj.getRangeName() ;
+ bMerge &= "A1".equals(curName) ;
+
+ tRes.tested("mergeRange()", bMerge );
+ }
+
+ /**
+ * First splits the cell horizontally. Then the end cell
+ * name is checked. Second split all cells vertically and
+ * again the end cell name is checked<p>
+ *
+ * Has <b> OK </b> status if in the first case the end cell name
+ * is not 'A1', and in the second case the end cell name is not
+ * equal to the name gotten in the first case. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> mergeRange() </code> : to have one cell in a table
+ * which this test splits. </li>
+ * </ul>
+ */
+ public void _splitRange(){
+ requiredMethod("mergeRange()") ;
+
+ boolean bSplit = true ;
+ log.println( "test for splitRange" ) ;
+ short i = 1 ;
+
+ bSplit &= oObj.splitRange(i, true) ;
+
+ oObj.gotoEnd(false);
+ String horName = oObj.getRangeName() ;
+ log.println("The end cell after horiz. split : " + horName) ;
+ bSplit &= !"A1".equals(horName) ;
+
+ oObj.gotoStart(false);
+ oObj.gotoEnd(true);
+ bSplit &= oObj.splitRange(i, false) ;
+
+ oObj.gotoEnd(false);
+ String vertName = oObj.getRangeName() ;
+ log.println("The end cell after vert. split : " + vertName) ;
+ bSplit &= !horName.equals(vertName) ;
+
+ tRes.tested("splitRange()", bSplit ) ;
+ }
+
+ /**
+ * Forces object environment recreation.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+ } // finish class _XTextTableCursor
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextTablesSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextTablesSupplier.java
new file mode 100644
index 000000000..c12072d74
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextTablesSupplier.java
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XTextTablesSupplier;
+
+
+/**
+ * Testing <code>com.sun.star.text.XTextTablesSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getTextTables()</code></li>
+ * </ul> <p>
+ * The table collection tested <b>must</b> have a table
+ * with name 'SwXTextDocument'. <p>
+ * Test is multithread compliant. <p>
+ * @see com.sun.star.text.XTextTablesSupplier
+ */
+public class _XTextTablesSupplier extends MultiMethodTest {
+
+ public static XTextTablesSupplier oObj = null;
+
+ /**
+ * Get the collection of tables. Then check it. <p>
+ * Has <b>OK</b> status if returned collection contains
+ * element with name 'SwXTextDocument'.
+ */
+ public void _getTextTables() {
+ boolean res = false;
+
+ XNameAccess the_tables = oObj.getTextTables();
+ res = the_tables.hasByName("SwXTextDocument");
+
+ tRes.tested("getTextTables()",res);
+ }
+
+} // finish class _XTextTablesSupplier
+
diff --git a/qadevOOo/tests/java/ifc/text/_XTextViewCursorSupplier.java b/qadevOOo/tests/java/ifc/text/_XTextViewCursorSupplier.java
new file mode 100644
index 000000000..24a9c9728
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XTextViewCursorSupplier.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XTextViewCursor;
+import com.sun.star.text.XTextViewCursorSupplier;
+
+/**
+ * Testing <code>com.sun.star.text.XTextViewCursorSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getViewCursor()</code></li>
+ * </ul> <p>
+ * Test is multithread compliant. <p>
+ * @see com.sun.star.text.XTextViewCursorSupplier
+ */
+public class _XTextViewCursorSupplier extends MultiMethodTest {
+
+ public XTextViewCursorSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getViewCursor(){
+
+ XTextViewCursor oTVC = oObj.getViewCursor();
+ tRes.tested("getViewCursor()", oTVC != null);
+
+ } // finish _getViewCursor()
+
+} // finish class _XTextViewCursorSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/text/_XWordCursor.java b/qadevOOo/tests/java/ifc/text/_XWordCursor.java
new file mode 100644
index 000000000..47474472a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/text/_XWordCursor.java
@@ -0,0 +1,124 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.text;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.text.XWordCursor;
+
+/**
+ * Testing <code>com.sun.star.text.XWordCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> isStartOfWord()</code></li>
+ * <li><code> isEndOfWord()</code></li>
+ * <li><code> gotoNextWord()</code></li>
+ * <li><code> gotoPreviousWord()</code></li>
+ * <li><code> gotoEndOfWord()</code></li>
+ * <li><code> gotoStartOfWord()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.text.XWordCursor
+ */
+public class _XWordCursor extends MultiMethodTest {
+
+ public XWordCursor oObj = null; // oObj filled by MultiMethodTest
+
+ /**
+ * Moves the cursor to start of the text.
+ */
+ @Override
+ public void before() {
+ oObj.gotoStart(false);
+ }
+
+ /**
+ * First moves the cursor to the next word to be sure that
+ * at least one word is situated before. Then moves cursor
+ * to the previous word and checks the value returned. <p>
+ *
+ * Has <b>OK</b> status if method returns <code>true</code>.
+ */
+ public void _gotoPreviousWord(){
+ oObj.gotoNextWord(false);
+ tRes.tested("gotoPreviousWord()", oObj.gotoPreviousWord(false) );
+ }
+
+ /**
+ * First moves the cursor to the previous word to be sure that
+ * at least one word is situated after. Then moves cursor
+ * to the next word and checks the value returned. <p>
+ *
+ * Has <b>OK</b> status if method returns <code>true</code>.
+ */
+ public void _gotoNextWord(){
+ oObj.gotoPreviousWord(false) ;
+ tRes.tested("gotoNextWord()", oObj.gotoNextWord(false) );
+ }
+
+ /**
+ * First moves the cursor to the start of the current word,
+ * then to the end and checks the value returned. <p>
+ *
+ * Has <b>OK</b> status if method returns <code>true</code>.
+ */
+ public void _gotoEndOfWord(){
+ oObj.gotoStart(false);
+ tRes.tested("gotoEndOfWord()", oObj.gotoEndOfWord(false) );
+ }
+
+ /**
+ * Move cursor to the start, then to the end. After that the
+ * method is called and returned value is checked. <p>
+ * Has <b>OK</b> status if the method returns <code>true</code>.
+ */
+ public void _isEndOfWord(){
+ log.println("gotoStartOfWord() = " + oObj.gotoStartOfWord(false)) ;
+ log.println("gotoEndOfWord() = " + oObj.gotoEndOfWord(false));
+
+ tRes.tested("isEndOfWord()", oObj.isEndOfWord() );
+ }
+
+ /**
+ * Move cursor to the end, then to the start. After that the
+ * method is called and returned value is checked. <p>
+ * Has <b>OK</b> status if the method returns <code>true</code>.
+ */
+ public void _isStartOfWord(){
+
+ oObj.gotoEndOfWord(false);
+ oObj.gotoStartOfWord(false);
+ tRes.tested("isStartOfWord()", oObj.isStartOfWord() );
+ }
+
+ /**
+ * First moves the cursor to the start of the current word,
+ * then shifts it 2 symbols to the right. After that the
+ * method is called and returned value is checked.<p>
+ *
+ * Has <b>OK</b> status if method returns <code>true</code>.
+ */
+ public void _gotoStartOfWord(){
+ oObj.gotoStartOfWord(false);
+ oObj.goRight((short) 2, false) ;
+ tRes.tested("gotoStartOfWord()", oObj.gotoStartOfWord(false) );
+ }
+
+ } // finish class _XWordCursor
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java
new file mode 100644
index 000000000..d3174d926
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedContentResultSetFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedContentResultSetFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedContentResultSet()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CachedContentResultSetStub'</code> (of type
+* <code>com.sun.star.sdbc.XResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.CachedContentResultSetStub</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedContentResultSetFactory
+*/
+public class _XCachedContentResultSetFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedContentResultSetFactory oObj;
+ private XResultSet resSetStub = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSetStub = (XResultSet)
+ tEnv.getObjRelation("CachedContentResultSetStub") ;
+ if (resSetStub == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException
+ (Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates result set from result set stub. After that number
+ * of rows from result set created and its stub are retrieved
+ * using their static representations and comared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedContentResultSet() {
+ boolean result = true ;
+
+ XResultSet resSet = oObj.createCachedContentResultSet
+ (resSetStub, null) ;
+
+ if (resSet == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ resSetStub.last() ;
+ int stubRowNum = resSetStub.getRow() ;
+
+ resSet.last() ;
+ int setRowNum = resSet.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : stub=" + stubRowNum +
+ " set=" + setRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedContentResultSet()", result) ;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java
new file mode 100644
index 000000000..90f3d4688
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedContentResultSetStubFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedContentResultSetStubFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedContentResultSetStub()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'ContentResultSet'</code> (of type
+* <code>com.sun.star.sdbc.XResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.ContentResultSet</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedContentResultSetStubFactory
+*/
+public class _XCachedContentResultSetStubFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedContentResultSetStubFactory oObj;
+ private XResultSet resSet = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSet = (XResultSet) tEnv.getObjRelation("ContentResultSet") ;
+ if (resSet == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException(Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates cached result set stub from static result set. After that number
+ * of rows in cached result set created and its source set are retrieved
+ * and comared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedContentResultSetStub() {
+ boolean result = true ;
+
+ XResultSet resSetStub = oObj.createCachedContentResultSetStub
+ (resSet) ;
+
+ if (resSetStub == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ resSetStub.last() ;
+ int stubRowNum = resSetStub.getRow() ;
+
+ resSet.last() ;
+ int setRowNum = resSet.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : set=" + setRowNum +
+ " stub=" + stubRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedContentResultSetStub()", result) ;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java
new file mode 100644
index 000000000..06dc4974f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java
@@ -0,0 +1,114 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedDynamicResultSetFactory;
+import com.sun.star.ucb.XDynamicResultSet;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedDynamicResultSetFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedDynamicResultSet()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CachedDynamicResultSetStub'</code> (of type
+* <code>com.sun.star.sdbc.XDynamicResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.CachedDynamicResultSetStub</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedDynamicResultSetFactory
+*/
+public class _XCachedDynamicResultSetFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedDynamicResultSetFactory oObj;
+ private XDynamicResultSet resSetStub = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSetStub = (XDynamicResultSet)
+ tEnv.getObjRelation("CachedDynamicResultSetStub") ;
+ if (resSetStub == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException
+ (Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates result set from result set stub. After that number
+ * of rows from result set created and its stub are retrieved
+ * using their static representations and comared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedDynamicResultSet() {
+ boolean result = true ;
+
+ XDynamicResultSet resSet = oObj.createCachedDynamicResultSet
+ (resSetStub, null) ;
+
+ if (resSet == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ XResultSet resSetS = resSet.getStaticResultSet() ;
+ XResultSet resSetStubS = resSetStub.getStaticResultSet() ;
+
+ resSetStubS.last() ;
+ int stubRowNum = resSetStubS.getRow() ;
+
+ resSetS.last() ;
+ int setRowNum = resSetS.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : stub=" + stubRowNum +
+ " set=" + setRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Can't get static result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedDynamicResultSet()", result) ;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java
new file mode 100644
index 000000000..cb38aff5b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java
@@ -0,0 +1,174 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedDynamicResultSetFactory;
+import com.sun.star.ucb.XCachedDynamicResultSetStubFactory;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedDynamicResultSetStubFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedDynamicResultSetStub()</code></li>
+* <li><code> connectToCache()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DynamicResultSet'</code> (of type
+* <code>com.sun.star.sdbc.XDynamicResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.DynamicResultSet</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedDynamicResultSetStubFactory
+*/
+public class _XCachedDynamicResultSetStubFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedDynamicResultSetStubFactory oObj;
+ private XDynamicResultSet resSet = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSet = (XDynamicResultSet) tEnv.getObjRelation("DynamicResultSet") ;
+ if (resSet == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException(Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates result set stub from result set. After that number
+ * of rows from result set stub created and its source set are retrieved
+ * using their static representations and compared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedDynamicResultSetStub() {
+ boolean result = true ;
+
+ XDynamicResultSet resSetStub = oObj.createCachedDynamicResultSetStub(resSet) ;
+
+ if (resSetStub == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ XResultSet resSetS = resSet.getStaticResultSet() ;
+ XResultSet resSetStubS = resSetStub.getStaticResultSet() ;
+
+ resSetStubS.last() ;
+ int stubRowNum = resSetStubS.getRow() ;
+
+ resSetS.last() ;
+ int setRowNum = resSetS.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : stub=" + stubRowNum +
+ " set=" + setRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Can't get static result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedDynamicResultSetStub()", result) ;
+ }
+
+ /**
+ * Creates an instance of <code>CachedDynamicResultSet</code> service
+ * which is not connected to any stub. Then tries to connect it to
+ * <code>DynamicResultSet</code> created and passed as relation.
+ * Connection is checked by retrieving and comparing of row numbers
+ * of connected set and its source set. <p>
+ * Has <b>OK</b> status if row numbers are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _connectToCache() throws Exception {
+ boolean result = true ;
+
+ Object fac = tParam.getMSF().createInstance
+ ("com.sun.star.ucb.CachedDynamicResultSetFactory") ;
+
+ XCachedDynamicResultSetFactory setFac = UnoRuntime.queryInterface
+ (XCachedDynamicResultSetFactory.class, fac) ;
+
+ XDynamicResultSet rmtSet = setFac.createCachedDynamicResultSet(null, null) ;
+
+ try {
+ oObj.connectToCache(resSet, rmtSet, null, null) ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Unexpected exception :" + e) ;
+ result = false ;
+ } catch (com.sun.star.ucb.AlreadyInitializedException e) {
+ log.println("!!! Unexpected exception :" + e) ;
+ result = false ;
+ }
+
+ if (result) {
+ // checking connection to the source
+ try {
+ XResultSet statRmtSet = rmtSet.getStaticResultSet() ;
+ XResultSet statResSet = resSet.getStaticResultSet() ;
+
+ statRmtSet.last() ;
+ int rmtRowNum = statRmtSet.getRow() ;
+
+ statResSet.last() ;
+ int resRowNum = statResSet.getRow() ;
+
+ result = rmtRowNum == resRowNum && resRowNum > 0 ;
+
+ log.println("Number of rows : destination=" + rmtRowNum +
+ " source=" + resRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("connectToCache()", result) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java
new file mode 100644
index 000000000..7fa27bbc8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java
@@ -0,0 +1,234 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.CommandAbortedException;
+import com.sun.star.ucb.CommandInfo;
+import com.sun.star.ucb.GlobalTransferCommandArgument;
+import com.sun.star.ucb.NameClash;
+import com.sun.star.ucb.TransferCommandOperation;
+import com.sun.star.ucb.UnsupportedCommandException;
+import com.sun.star.ucb.XCommandInfo;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+/**
+* Tests <code>XCommandProcessor</code>. The TestCase can pass (but doesn't have
+* to) "XCommandProcessor.AbortCommand" relation, to specify command to abort in
+* <code>abort()</code> test.
+*
+* Testing <code>com.sun.star.ucb.XCommandProcessor</code>
+* interface methods :
+* <ul>
+* <li><code> createCommandIdentifier()</code></li>
+* <li><code> execute()</code></li>
+* <li><code> abort()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XCommandProcessor.AbortCommand'</code> <b>optional</b>
+* (of type <code>com.sun.star.ucb.Command</code>):
+* specify command to abort in <code>abort()</code> test.
+* If the relation is not specified the 'GlobalTransfer'
+* command is used.</li>
+* <ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>poliball.gif</code> : this file is required in case
+* if the relation <code>'XCommandProcessor.AbortCommand'</code>
+* is not specified. This file is used by 'GlobalTransfer'
+* command as a source file for copying.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCommandProcessor
+*/
+public class _XCommandProcessor extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCommandProcessor oObj;
+
+ /**
+ * Contains the command id returned by <code>createCommandIdentifier()
+ * </code>. It is used in <code>abort()</code> test.
+ */
+ int cmdId;
+
+ /**
+ * Tests <code>createCommandIdentifier()</code>. Calls it for two times
+ * and checks returned values. <p>
+ * Has <b>OK</b> status if values are unique correct identifiers: not 0.
+ */
+ public void _createCommandIdentifier() {
+ log.println("creating a command line identifier");
+
+ int testCmdId = oObj.createCommandIdentifier();
+ cmdId = oObj.createCommandIdentifier();
+
+ if (cmdId == 0 || testCmdId == 0) {
+ log.println("createCommandLineIdentifier() returned 0 - FAILED");
+ }
+
+ if (cmdId == testCmdId) {
+ log.println("the command identifier is not unique");
+ }
+
+ tRes.tested("createCommandIdentifier()",
+ testCmdId != 0 && cmdId != 0 && cmdId != testCmdId);
+ }
+
+ /**
+ * First executes 'geCommandInfo' command and examines returned
+ * command info information. Second tries to execute improper
+ * command. <p>
+ * Has <b> OK </b> status if in the first case returned information
+ * contains info about 'getCommandInfo' command and in the second
+ * case an exception is thrown. <p>
+ */
+ public void _execute() {
+ String commandName = "getCommandInfo";
+ Command command = new Command(commandName, -1, null);
+
+ Object result;
+
+ log.println("executing command " + commandName);
+ try {
+ result = oObj.execute(command, 0, null);
+ } catch (CommandAbortedException e) {
+ log.println("The command aborted " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ } catch (Exception e) {
+ log.println("Unexpected exception " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+
+ XCommandInfo xCmdInfo = UnoRuntime.queryInterface(
+ XCommandInfo.class, result);
+
+ CommandInfo[] cmdInfo = xCmdInfo.getCommands();
+
+ boolean found = false;
+
+ for (int i = 0; i < cmdInfo.length; i++) {
+ if (cmdInfo[i].Name.equals(commandName)) {
+ found = true;
+ break;
+ }
+ }
+
+ log.println("testing execute with wrong command");
+
+ Command badCommand = new Command("bad command", -1, null);
+
+ try {
+ oObj.execute(badCommand, 0, null);
+ } catch (CommandAbortedException e) {
+ log.println("CommandAbortedException thrown - OK");
+ } catch (UnsupportedCommandException e) {
+ log.println("UnsupportedCommandException thrown - OK");
+ } catch (Exception e) {
+ log.println("Wrong exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+
+ tRes.tested("execute()", found);
+ }
+
+ /**
+ * First a separate thread where <code>abort</code> method
+ * is called permanently. Then a "long" command (for example,
+ * "transfer") is started. I case if relation is not
+ * specified 'GlobalTransfer' command starts to
+ * copy a file to temporary directory (if the relation is present
+ * then the its command starts to work). <p>
+ * Has <b> OK </b> status if the command execution is aborted, i.e.
+ * <code>CommandAbortedException</code> is thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createCommandIdentifier() </code> : to have a unique
+ * identifier which is used to abort started command. </li>
+ * </ul>
+ */
+ public void _abort() {
+ executeMethod("createCommandIdentifier()");
+
+ Command command = (Command)tEnv.getObjRelation(
+ "XCommandProcessor.AbortCommand");
+
+ if (command == null) {
+ String commandName = "globalTransfer";
+
+ String srcURL = util.utils.getFullTestURL("SwXTextEmbeddedObject.sdw") ;
+ String tmpURL = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ log.println("Copying '" + srcURL + "' to '" + tmpURL) ;
+
+ GlobalTransferCommandArgument arg = new
+ GlobalTransferCommandArgument(
+ TransferCommandOperation.COPY, srcURL,
+ tmpURL, "", NameClash.OVERWRITE);
+
+ command = new Command(commandName, -1, arg);
+ }
+
+ Thread aborter = new Thread() {
+ @Override
+ public void run() {
+ for (int i = 0; i < 10; i++) {
+ log.println("try to abort command");
+ oObj.abort(cmdId);
+ util.utils.pause(10);
+ }
+ }
+ };
+
+ aborter.start();
+
+ util.utils.pause(15);
+
+ log.println("executing command");
+ try {
+ oObj.execute(command, cmdId, null);
+ log.println("Command execution completed");
+ log.println("CommandAbortedException is not thrown");
+ log.println("This is OK since there is no command implemented "+
+ "that can be aborted");
+ tRes.tested("abort()", true);
+ } catch (CommandAbortedException e) {
+ tRes.tested("abort()", true);
+ } catch (Exception e) {
+ log.println("Unexpected exception " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+
+ try {
+ aborter.join(5000);
+ aborter.interrupt();
+ } catch(InterruptedException e) {
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java
new file mode 100644
index 000000000..9c0223696
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XCommandProcessor2;
+
+
+public class _XCommandProcessor2 extends MultiMethodTest {
+ /**
+ * Contains the tested object.
+ */
+ public XCommandProcessor2 oObj;
+
+ public void _releaseCommandIdentifier() {
+ int id = oObj.createCommandIdentifier();
+ oObj.releaseCommandIdentifier(id);
+ oObj.createCommandIdentifier();
+ System.out.println("id: "+id);
+ System.out.println("id2: "+id);
+ tRes.tested("releaseCommandIdentifier()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java b/qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java
new file mode 100644
index 000000000..6a66dae9e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XContentIdentifierFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createContentIdentifier()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.ucb.XContentIdentifierFactory
+*/
+public class _XContentIdentifierFactory extends MultiMethodTest {
+ /**
+ * Contains the tested object.
+ */
+ public XContentIdentifierFactory oObj;
+
+ /**
+ * Calls the tested method with a file url and
+ * gets an identifier. <p>
+ * Has <b> OK </b> status if content identifier and provider scheme are
+ * proper. <p>
+ */
+ public void _createContentIdentifier() {
+ // creating a content identifier string - tmp url
+ String tmpDir = utils.getOfficeTemp(tParam.getMSF());
+
+ String contentId = utils.getFullURL(tmpDir);
+
+ // the scheme is file
+ String scheme = "file";
+
+ XContentIdentifier identifier = oObj.createContentIdentifier(contentId);
+
+ // verifying results
+ String resId = identifier.getContentIdentifier();
+ String resScheme = identifier.getContentProviderScheme();
+
+ tRes.tested("createContentIdentifier()", contentId.equals(resId)
+ && scheme.equals(resScheme));
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentProvider.java b/qadevOOo/tests/java/ifc/ucb/_XContentProvider.java
new file mode 100644
index 000000000..7f56233fb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentProvider.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+
+/**
+* Testing <code>com.sun.star.ucb.XContentProvider</code>
+* interface methods :
+* <ul>
+* <li><code> queryContent()</code></li>
+* <li><code> compareContentIds()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'FACTORY'</code> (of type
+* <code>com.sun.star.ucb.XContentIdentifierFactory</code>):
+* a suitable factory which can produce content identifiers </li>
+* <li> <code>'CONTENT1'</code> (<b>optional</b>) (of type <code>String</code>):
+* name of the suitable content for provider tested. If relation
+* is not specified the 'vnd.sun.star.help://' name will be used.</li>
+* <li> <code>'CONTENT2'</code> (<b>optional</b>) (of type <code>String</code>):
+* another name of the suitable content for provider tested. If relation
+* is not specified the 'vnd.sun.star.writer://' name will be used.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XContentProvider
+*/
+public class _XContentProvider extends MultiMethodTest {
+
+ public static XContentProvider oObj = null;
+ protected XContentIdentifierFactory CIF = null ;
+ protected String content1 = "vnd.sun.star.help://" ;
+ protected String content2 = "vnd.sun.star.writer://" ;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ CIF = (XContentIdentifierFactory) tEnv.getObjRelation("FACTORY");
+ String tmp = (String) tEnv.getObjRelation("CONTENT1") ;
+ if (tmp != null) content1 = tmp ;
+ tmp = (String) tEnv.getObjRelation("CONTENT2") ;
+ if (tmp != null) content2 = tmp ;
+
+ if (CIF == null) throw new StatusException(
+ Status.failed("'FACTORY' relation is not found.")) ;
+ }
+
+ /**
+ * Tries to query for some content suitable for this provider. <p>
+ * Has <b>OK</b> status if not null value is returned.
+ */
+ public void _queryContent() {
+ try {
+ XContentIdentifierFactory CIF = (XContentIdentifierFactory)
+ tEnv.getObjRelation("FACTORY");
+ String aURL = content1;
+ log.println("Trying to query "+aURL);
+ XContentIdentifier CI = CIF.createContentIdentifier(aURL);
+ XContent aContent = oObj.queryContent(CI);
+ boolean res = true;
+ Object nc = tEnv.getObjRelation("NoCONTENT");
+ if (nc == null) {
+ res = aContent != null;
+ }
+ tRes.tested("queryContent()",res);
+ } catch (com.sun.star.ucb.IllegalIdentifierException e) {
+ log.println("Exception while checking 'queryContent'");
+ e.printStackTrace(log);
+ tRes.tested("queryContent()",false);
+ }
+ }
+
+ /**
+ * Creates two different content identifiers. First two different
+ * identifiers compared, then two same identifiers. <p>
+ * Has <b>OK</b> status if in the first case <code>false</code>
+ * returned, and in the second - <code>true</code>.
+ */
+ public void _compareContentIds() {
+ XContentIdentifierFactory CIF = (XContentIdentifierFactory)
+ tEnv.getObjRelation("FACTORY");
+ String aURL = content1 ;
+ XContentIdentifier CI = CIF.createContentIdentifier(aURL);
+ aURL = content2 ;
+ XContentIdentifier CI2 = CIF.createContentIdentifier(aURL);
+ int compare = oObj.compareContentIds(CI,CI2);
+ boolean res = (compare != 0);
+ if (!res) {
+ log.println("Didn't work with different IDs");
+ log.println(compare+" was returned");
+ }
+ compare = oObj.compareContentIds(CI,CI);
+ res &= (compare == 0);
+ if (!res) {
+ log.println("Didn't work with equal IDs");
+ log.println(compare+" was returned");
+ }
+ tRes.tested("compareContentIds()",res);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java b/qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java
new file mode 100644
index 000000000..688b2bd35
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XContentProviderFactory;
+
+
+/**
+* Testing <code>com.sun.star.ucb.XContentProviderFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createContentProvider()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XContentProviderFactory
+*/
+public class _XContentProviderFactory extends MultiMethodTest {
+
+ public static XContentProviderFactory oObj = null;
+
+ /**
+ * Creates a provider. <p>
+ * Has <b> OK </b> status if the returned value is not
+ * <code>null</code>. <p>
+ */
+ public void _createContentProvider() {
+ XContentProvider CP = oObj.createContentProvider
+ ("com.sun.star.ucb.ContentProviderFactory");
+ tRes.tested("createContentProvider()",CP != null);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java b/qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java
new file mode 100644
index 000000000..957901775
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java
@@ -0,0 +1,275 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.ContentProviderInfo;
+import com.sun.star.ucb.DuplicateProviderException;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XContentProviderManager;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Tests XContentProviderManager. The test registers two ContentProviders, calls
+* queryXXX methods to verify results, and deregisters them.
+*
+* Testing <code>com.sun.star.ucb.XContentProviderManager</code>
+* interface methods :
+* <ul>
+* <li><code> registerContentProvider()</code></li>
+* <li><code> deregisterContentProvider()</code></li>
+* <li><code> queryContentProviders()</code></li>
+* <li><code> queryContentProvider()</code></li>
+* </ul> <p>
+* The test registers two ContentProviders, calls
+* queryXXX methods to verify results, and deregisters them. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XContentProviderManager
+*/
+public class _XContentProviderManager extends MultiMethodTest {
+ /**
+ * Contains the tested object.
+ */
+ public XContentProviderManager oObj;
+
+ /**
+ * The test scheme name.
+ */
+ static final String myScheme = "test-scheme";
+
+ /**
+ * Any preexisting content provider. If it exists it will be hidden by
+ * <code>firstContentProvider</code>, registered with the same
+ * <code>myScheme</code>. Typically there is no preexisting content
+ * provider, unless the catch-all providers GnomeVFSContentProvider or
+ * GIOContentProvider is installed
+ */
+ XContentProvider preexistingContentProvider;
+
+ /**
+ * First content provider. It will be hidden by <code>contentProvider
+ * </code>, registered with the same <code>myScheme</code> to test
+ * the "hiding" behaviour.
+ */
+ XContentProvider firstContentProvider;
+
+ /**
+ * The main content provider.
+ */
+ XContentProvider contentProvider;
+
+ /**
+ * <code>ContentProvider</code>s information which are in the manager
+ * before registering the testing providers.
+ */
+ ContentProviderInfo[] initialProvidersInfo;
+
+ /**
+ * Creates two testing providers.
+ *
+ * @see #firstContentProvider
+ * @see #contentProvider
+ */
+ @Override
+ public void before() {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ log.println("creating testing content providers");
+ try {
+ firstContentProvider = UnoRuntime.queryInterface(
+ XContentProvider.class, xMSF.createInstance(
+ "com.sun.star.ucb.FileContentProvider"));
+
+ contentProvider = UnoRuntime.queryInterface(
+ XContentProvider.class, xMSF.createInstance(
+ "com.sun.star.ucb.FileContentProvider"));
+ } catch (Exception e) {
+ log.println("Can't create content providers " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+ }
+
+ /**
+ * At the beginning call <code>queryContentProviders</code> method
+ *
+ * to have info about providers existing before new adding.
+ * It adds two testing contents providers, both for the same scheme.
+ * The second one is added two times: first, in non-replacing mode, to test
+ * <code>DuplicateProviderException</code>, and second, in replacing mode,
+ * to hide the first provider. <p>
+ *
+ * The evaluation of results are performed later, in
+ * <code>queryContentProvider()</code>.
+ *
+ * Has <b> OK </b> status if in the first provider is registered
+ * without exceptions, the second throws
+ * <code>DuplicateProviderException</code> in non-replacing mode,
+ * and no exceptions in replacing mode. <p>
+ *
+ * @see #_queryContentProvider
+ */
+ public void _registerContentProvider() {
+ // querying providers info before inserting them, to verify results
+ initialProvidersInfo = oObj.queryContentProviders();
+
+ // GnomeVFSContentProvider or GIOContentProvider ?, typically null
+ preexistingContentProvider = oObj.queryContentProvider(myScheme);
+
+ log.println("registering the first provider");
+ try {
+ oObj.registerContentProvider(firstContentProvider, myScheme,false);
+ } catch (DuplicateProviderException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception ", e);
+ }
+
+ log.println("registering the second provider in non-replacing mode");
+ try {
+ oObj.registerContentProvider(contentProvider, myScheme, false);
+ throw new StatusException(Status.failed("registerContentProvider(.., .., false)"));
+ } catch (DuplicateProviderException e) {
+ log.println("DuplicateProviderException thrown - OK");
+ }
+
+ XContentProvider result;
+
+ log.println("registering the second provider in the replace mode");
+ try {
+ result = oObj.registerContentProvider(contentProvider, myScheme, true);
+ } catch (DuplicateProviderException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception ", e);
+ }
+
+ // check the result is the first provider
+ tRes.tested("registerContentProvider()",
+ result.equals(firstContentProvider));
+ }
+
+ /**
+ * It calls the method (after registering providers) and compares
+ * its result with the result before registering.
+ *
+ * Has <b> OK </b> status if the number of providers increases
+ * by one after registering custom provider.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerContentProvider() </code> : to compare number
+ * of providers. </li>
+ * </ul>
+ * @see #_registerContentProvider
+ */
+ public void _queryContentProviders() {
+ executeMethod("registerContentProvider()");
+
+ ContentProviderInfo[] providersInfo = oObj.queryContentProviders();
+ // verifying that the number of providers increased by 1
+ tRes.tested("queryContentProviders()",
+ providersInfo.length == initialProvidersInfo.length + 1);
+ }
+
+ /**
+ * It queries for added custom provider using its scheme
+ * and verifies its result with
+ * <code>queryContentProviders()</code> result and with
+ * custom provider created in <code>registerContentProvider()</code>.
+ * Also verifies <code>registerContentProvider()</code>. <p>
+ *
+ * Has <b>OK</b> status if the provider returned is found within
+ * all providers and is equal to provider created before.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerContentProvider() </code> </li>
+ * </ul>
+ */
+ public void _queryContentProvider() {
+ executeMethod("registerContentProvider()");
+
+ XContentProvider result = oObj.queryContentProvider
+ ("http://www.sun.com");
+
+ log.println("finding queryContentProvider() result");
+ boolean found = false;
+
+ ContentProviderInfo[] providersInfo = oObj.queryContentProviders();
+
+ for (int i = 0; i < providersInfo.length; i++) {
+ if (result.equals(providersInfo[i].ContentProvider)) {
+ found = true;
+ break;
+ }
+ }
+
+ tRes.tested("queryContentProvider()", found);
+ }
+
+ /**
+ * At first one provider is deregistered, after that provider
+ * is queried, the second provider must be returned for the
+ * specified scheme. Then the second provider is deregistered.
+ * Now <code>null</code> value must be returned by the method
+ * <code>queryContentProvider</code> on the specified scheme. <p>
+ *
+ * Has <b>OK</b> status if in the first case the second provider
+ * remains registered, and after its removing no providers remain
+ * registered for the scheme specified.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerContentProvider() </code> : two providers
+ * must be registered. </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> queryContentProvider() </code> : to run this test
+ * finally. </li>
+ * <li> <code> queryContentProviders() </code> : to run this test
+ * finally. </li>
+ * </ul>
+ */
+ public void _deregisterContentProvider() {
+ executeMethod("queryContentProvider()");
+ executeMethod("queryContentProviders()");
+ requiredMethod("registerContentProvider()");
+
+ log.println("deregistering the second provider");
+ oObj.deregisterContentProvider(contentProvider, myScheme);
+
+ XContentProvider res = oObj.queryContentProvider(myScheme);
+
+ log.println("deregistering the first provider");
+ oObj.deregisterContentProvider(firstContentProvider, myScheme);
+
+ res = oObj.queryContentProvider(myScheme);
+
+ // verifying that the original provider (typically none) is returned.
+ tRes.tested("deregisterContentProvider()", res == preexistingContentProvider);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XDataContainer.java b/qadevOOo/tests/java/ifc/ucb/_XDataContainer.java
new file mode 100644
index 000000000..d077d1be4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XDataContainer.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XDataContainer;
+
+/**
+* Testing <code>com.sun.star.ucb.XDataContainer</code>
+* interface methods :
+* <ul>
+* <li><code> getContentType()</code></li>
+* <li><code> setContentType()</code></li>
+* <li><code> getData()</code></li>
+* <li><code> setData()</code></li>
+* <li><code> getDataURL()</code></li>
+* <li><code> setDataURL()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XDataContainer
+*/
+public class _XDataContainer extends MultiMethodTest {
+
+ public static XDataContainer oObj = null; // oObj filled by MultiMethodTest
+ private final byte[] data = new byte[] {34, 35, 36} ;
+ private String dataURL = null;
+
+ /**
+ * Sets the content type to some value. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setContentType() {
+ oObj.setContentType("image/jpeg") ;
+ tRes.tested("setContentType()", true) ;
+ }
+
+ /**
+ * Check if values 'set' and 'get' are equal. <p>
+ * Has <b>OK</b> status if they are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setContentType() </code> </li>
+ * </ul>
+ */
+ public void _getContentType() {
+ requiredMethod("setContentType()") ;
+
+ String type = oObj.getContentType() ;
+ tRes.tested("getContentType()", "image/jpeg".equals(type)) ;
+ }
+
+ /**
+ * Sets the data to some byte array. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setData() {
+ oObj.setData(data) ;
+ tRes.tested("setData()", true) ;
+ }
+
+ /**
+ * Check if arrays 'set' and 'get' are equal. <p>
+ * Has <b>OK</b> status if they are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setData() </code> </li>
+ * </ul>
+ */
+ public void _getData() {
+ requiredMethod("setData()") ;
+
+ byte[] gData = oObj.getData() ;
+ boolean res = true ;
+ if (res = (gData != null && gData.length == data.length)) {
+ for (int i = 0; i < data.length; i++) {
+ res &= data[i] == gData[i] ;
+ }
+ }
+
+ tRes.tested("getData()", res) ;
+ }
+
+ /**
+ * Sets the data URL to some URL. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setDataURL() {
+ dataURL = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ oObj.setDataURL(dataURL) ;
+ tRes.tested("setDataURL()", true) ;
+ }
+
+ /**
+ * Check if URLs 'set' and 'get' are equal. <p>
+ * Has <b>OK</b> status if they are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setDataURL() </code> </li>
+ * </ul>
+ */
+ public void _getDataURL() {
+ requiredMethod("setDataURL()") ;
+
+ String gURL = oObj.getDataURL() ;
+ tRes.tested("getDataURL()", dataURL.equals(gURL)) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java b/qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java
new file mode 100644
index 000000000..fb947ffb6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XFileIdentifierConverter;
+
+/**
+* Testing <code>com.sun.star.ucb.XFileIdentifierConverter</code>
+* interface methods :
+* <ul>
+* <li><code> getFileProviderLocality()</code></li>
+* <li><code> getFileURLFromSystemPath()</code></li>
+* <li><code> getSystemPathFromFileURL()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XFileIdentifierConverter
+*/
+public class _XFileIdentifierConverter extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XFileIdentifierConverter oObj;
+
+ /**
+ * Gets the locality for SOffice temporary directory. <p>
+ * Has <b> OK </b> status if the method returns value greater
+ * than 0 (as office temp directory is supposed to be in the
+ * same location). <p>
+ */
+ public void _getFileProviderLocality() {
+ String baseURL = util.utils.getOfficeTemp(tParam.getMSF());
+ log.println("Using: "+baseURL);
+ int loc = oObj.getFileProviderLocality(baseURL);
+ log.println("Getting: "+loc);
+ tRes.tested("getFileProviderLocality()",loc > 0);
+ }
+
+ /**
+ * Tries to convert URL of SOffice temp directory to system
+ * dependent path. <p>
+ * Has <b> OK </b> status if the method returns system dependent
+ * representation of the URL passed. <p>
+ */
+ public void _getSystemPathFromFileURL() {
+ String baseURL = util.utils.getOfficeTemp(tParam.getMSF());
+ log.println("Using (Base): "+baseURL);
+ String sysURL = util.utils.getOfficeTempDirSys(tParam.getMSF());
+ log.println("Using (System): "+sysURL);
+ String get = oObj.getSystemPathFromFileURL(baseURL);
+ log.println("Getting: "+get);
+ //sysURL = sysURL.substring(0,sysURL.length()-1);
+ tRes.tested("getSystemPathFromFileURL()",get.equals(sysURL));
+ }
+
+ /**
+ * Tries to convert system dependent path of SOffice temp
+ * directory to URL representation. <p>
+ * Has <b> OK </b> status if the method returns URL representation
+ * of the system dependent path passed. <p>
+ */
+ public void _getFileURLFromSystemPath() {
+ String baseURL = util.utils.getOfficeTemp(tParam.getMSF());
+ log.println("Using (Base): "+baseURL);
+ String sysURL = util.utils.getOfficeTempDirSys(tParam.getMSF());
+ log.println("Using (System): "+sysURL);
+ String get = oObj.getFileURLFromSystemPath(sysURL,sysURL);
+ log.println("Getting: "+get);
+ tRes.tested("getFileURLFromSystemPath()",get.equals(baseURL));
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java b/qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java
new file mode 100644
index 000000000..f8dcd4d8a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XParameterizedContentProvider;
+
+/**
+* Testing <code>com.sun.star.ucb.XParameterizedContentProvider</code>
+* interface methods :
+* <ul>
+* <li><code> registerInstance()</code></li>
+* <li><code> deregisterInstance()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XParameterizedContentProvider
+*/
+public class _XParameterizedContentProvider extends MultiMethodTest {
+
+ public static XParameterizedContentProvider oObj = null;
+
+ /**
+ * Registers an instance with some arguments. <p>
+ * Has <b>OK</b> status if the method returns non <code>null</code>
+ * provider.
+ */
+ public void _registerInstance() {
+ try {
+ XContentProvider CP = oObj.registerInstance(
+ "\"vnd.sun.star.pkg://file\".*",
+ "uno:pipe,name=ucb_soffice;<PIPE>;urp;UCB.Factory",
+ true);
+ tRes.tested("registerInstance()",CP != null);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while checking 'registerInstance'");
+ e.printStackTrace(log);
+ tRes.tested("registerInstance()",false);
+ }
+ }
+
+ /**
+ * Deregisters the instance registered before. <p>
+ * Has <b>OK</b> status if the method returns non <code>null</code>
+ * provider. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerInstance() </code> : to deregister it here. </li>
+ * </ul>
+ */
+ public void _deregisterInstance() {
+ requiredMethod("registerInstance()");
+ try {
+ XContentProvider CP = oObj.deregisterInstance(
+ "\"vnd.sun.star.pkg://file\".*",
+ "uno:pipe,name=ucb_soffice;<PIPE>;urp;UCB.Factory");
+ tRes.tested("deregisterInstance()",CP != null);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while checking 'deregisterInstance'");
+ e.printStackTrace(log);
+ tRes.tested("deregisterInstance()",false);
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java b/qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java
new file mode 100644
index 000000000..084ab5293
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.RuleOperator;
+import com.sun.star.ucb.RuleTerm;
+import com.sun.star.ucb.SearchCriterium;
+import com.sun.star.ucb.XPropertyMatcher;
+import com.sun.star.ucb.XPropertyMatcherFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XPropertyMatcherFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createPropertyMatcher()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XPropertyMatcherFactory
+*/
+public class _XPropertyMatcherFactory extends MultiMethodTest {
+
+ public static XPropertyMatcherFactory oObj = null;
+
+ /**
+ * Tries to create <code>XPropertyMatcher</code> implementation. <p>
+ * Has <b>OK</b> status if not null value returned.
+ */
+ public void _createPropertyMatcher() {
+ RuleTerm term = new RuleTerm() ;
+
+ term.Property = "ContentType" ;
+ term.Operand = "vnd.sun.star.fsys" ;
+ term.Operator = RuleOperator.CONTAINS ;
+
+ SearchCriterium crit = new SearchCriterium(new RuleTerm[] {term}) ;
+
+ XPropertyMatcher matcher = oObj.createPropertyMatcher
+ (new SearchCriterium[] {crit}) ;
+
+ tRes.tested("createPropertyMatcher()", matcher != null) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java b/qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java
new file mode 100644
index 000000000..e365b11bf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java
@@ -0,0 +1,50 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XPropertySetRegistry;
+import com.sun.star.ucb.XPropertySetRegistryFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XPropertySetRegistryFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createPropertySetRegistry()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XPropertySetRegistryFactory
+*/
+public class _XPropertySetRegistryFactory extends MultiMethodTest {
+
+ public static XPropertySetRegistryFactory oObj = null;
+
+ /**
+ * Test calls the method with empty string argument. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _createPropertySetRegistry() {
+ XPropertySetRegistry PSR = oObj.createPropertySetRegistry("");
+ tRes.tested("createPropertySetRegistry()",PSR != null);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java
new file mode 100644
index 000000000..63e41ab9d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java
@@ -0,0 +1,89 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XRemoteContentProviderAcceptor;
+import com.sun.star.ucb.XRemoteContentProviderDoneListener;
+
+/**
+ * Testing <code>com.sun.star.ucb.XRemoteContentProviderAcceptor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addRemoteContentProvider()</code></li>
+ * <li><code> removeRemoteContentProvider()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.ucb.XRemoteContentProviderAcceptor
+ */
+public class _XRemoteContentProviderAcceptor extends MultiMethodTest {
+
+ public XRemoteContentProviderAcceptor oObj = null;
+
+ /**
+ * The simple <code>XRemoteContentProviderDoneListener</code>
+ * implementation.
+ */
+ public static class DoneListener implements XRemoteContentProviderDoneListener {
+
+ public void doneWithRemoteContentProviders
+ (XRemoteContentProviderAcceptor xRCPA) {
+ }
+
+ }
+
+ XRemoteContentProviderDoneListener aDoneListener = new DoneListener();
+
+ /**
+ * Adds a remote provider. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>.
+ */
+ public void _addRemoteContentProvider() {
+ boolean res = false;
+
+ String[] template = new String[]{"file"};
+ res = oObj.addRemoteContentProvider("ContentID",tParam.getMSF(),
+ template,aDoneListener);
+
+ tRes.tested("addRemoteContentProvider()",res);
+ }
+
+ /**
+ * Removes the remote provider added before. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addRemoteContentProvider() </code> : provider must
+ * be added first </li>
+ * </ul>
+ */
+ public void _removeRemoteContentProvider() {
+ requiredMethod("addRemoteContentProvider()") ;
+
+ boolean res = false;
+
+ res = oObj.removeRemoteContentProvider("ContentID");
+ tRes.tested("removeRemoteContentProvider()",res);
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java
new file mode 100644
index 000000000..c97b8946e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java
@@ -0,0 +1,69 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XContentProviderManager;
+import com.sun.star.ucb.XRemoteContentProviderAcceptor;
+import com.sun.star.ucb.XRemoteContentProviderActivator;
+
+/**
+ * Testing <code>com.sun.star.ucb.XRemoteContentProviderActivator</code>
+ * interface methods :
+ * <ul>
+ * <li><code> activateRemoteContentProviders()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'RCPA'</code>
+ * (of type <code>XRemoteContentProviderAcceptor</code>):
+ * this acceptor is used to add a provider first before
+ * its activation. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.ucb.XRemoteContentProviderActivator
+ */
+public class _XRemoteContentProviderActivator extends MultiMethodTest {
+
+ public XRemoteContentProviderActivator oObj = null;
+
+ /**
+ * First the relation is retrieved and a remote provider is
+ * added to the acceptor. Then it is activated and
+ * removed. <p>
+ * Has <b> OK </b> status if <code>activateRemoteContentProviders</code>
+ * method returns not <code>null</code> value. <p>
+ */
+ public void _activateRemoteContentProviders() {
+ boolean res = false;
+
+ XRemoteContentProviderAcceptor xRCPA = (XRemoteContentProviderAcceptor)
+ tEnv.getObjRelation("RCPA");
+ String[] template = new String[]{"file"};
+ xRCPA.addRemoteContentProvider("ContentID",tParam.getMSF(),template,null);
+ XContentProviderManager CPM = oObj.activateRemoteContentProviders();
+ res = (CPM != null);
+ xRCPA.removeRemoteContentProvider("ContentID");
+
+ tRes.tested("activateRemoteContentProviders()",res);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java
new file mode 100644
index 000000000..2f633122e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java
@@ -0,0 +1,539 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.task.XInteractionHandler;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.DateTime;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+* Testing <code>com.sun.star.ucb.XSimpleFileAccess</code>
+* interface methods. <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>XSimpleFileAccess/XSimpleFileAccess.txt</code> :
+* text file of length 17 and 2000 year created .</li>
+* <li> <code>XSimpleFileAccess/XSimpleFileAccess2.txt</code> :
+* text file for <code>openFileReadWrite</code> method test.</li>
+* <ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'InteractionHandler'</code>
+* (of type <code>XInteractionHandler</code>)
+* instance of <code>com.sun.star.sdb.InteractionHandler</code>
+* </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XSimpleFileAccess
+*/
+public class _XSimpleFileAccess extends MultiMethodTest {
+
+ public static XSimpleFileAccess oObj = null;
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, checks
+ * if it was successfully copied and then deletes it. <p>
+ * Has <b> OK </b> status if after method call new copy of file
+ * exists and no exceptions were thrown. <p>
+ */
+ public void _copy() {
+ try {
+ String copiedFile = "";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String filename = dirname+"XSimpleFileAccess.txt";
+ copiedFile = dirnameTo + "XSimpleFileAccess_copy.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ oObj.copy(filename,copiedFile);
+ tRes.tested("copy()",oObj.exists(copiedFile));
+ oObj.kill(copiedFile);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'copy()'");
+ ex.printStackTrace(log);
+ tRes.tested("copy()",false);
+ }
+
+ } //EOF copy()
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, tries to
+ * rename it, then checks
+ * if it was successfully renamed and then deletes it. <p>
+ * Has <b> OK </b> status if after method call new file
+ * exists and no exceptions were thrown. <p>
+ */
+ public void _move() {
+ try {
+ String copiedFile = "";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String filename = dirname+"XSimpleFileAccess.txt";
+ copiedFile = dirnameTo + "XSimpleFileAccess_copy.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ oObj.copy(filename,copiedFile);
+ filename = copiedFile;
+ copiedFile = dirnameTo + "XSimpleFileAccess_move.txt";
+ oObj.move(filename,copiedFile);
+ tRes.tested("move()",oObj.exists(copiedFile));
+ oObj.kill(copiedFile);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'move()'");
+ ex.printStackTrace(log);
+ tRes.tested("move()",false);
+ }
+
+ } //EOF move()
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, deletes it
+ * and checks if it isn't exist. <p>
+ * Has <b> OK </b> status if after method call new copy of file
+ * doesn't exist and no exceptions were thrown. <p>
+ */
+ public void _kill() {
+ try {
+ String copiedFile = "";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String filename = dirname+"XSimpleFileAccess.txt";
+ copiedFile = dirnameTo + "XSimpleFileAccess_copy.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ oObj.copy(filename,copiedFile);
+ oObj.kill(copiedFile);
+ tRes.tested("kill()",!oObj.exists(copiedFile));
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'kill()'");
+ ex.printStackTrace(log);
+ tRes.tested("kill()",false);
+ }
+
+ } //EOF kill()
+
+ /**
+ * Tries to check if <b>XSimpleFileAccess</b> is folder. <p>
+ * Has <b>OK</b> status if the method returns <code>true</code>
+ */
+ public void _isFolder() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ tRes.tested("isFolder()",oObj.isFolder(dirname));
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'isFolder()'");
+ ex.printStackTrace(log);
+ tRes.tested("isFolder()",false);
+ }
+
+ } //EOF isFolder()
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, sets
+ * 'READONLY' attribute and checks it. Second clears 'READONLY'
+ * attribute and checks it again. The copy of file is deleted
+ * finally.<p>
+ *
+ * Has <b> OK </b> status if in the first case method returns
+ * <code></code>, and in the second case - <code>false</code>
+ * and no exceptions were thrown. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setReadOnly </code> </li>
+ * </ul>
+ */
+ public void _isReadOnly() {
+ requiredMethod("setReadOnly()");
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ boolean result = true;
+
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String readonlyCopy = dirnameTo + "XSimpleFileAccess_copy.txt" ;
+
+ if (oObj.exists(readonlyCopy))
+ oObj.kill(readonlyCopy);
+
+ oObj.copy(filename, readonlyCopy);
+
+ oObj.setReadOnly(readonlyCopy, true);
+ result &= oObj.isReadOnly(readonlyCopy);
+ oObj.setReadOnly(readonlyCopy, false);
+ result &= !oObj.isReadOnly(readonlyCopy);
+
+ oObj.kill(readonlyCopy);
+ tRes.tested("isReadOnly()",result);
+ } catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'isReadOnly()'");
+ ex.printStackTrace(log);
+ tRes.tested("isReadOnly()",false);
+ }
+
+ } //EOF isReadOnly()
+
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, sets
+ * 'READONLY' attribute and checks it. Second clears 'READONLY'
+ * attribute and checks it again. The copy of file is deleted
+ * finally.<p>
+ *
+ * Has <b> OK </b> status if in the first case method returns
+ * <code></code>, and in the second case - <code>false</code>
+ * and no exceptions were thrown. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setReadOnly </code> </li>
+ * </ul>
+ */
+ public void _setReadOnly() {
+ boolean result = true ;
+
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String readonlyCopy = dirnameTo + "XSimpleFileAccess_copy.txt" ;
+
+ if (oObj.exists(readonlyCopy))
+ oObj.kill(readonlyCopy);
+
+ oObj.copy(filename, readonlyCopy);
+
+ oObj.setReadOnly(readonlyCopy, true);
+ result &= oObj.isReadOnly(readonlyCopy) ;
+ oObj.setReadOnly(readonlyCopy, false);
+ result &= !oObj.isReadOnly(readonlyCopy) ;
+ tRes.tested("setReadOnly()", result);
+
+ oObj.kill(readonlyCopy);
+ }
+ catch (Exception ex) {
+ log.println("Exception occurred while testing 'setReadOnly()'");
+ ex.printStackTrace(log);
+ tRes.tested("setReadOnly()",false);
+ }
+ } //EOF setReadOnly()
+
+ /**
+ * Creates folder and then checks if it was successfully created. <p>
+ * Has <b>OK</b> status if folder was created and no exceptions
+ * were thrown.
+ */
+ public void _createFolder() {
+ try {
+ String tmpdirname = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String newFolder = tmpdirname+"SimpleSubFolder";
+
+ if (oObj.exists(newFolder))
+ oObj.kill(newFolder);
+
+ oObj.createFolder(newFolder);
+ tRes.tested("createFolder()",oObj.isFolder(newFolder));
+ oObj.kill(newFolder);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'createFolder()'");
+ ex.printStackTrace(log);
+ tRes.tested("createFolder()",false);
+ }
+
+ } //EOF createFolder()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file tested.<p>
+ * Has <b> OK </b> status if the method returns <code>17</code>
+ * and no exceptions were thrown. <p>
+ */
+ public void _getSize() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ int fSize = oObj.getSize(filename);
+ tRes.tested("getSize()", fSize == 17 );
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getSize()'");
+ ex.printStackTrace(log);
+ tRes.tested("getSize()",false);
+ }
+
+ } //EOF getSize()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file tested.<p>
+ * Has <b> OK </b> status if the method returns String
+ * <code>'application/vnd.sun.staroffice.fsys-file'</code>
+ * and no exceptions were thrown. <p>
+ */
+ public void _getContentType() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ String fType = oObj.getContentType(filename);
+ tRes.tested("getContentType()",
+ "application/vnd.sun.staroffice.fsys-file".equals(fType) );
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getContentType()'");
+ ex.printStackTrace(log);
+ tRes.tested("getContentType()",false);
+ }
+
+ } //EOF getContentType()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file tested.<p>
+ * Has <b> OK </b> status if the method returns date with
+ * 2001 year and no exceptions were thrown. <p>
+ */
+ public void _getDateTimeModified() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ DateTime fTime = oObj.getDateTimeModified(filename);
+
+ java.io.File the_file = new java.io.File(filename);
+ long lastModified = the_file.lastModified();
+ java.util.Date lastMod = new java.util.Date(lastModified);
+ GregorianCalendar lastModCal = new GregorianCalendar();
+ lastModCal.setTime(lastMod);
+
+ //compare the dates gained by java with those gained by this method
+ boolean res = true;
+ boolean partResult = (fTime.Day == lastModCal.get(Calendar.DAY_OF_WEEK));
+ if (!partResult) {
+ log.println("Wrong Day");
+ log.println("Expected: "+lastModCal.get(Calendar.DAY_OF_WEEK));
+ log.println("Gained: "+fTime.Day);
+ log.println("------------------------------");
+ }
+ partResult = (fTime.Month == lastModCal.get(Calendar.MONTH));
+ if (!partResult) {
+ log.println("Wrong Month");
+ log.println("Expected: "+lastModCal.get(Calendar.MONTH));
+ log.println("Gained: "+fTime.Month);
+ log.println("------------------------------");
+ }
+
+ partResult = (fTime.Year == (lastModCal.get(Calendar.MONTH) - 1900));
+ if (!partResult) {
+ log.println("Wrong Year");
+ log.println("Expected: "+(lastModCal.get(Calendar.MONTH) - 1900));
+ log.println("Gained: "+fTime.Year);
+ log.println("------------------------------");
+ }
+
+ tRes.tested("getDateTimeModified()", res);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getDateTimeModified()'");
+ ex.printStackTrace(log);
+ tRes.tested("getDateTimeModified()",false);
+ }
+
+ } //EOF getDateTimeModified()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess</b>
+ * directory used.<p>
+ * Has <b> OK </b> status if the method returns non zero length
+ * array and no exceptions were thrown. <p>
+ */
+ public void _getFolderContents() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String[] cont = oObj.getFolderContents(dirname,false);
+ tRes.tested("getFolderContents()", cont.length>0);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getFolderContents()'");
+ ex.printStackTrace(log);
+ tRes.tested("getFolderContents()",false);
+ }
+
+ } //EOF getFolderContents()
+
+ /**
+ * First it check file <b>XSimpleFileAccess.txt</b> for
+ * existence, second file <b>I_do_not_exists.txt</b> is checked
+ * for existence. <p>
+ * Has <b> OK </b> status if in the first case method returns
+ * <code>true</code> and in the second - <code>flase</code>
+ * and no exceptions were thrown. <p>
+ */
+ public void _exists() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ String wrongname = dirname+"I_do_not_exists.txt";
+ tRes.tested("exists()",
+ oObj.exists(filename) && !oObj.exists(wrongname));
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'exists()'");
+ ex.printStackTrace(log);
+ tRes.tested("exists()",false);
+ }
+
+ } //EOF exists()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file used.<p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value and no exceptions were thrown. <p>
+ */
+ public void _openFileRead() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ com.sun.star.io.XInputStream iStream = oObj.openFileRead(filename);
+ tRes.tested("openFileRead()", iStream != null);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'openFileRead()'");
+ ex.printStackTrace(log);
+ tRes.tested("openFileRead()",false);
+ }
+
+ } //EOF openFileRead()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file used.<p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value and no exceptions were thrown. <p>
+ */
+ public void _openFileWrite() {
+ try {
+ String tmpdirname = util.utils.getOfficeTemp(tParam.getMSF()) ;
+
+ String copiedFile = tmpdirname+"XSimpleFileAccess_openWrite.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ com.sun.star.io.XOutputStream oStream =
+ oObj.openFileWrite(copiedFile);
+
+ oStream.closeOutput();
+ oObj.kill(copiedFile);
+
+ tRes.tested("openFileWrite()", true);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'openFileWrite()'");
+ ex.printStackTrace(log);
+ tRes.tested("openFileWrite()", false);
+ }
+
+ } //EOF openFileWrite()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess2.txt</b>
+ * file used.<p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value and no exceptions were thrown. <p>
+ */
+ public void _openFileReadWrite() {
+ try {
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String copiedFile = dirnameTo + "XSimpleFileAccess2.txt" ;
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ com.sun.star.io.XStream aStream =
+ oObj.openFileReadWrite(copiedFile);
+
+ aStream.getInputStream().closeInput();
+ aStream.getOutputStream().closeOutput();
+
+ oObj.kill(copiedFile);
+
+ tRes.tested("openFileReadWrite()", true);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'openFileReadWrite()'");
+ ex.printStackTrace(log);
+ tRes.tested("openFileReadWrite()", false);
+ }
+
+ } //EOF openFileReadWrite()
+
+ /**
+ * Test calls the method and checks that no exceptions were thrown.
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _setInteractionHandler() {
+ XInteractionHandler handler = null;
+ Object oHandler = tEnv.getObjRelation("InteractionHandler");
+
+ if (oHandler == null)
+ throw new StatusException
+ (Status.failed("Relation InteractionHandler not found"));
+
+ try {
+ handler = UnoRuntime.queryInterface
+ (XInteractionHandler.class, oHandler);
+ oObj.setInteractionHandler(handler);
+ tRes.tested("setInteractionHandler()", true);
+ } catch (Exception ex) {
+ log.println("Exception occurred while testing 'setInteractionHandler()'");
+ ex.printStackTrace(log);
+ tRes.tested("setInteractionHandler()", false);
+ }
+
+ } //EOF setInteractionHandler()
+
+} // finish class _XSimpleFileAccess
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java
new file mode 100644
index 000000000..6e1acd537
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java
@@ -0,0 +1,70 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.ucb.XSimpleFileAccess2;
+
+/**
+* Testing <code>com.sun.star.ucb.XSimpleFileAccess2</code>
+* interface methods. <p>
+* @see com.sun.star.ucb.XSimpleFileAccess2
+*/
+public class _XSimpleFileAccess2 extends MultiMethodTest {
+
+ public static XSimpleFileAccess2 oObj = null;
+
+ /**
+ * Writes <b>XSimpleFileAccess_new.txt</b> to disk, checks
+ * if it was successfully created and then deletes it. <p>
+ * Has <b> OK </b> status if after method call the file
+ * exists and no exceptions were thrown. <p>
+ */
+ public void _writeFile() {
+ boolean result = true;
+ try {
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String fileURL = dirnameTo + "XSimpleFileAccess_new.txt";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ XInputStream iStream = oObj.openFileRead(filename);
+ oObj.writeFile(fileURL,iStream);
+ util.utils.pause(1000);
+ result = oObj.exists(fileURL);
+ oObj.kill(fileURL);
+ tRes.tested("writeFile()",result);
+ }
+ catch (com.sun.star.ucb.CommandAbortedException ex) {
+ log.println("CommandAbortedException occurred while testing "+
+ "'writeFile()'");
+ ex.printStackTrace(log);
+ tRes.tested("writeFile()",false);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'writeFile()'");
+ ex.printStackTrace(log);
+ tRes.tested("writeFile()",false);
+ }
+
+ } //EOF writeFile()
+
+} // finish class _XSimpleFileAccess
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java b/qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java
new file mode 100644
index 000000000..588a05129
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ucb;
+
+import com.sun.star.beans.Property;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.NumberedSortingInfo;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.OpenMode;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.ucb.XSortedDynamicResultSetFactory;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.ucb.XSortedDynamicResultSetFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createSortedDynamicResultSet()</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>solibrary.jar</code> : is used to retrieve
+* content of its root directory.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XSortedDynamicResultSetFactory
+*/
+public class _XSortedDynamicResultSetFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XSortedDynamicResultSetFactory oObj;
+
+ /**
+ * Creates sorted dynamic result set from result set. For this
+ * a dynamic result set is to be created. It is created by
+ * retrieving content list from JAR archive.
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createSortedDynamicResultSet() {
+ boolean result = true ;
+
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XDynamicResultSet dynResSet = null ;
+ try {
+ Object oUCB = xMSF.createInstanceWithArguments
+ ("com.sun.star.ucb.UniversalContentBroker",
+ new Object[0]) ;
+
+ XContentIdentifierFactory ciFac = UnoRuntime.queryInterface
+ (XContentIdentifierFactory.class,oUCB) ;
+
+ String url = util.utils.getFullTestURL("SwXTextEmbeddedObject.sxw") ;
+ StringBuilder escUrl = new StringBuilder();
+
+ // In base URL of a JAR file in content URL all directory
+ // separators ('/') must be replaced with escape symbol '%2F'.
+ int idx = url.indexOf("/") ;
+ int lastIdx = -1 ;
+ while (idx >= 0) {
+ escUrl.append(url.substring(lastIdx + 1, idx)).append("%2F");
+ lastIdx = idx ;
+ idx = url.indexOf("/", idx + 1) ;
+ }
+ escUrl.append(url.substring(lastIdx + 1));
+ String cntUrl = "vnd.sun.star.pkg://" + escUrl.toString() + "/" ;
+
+ XContentIdentifier CI = ciFac.createContentIdentifier(cntUrl) ;
+
+ XContentProvider cntProv = UnoRuntime.queryInterface(XContentProvider.class, oUCB) ;
+
+ XContent cnt = cntProv.queryContent(CI) ;
+
+ XCommandProcessor cmdProc = UnoRuntime.queryInterface(XCommandProcessor.class, cnt) ;
+
+ Property prop = new Property() ;
+ prop.Name = "Title" ;
+
+ Command cmd = new Command("open", -1, new OpenCommandArgument2
+ (OpenMode.ALL, 10000, null, new Property[] {prop},
+ new NumberedSortingInfo[0])) ;
+
+ dynResSet = (XDynamicResultSet) AnyConverter.toObject(
+ new Type(XDynamicResultSet.class),cmdProc.execute(cmd, 0, null));
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ }
+
+ XDynamicResultSet sortedSet = oObj.createSortedDynamicResultSet
+ (dynResSet, new NumberedSortingInfo[0], null) ;
+
+ int rowCount = -1 ;
+ if (sortedSet != null) {
+ XResultSet set = null ;
+ try {
+ set = sortedSet.getStaticResultSet() ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ e.printStackTrace(log);
+ }
+
+ try {
+ set.last() ;
+ rowCount = set.getRow();
+ log.println("Number of rows in result set: " + rowCount);
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Exception occurred while accessing "+
+ "sorted result set :");
+ e.printStackTrace(log);
+ }
+ } else {
+ log.println("Null returned !!!");
+ result &= false ;
+ }
+
+ result &= rowCount > 1 ;
+
+ tRes.tested("createSortedDynamicResultSet()", result) ;
+ }
+
+
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XContextMenuInterception.java b/qadevOOo/tests/java/ifc/ui/_XContextMenuInterception.java
new file mode 100644
index 000000000..062810730
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XContextMenuInterception.java
@@ -0,0 +1,201 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+package ifc.ui;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ui.XContextMenuInterception;
+import com.sun.star.ui.XContextMenuInterceptor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import helper.ContextMenuInterceptor;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.AccessibilityTools;
+import util.DesktopTools;
+
+public class _XContextMenuInterception extends MultiMethodTest {
+
+ private XModel docModel = null;
+ private XContextMenuInterceptor xCI = null;
+ public XContextMenuInterception oObj = null;
+ private XWindow xWindow = null;
+ private XMultiServiceFactory xMSF = null;
+ private Point point = null;
+
+ @Override
+ public void before() {
+ docModel = UnoRuntime.queryInterface(
+ XModel.class,tEnv.getObjRelation("FirstModel"));
+
+ xCI = UnoRuntime.queryInterface(
+ XContextMenuInterceptor.class, new ContextMenuInterceptor());
+
+ xMSF = tParam.getMSF();
+
+ //ensure that the first model is focused
+
+ log.println("ensure that the first model is focused");
+ DesktopTools.bringWindowToFront(docModel);
+
+ waitForEventIdle();
+ }
+
+ @Override
+ public void after() {
+ if (xCI != null) {
+ oObj.releaseContextMenuInterceptor(xCI);
+ }
+ }
+
+ public void _registerContextMenuInterceptor() {
+ oObj.registerContextMenuInterceptor(xCI);
+ openContextMenu(docModel);
+ boolean res = checkHelpEntry();
+ releasePopUp();
+ tRes.tested("registerContextMenuInterceptor()",res);
+ }
+
+ public void _releaseContextMenuInterceptor() {
+ requiredMethod("registerContextMenuInterceptor()");
+ oObj.releaseContextMenuInterceptor(xCI);
+ openContextMenu(docModel);
+ boolean res = checkHelpEntry();
+ releasePopUp();
+ tRes.tested("releaseContextMenuInterceptor()",!res);
+ }
+
+ private boolean checkHelpEntry(){
+ XInterface toolkit = null;
+ boolean res = true;
+
+ log.println("get accessibility...");
+ try{
+ toolkit = (XInterface) xMSF.createInstance("com.sun.star.awt.Toolkit");
+ } catch (com.sun.star.uno.Exception e){
+ log.println("could not get Toolkit " + e.toString());
+ }
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ XAccessible xRoot = null;
+
+ try {
+ xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getTopWindow(0));
+
+ xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't get Window");
+ }
+
+ XAccessibleContext oPopMenu = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.POPUP_MENU,true);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oPopMenu));
+
+ XAccessible xHelp = null;
+ try{
+ log.println("Try to get second entry of context menu...");
+ xHelp = oPopMenu.getAccessibleChild(1);
+
+ } catch (IndexOutOfBoundsException e){
+ throw new StatusException("Not possible to get second entry of context menu",e);
+ }
+
+ if (xHelp == null) throw new StatusException(new Status("second entry of context menu is NULL", false));
+
+ XAccessibleContext xHelpCont = xHelp.getAccessibleContext();
+
+ if ( xHelpCont == null )
+ throw new StatusException(new Status("No able to retrieve accessible context from first entry of context menu",false));
+
+ String aAccessibleName = xHelpCont.getAccessibleName();
+ if ( !aAccessibleName.equals( "Help" )) {
+ log.println("Accessible name found = "+aAccessibleName );
+ log.println("Second entry of context menu is not from context menu interceptor");
+ res=false;
+ }
+
+ return res;
+
+ }
+
+ private void openContextMenu(XModel xModel){
+
+ log.println("try to open context menu...");
+
+ xWindow = AccessibilityTools.getCurrentWindow(xModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XInterface oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
+
+ XAccessibleComponent window = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+
+ point = window.getLocationOnScreen();
+ Rectangle rect = window.getBounds();
+
+ log.println("click mouse button...");
+ try {
+ Robot rob = new Robot();
+ int x = point.X + (rect.Width / 2);
+ int y = point.Y + (rect.Height / 2);
+ rob.mouseMove(x, y);
+ System.out.println("Press Button");
+ rob.mousePress(InputEvent.BUTTON3_MASK);
+ System.out.println("Release Button");
+ rob.mouseRelease(InputEvent.BUTTON3_MASK);
+ System.out.println("done");
+ } catch (java.awt.AWTException e) {
+ log.println("couldn't press mouse button");
+ }
+
+ waitForEventIdle();
+
+ }
+
+ private void releasePopUp() {
+ log.println("release the popup menu");
+ try {
+ Robot rob = new Robot();
+ int x = point.X;
+ int y = point.Y;
+ rob.mouseMove(x, y);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ log.println("couldn't press mouse button");
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManager.java b/qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManager.java
new file mode 100644
index 000000000..ec3a14d6b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManager.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.ui.XModuleUIConfigurationManager;
+import lib.MultiMethodTest;
+
+public class _XModuleUIConfigurationManager extends MultiMethodTest {
+
+ public XModuleUIConfigurationManager oObj = null;
+ private String resourceUrl = null;
+
+ @Override
+ public void before() {
+ resourceUrl = (String)tEnv.getObjRelation("XModuleUIConfigurationManager.ResourceURL");
+ }
+
+ public void _isDefaultSettings() {
+ boolean result;
+ try {
+ result = oObj.isDefaultSettings(resourceUrl);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("'" + resourceUrl + "' is an illegal resource.");
+ result = false;
+ }
+ String notPossibleUrl = "private:resource/menubar/dingsbums";
+ try {
+ result &= !oObj.isDefaultSettings(notPossibleUrl);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("'" + notPossibleUrl + "' is an illegal resource.");
+ result = false;
+ }
+
+ tRes.tested("isDefaultSettings()", result);
+ }
+
+ public void _getDefaultSettings() {
+ boolean result;
+ try {
+ XIndexAccess xIndexAcc = oObj.getDefaultSettings(resourceUrl);
+ result = xIndexAcc != null;
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("'" + resourceUrl + "' is an illegal resource.");
+ result = false;
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ log.println("No resource '" + resourceUrl + "' available.");
+ result = false;
+ }
+ tRes.tested("getDefaultSettings()", result);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManagerSupplier.java b/qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManagerSupplier.java
new file mode 100644
index 000000000..8a9dfe7b3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManagerSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.ui.XModuleUIConfigurationManagerSupplier;
+import lib.MultiMethodTest;
+
+public class _XModuleUIConfigurationManagerSupplier extends MultiMethodTest {
+
+ public XModuleUIConfigurationManagerSupplier oObj;
+
+ public void _getUIConfigurationManager() {
+ String configManagerName = null;
+ String implementationName = null;
+ try {
+ configManagerName = (String)tEnv.getObjRelation("XModuleUIConfigurationManagerSupplier.ConfigurationManager");
+ implementationName = (String)tEnv.getObjRelation("XModuleUIConfigurationManagerSupplier.ConfigManagerImplementationName");
+
+ // get a config manager for the StartModule
+ Object o = oObj.getUIConfigurationManager(configManagerName);
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface(XServiceInfo.class, o);
+ String impName = xServiceInfo.getImplementationName();
+ boolean result = impName.equals(implementationName);
+ if (!result) {
+ log.println("Returned implementation was '" + impName +
+ "' but should have been '" + implementationName + "'");
+ }
+ tRes.tested("getUIConfigurationManager()", result);
+ return;
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ log.println("Could not get a configuration manager called '" + configManagerName + "'");
+ e.printStackTrace(log);
+ }
+ tRes.tested("getUIConfigurationManager()", false);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIConfiguration.java b/qadevOOo/tests/java/ifc/ui/_XUIConfiguration.java
new file mode 100644
index 000000000..73290288c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIConfiguration.java
@@ -0,0 +1,94 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.ui.XUIConfiguration;
+import com.sun.star.ui.XUIConfigurationListener;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.ui.XUIConfiguration</code>
+* interface methods :
+* <ul>
+* <li><code> addConfigurationListener()</code></li>
+* <li><code> removeConfigurationListener()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.ui.XUIConfiguration
+*/
+
+public class _XUIConfiguration extends MultiMethodTest {
+
+ public XUIConfiguration oObj;
+ XUIConfigurationListenerImpl xListener = null;
+
+ /**
+ * Interface for the Listener of the object relation
+ * <CODE>XUIConfiguration.XUIConfigurationListenerImpl</CODE>
+ * @see com.sun.star.ui.XUIConfigurationListener
+ */
+ public interface XUIConfigurationListenerImpl
+ extends XUIConfigurationListener {
+ void reset();
+ void fireEvent();
+ boolean actionWasTriggered();
+ }
+
+
+ /**
+ * try to get a listener out of the object relation
+ * <CODE>XUIConfiguration.XUIConfigurationListenerImpl</CODE>
+ */
+ @Override
+ public void before() {
+ xListener = (XUIConfigurationListenerImpl)tEnv.getObjRelation(
+ "XUIConfiguration.XUIConfigurationListenerImpl");
+ }
+
+ /**
+ * adds a listener and fires an event
+ * Has <B>OK</B> status if listener was called
+ */
+ public void _addConfigurationListener() {
+ oObj.addConfigurationListener(xListener);
+ xListener.fireEvent();
+ tRes.tested("addConfigurationListener()", xListener.actionWasTriggered());
+ }
+
+ /**
+ * removes the listener and calls an event.
+ * Has <B>OK</B> status if listener is not called.
+ */
+ public void _removeConfigurationListener() {
+ requiredMethod("addConfigurationListener()");
+ oObj.removeConfigurationListener(xListener);
+ xListener.reset();
+ xListener.fireEvent();
+ tRes.tested("removeConfigurationListener()", !xListener.actionWasTriggered());
+ }
+
+ /**
+ * Dispose because the UIConfigurationManager has to be recreated
+ */
+ @Override
+ public void after() {
+ disposeEnvironment();
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIConfigurationListener.java b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationListener.java
new file mode 100644
index 000000000..b1ef75528
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationListener.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.ui.ConfigurationEvent;
+import com.sun.star.ui.XUIConfigurationListener;
+import lib.MultiMethodTest;
+
+public class _XUIConfigurationListener extends MultiMethodTest {
+
+ public XUIConfigurationListener oObj = null;
+
+ public void _elementInserted() {
+ ConfigurationEvent event = new ConfigurationEvent();
+ oObj.elementInserted(event);
+ tRes.tested("elementInserted()", true);
+ }
+ public void _elementRemoved() {
+ ConfigurationEvent event = new ConfigurationEvent();
+ oObj.elementRemoved(event);
+ tRes.tested("elementRemoved()", true);
+ }
+ public void _elementReplaced() {
+ ConfigurationEvent event = new ConfigurationEvent();
+ oObj.elementReplaced(event);
+ tRes.tested("elementReplaced()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java
new file mode 100644
index 000000000..83923634b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java
@@ -0,0 +1,354 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.ui;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.ui.UIElementType;
+import com.sun.star.ui.XImageManager;
+import com.sun.star.ui.XUIConfigurationManager;
+import java.io.PrintWriter;
+import lib.MultiMethodTest;
+
+public class _XUIConfigurationManager extends MultiMethodTest {
+
+ public XUIConfigurationManager oObj;
+ private static final String msResourceUrl = "private:resource/menubar/menubar";
+ private static final String msMyResourceUrl = "private:resource/menubar/mymenubar";
+ private XIndexContainer mxSettings = null;
+ private XIndexAccess mxMenuBarSettings = null;
+ private XMultiServiceFactory mxMSF = null;
+ private String sShortCutManagerServiceName = null;
+
+
+ /**
+ * Some stuff before the tests:
+ * extract the multi service factory.
+ */
+ @Override
+ protected void before() {
+ mxMSF = tParam.getMSF();
+ sShortCutManagerServiceName = (String)tEnv.getObjRelation("XConfigurationManager.ShortCutManager");
+
+ }
+
+ /**
+ * reset all changes: do at the end.
+ */
+ public void _reset() {
+ requiredMethod("removeSettings()");
+ oObj.reset();
+ tRes.tested("reset()", true);
+ }
+
+ public void _getUIElementsInfo() {
+ boolean result = true;
+ try {
+ PropertyValue[][]props = oObj.getUIElementsInfo(UIElementType.UNKNOWN);
+ for (int i=0; i<props.length; i++)
+ for(int j=0; j<props[i].length; j++)
+ log.println("Prop["+i+"]["+j+"]: " + props[i][j].Name + " " + props[i][j].Value.toString());
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("getUIElementsInfo()", result);
+ }
+
+ public void _createSettings() {
+ mxSettings = oObj.createSettings();
+ util.dbg.printInterfaces(mxSettings);
+ tRes.tested("createSettings()", mxSettings != null);
+ }
+
+ public void _hasSettings() {
+ boolean result = false;
+ try {
+ result = oObj.hasSettings(msResourceUrl);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println(e);
+ result = false;
+ }
+ tRes.tested("hasSettings()", result);
+ }
+
+ public void _getSettings() {
+ requiredMethod("hasSettings()");
+ boolean result = true;
+ try {
+ mxMenuBarSettings = oObj.getSettings(msResourceUrl, true);
+ for (int i=0; i<mxMenuBarSettings.getCount(); i++) {
+ Object[] o = (Object[])mxMenuBarSettings.getByIndex(i);
+ log.println("+++++++++ i = " + i);
+ for (int j=0; j<o.length; j++) {
+ PropertyValue prop = (PropertyValue)o[j];
+ log.println("Property" + j + ": " + prop.Name + " " + prop.Value.toString());
+ }
+ }
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("getSettings()", result);
+ }
+
+ public void _replaceSettings() {
+ requiredMethod("getSettings()");
+ boolean result = true;
+ PropertyValue[] prop = createMenuBarEntry("My Entry", mxMenuBarSettings, mxMSF, log);
+ if (prop == null) {
+ tRes.tested("replaceSettings()", false);
+ return;
+ }
+
+ createMenuBarItem("Click for Macro", UnoRuntime.queryInterface(
+ XIndexContainer.class, prop[3].Value), log);
+
+ XIndexContainer x = UnoRuntime.queryInterface(XIndexContainer.class, mxMenuBarSettings);
+ try {
+ x.insertByIndex(x.getCount(), prop);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+
+ try {
+ oObj.replaceSettings(msResourceUrl, mxMenuBarSettings);
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ _getSettings();
+ tRes.tested("replaceSettings()", result);
+ }
+
+ public void _removeSettings() {
+ requiredMethod("insertSettings()");
+ boolean result = true;
+ try {
+ oObj.removeSettings(msMyResourceUrl);
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ tRes.tested("removeSettings()", result);
+ }
+
+ public void _insertSettings() {
+ requiredMethod("createSettings()");
+ requiredMethod("replaceSettings()");
+ boolean result = true;
+ util.dbg.printInterfaces(mxSettings);
+ PropertyValue[] prop = createMenuBarEntry("A new entry", mxSettings, mxMSF, log);
+ if (prop == null) {
+ tRes.tested("replaceSettings()", false);
+ return;
+ }
+
+ createMenuBarItem("A new sub entry", UnoRuntime.queryInterface(
+ XIndexContainer.class, prop[3].Value), log);
+
+ XIndexContainer x = UnoRuntime.queryInterface(XIndexContainer.class,mxSettings);
+ try {
+ int count = x.getCount();
+ x.insertByIndex(count, prop);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+
+ try {
+ oObj.insertSettings(msMyResourceUrl, mxSettings);
+ }
+ catch(com.sun.star.container.ElementExistException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ e.printStackTrace(log);
+ result = false;
+ }
+ tRes.tested("insertSettings()", result);
+ }
+
+ /**
+ * Only a short test.
+ * See complex.imageManager.CheckImageManager for a more extensive test of
+ * this implementation.
+ */
+ public void _getImageManager() {
+ Object o = oObj.getImageManager();
+ log.println("###### ImageManager ");
+ XImageManager xImageManager = UnoRuntime.queryInterface(XImageManager.class, o);
+ tRes.tested("getImageManager()", xImageManager != null);
+ }
+
+
+ /**
+ * get a shortcut manager
+ */
+ public void _getShortCutManager() {
+ Object o = oObj.getShortCutManager();
+ XServiceInfo xSI = UnoRuntime.queryInterface(XServiceInfo.class,o);
+ String[] serviceNames = xSI.getSupportedServiceNames();
+ boolean bSupportedServiceFound = false;
+ for (int i=0; i<serviceNames.length; i++) {
+ log.println("SuppService: " + serviceNames[i]);
+ if (serviceNames[i].equals(sShortCutManagerServiceName)) {
+ bSupportedServiceFound = true;
+ }
+ }
+ tRes.tested("getShortCutManager()", bSupportedServiceFound);
+ }
+
+ public void _getEventsManager() {
+ Object o = oObj.getEventsManager();
+ tRes.tested("getEventsManager()", o == null);
+ }
+
+ /**
+ * Create a menu bar entry for adding to the menu bar of the Office.
+ * @param sLabelName The name of the new entry.
+ * @param xMenuBarSettings The existing menu bar settings, used for creating the new entry.
+ * @return An array of properties of the new entry.
+ */
+ public static PropertyValue[] createMenuBarEntry(String sLabelName, XIndexAccess xMenuBarSettings, XMultiServiceFactory xMSF, PrintWriter log) {
+ PropertyValue[] prop = new PropertyValue[4];
+ prop[0] = new PropertyValue();
+ prop[0].Name = "CommandURL";
+ prop[0].Value = "vnd.openoffice.org:MyMenu";
+ prop[1] = new PropertyValue();
+ prop[1].Name = "Label";
+ prop[1].Value = sLabelName;
+ prop[2] = new PropertyValue();
+ prop[2].Name = "Type";
+ prop[2].Value = Short.valueOf((short)0);
+ prop[3] = new PropertyValue();
+ prop[3].Name = "ItemDescriptorContainer";
+
+ XSingleComponentFactory xFactory = UnoRuntime.queryInterface(
+ XSingleComponentFactory.class, xMenuBarSettings);
+ try {
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+ XComponentContext xContext = UnoRuntime.queryInterface(
+ XComponentContext.class, xProp.getPropertyValue("DefaultContext"));
+ prop[3].Value = xFactory.createInstanceWithContext(xContext);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ log.println("Could not create an instance for ItemDescriptorContainer property.");
+ e.printStackTrace(log);
+ return null;
+ }
+ return prop;
+ }
+
+ /**
+ * Create a sub entry to the menu bar.
+ * @param sLabelName The name of the entry in the UI.
+ * @param xDescriptionContainer The parent entry in the menu bar where
+ * this entry is added.
+ */
+ public static void createMenuBarItem(String sLabelName, XIndexContainer xDescriptionContainer, PrintWriter log) {
+ PropertyValue[]aMenuItem = new PropertyValue[3];
+ // create a menu item
+ aMenuItem[0] = new PropertyValue();
+ aMenuItem[0].Name = "CommandURL";
+ aMenuItem[0].Value = "macro:///Standard.Module1.Test()";
+ aMenuItem[1] = new PropertyValue();
+ aMenuItem[1].Name = "Label";
+ aMenuItem[1].Value = sLabelName;
+ aMenuItem[2] = new PropertyValue();
+ aMenuItem[2].Name = "Type";
+ aMenuItem[2].Value = Short.valueOf((short)0);
+
+ try {
+ xDescriptionContainer.insertByIndex(0, aMenuItem);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIConfigurationPersistence.java b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationPersistence.java
new file mode 100644
index 000000000..a7a7b5c43
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationPersistence.java
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.embed.XStorage;
+import com.sun.star.ui.XUIConfigurationPersistence;
+import lib.MultiMethodTest;
+
+public class _XUIConfigurationPersistence extends MultiMethodTest {
+
+ public XUIConfigurationPersistence oObj;
+ private XStorage xStore = null;
+
+ @Override
+ public void before() {
+ xStore = (XStorage)tEnv.getObjRelation("XUIConfigurationStorage.Storage");
+ }
+
+ public void _reload() {
+ try {
+ oObj.reload();
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ }
+ tRes.tested("reload()", true);
+ }
+
+ public void _store() {
+ try {
+ oObj.store();
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ }
+ tRes.tested("store()", true);
+ }
+
+ public void _storeToStorage() {
+ boolean result = true;
+ try {
+ oObj.storeToStorage(xStore);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("storeToStorage()", result);
+ }
+
+ public void _isModified() {
+ tRes.tested("isModified()", !oObj.isModified());
+ }
+
+ public void _isReadOnly() {
+ tRes.tested("isReadOnly()", !oObj.isReadOnly());
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIConfigurationStorage.java b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationStorage.java
new file mode 100644
index 000000000..1e40a0577
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIConfigurationStorage.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.embed.XStorage;
+import com.sun.star.ui.XUIConfigurationStorage;
+import lib.MultiMethodTest;
+/**
+* Testing <code>com.sun.star.ui.XUIConfigurationStorage</code>
+* interface methods :
+* <ul>
+* <li><code> setStorage()</code></li>
+* <li><code> hasStorage()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ui.XUIConfigurationStorage
+*/
+
+public class _XUIConfigurationStorage extends MultiMethodTest {
+
+ public XUIConfigurationStorage oObj;
+ private XStorage xStore = null;
+
+ @Override
+ public void before() {
+ xStore = (XStorage)tEnv.getObjRelation("XUIConfigurationStorage.Storage");
+ }
+
+ /**
+ * Set the object relation <code>XUIConfigurationStorage.Storage</code>
+ * as storage.
+ * Has <b>OK</b> status if no exception is thrown.
+ */
+ public void _setStorage() {
+ if (!oObj.hasStorage())
+ oObj.setStorage(xStore);
+ else
+ log.println("For initializing this object, the setStorage() method was already called at the object.");
+ tRes.tested("setStorage()", true);
+ }
+
+ /**
+ * Queries object for a storage.
+ * Has <b>OK</b> status if <code>hasStorage</code> returns <code>OK</code>
+ */
+ public void _hasStorage() {
+ requiredMethod("setStorage()");
+ boolean has = oObj.hasStorage();
+ tRes.tested("hasStorage()", has);
+ }
+
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIElementFactory.java b/qadevOOo/tests/java/ifc/ui/_XUIElementFactory.java
new file mode 100644
index 000000000..1883c081d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIElementFactory.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.ui.XUIElement;
+import com.sun.star.ui.XUIElementFactory;
+import lib.MultiMethodTest;
+
+public class _XUIElementFactory extends MultiMethodTest {
+
+ public XUIElementFactory oObj;
+
+ public void _createUIElement() {
+ boolean result = true;
+ PropertyValue[] prop = new PropertyValue[0];
+ try {
+ XUIElement element = oObj.createUIElement("private:resource/menubar/menubar", prop);
+ result = (element!= null);
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("createUIElement()", result);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ui/_XUIElementFactoryRegistration.java b/qadevOOo/tests/java/ifc/ui/_XUIElementFactoryRegistration.java
new file mode 100644
index 000000000..e2540e49d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/_XUIElementFactoryRegistration.java
@@ -0,0 +1,72 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.ui.XUIElementFactory;
+import com.sun.star.ui.XUIElementFactoryRegistration;
+import lib.MultiMethodTest;
+
+public class _XUIElementFactoryRegistration extends MultiMethodTest {
+
+ public XUIElementFactoryRegistration oObj;
+
+ public void _registerFactory() {
+ boolean result = true;
+ try {
+ oObj.registerFactory("private:resource/menubar/menubar", "MyOwnMenubar", "", "com.sun.star.comp.framework.MenuBarFactory");
+ }
+ catch(com.sun.star.container.ElementExistException e) {
+ result = false;
+ e.printStackTrace(log);
+ }
+ tRes.tested("registerFactory()", result);
+ }
+
+ public void _getRegisteredFactories() {
+ requiredMethod("registerFactory()");
+ PropertyValue[][]props = oObj.getRegisteredFactories();
+ if (props == null) {
+ log.println("Null was returned as PropertyValue[][]");
+ props = new PropertyValue[0][0];
+ }
+ for(int i=0; i<props.length; i++)
+ for(int j=0; j<props[i].length; j++)
+ log.println("Factory: " + props[i][j].Name + " - " + props[i][j].Value);
+ tRes.tested("getRegisteredFactories()", props.length != 0);
+ }
+
+ public void _getFactory() {
+ requiredMethod("registerFactory()");
+ XUIElementFactory xFactory = oObj.getFactory("private:resource/menubar/menubar", "");
+ tRes.tested("getFactory()", xFactory != null);
+ }
+
+ public void _deregisterFactory() {
+ executeMethod("getRegisteredFactory()");
+ executeMethod("getFactory()");
+ try {
+ oObj.deregisterFactory("private:resource/menubar/menubar", "MyOwnMenubar", "");
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ e.printStackTrace(log);
+ }
+ tRes.tested("deregisterFactory()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_FilePicker.java b/qadevOOo/tests/java/ifc/ui/dialogs/_FilePicker.java
new file mode 100644
index 000000000..32f8c1f16
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_FilePicker.java
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiPropertyTest;
+
+public class _FilePicker extends MultiPropertyTest {
+
+
+} // EOF Calendar
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XControlAccess.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XControlAccess.java
new file mode 100644
index 000000000..e290ab4d9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XControlAccess.java
@@ -0,0 +1,133 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.ui.dialogs.XControlAccess;
+import com.sun.star.ui.dialogs.XControlInformation;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.ui.XFilePicker</code>
+* interface methods :
+* <ul>
+* <li><code> setControlProperty()</code></li>
+* <li><code> getControlProperty()</code></li>
+* </ul> <p>
+*
+* For testing this interface the component must implement
+* <code>com.sun.star.ui.dialogs.XControlInformation</code>
+* interface. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ui.XFolderPicker
+*/
+public class _XControlAccess extends MultiMethodTest {
+
+ public XControlAccess oObj = null;
+ private String[] supControls = null ;
+ private String[][] supProperties = null ;
+
+ /**
+ * Tries to query <code>com.sun.star.ui.dialogs.XControlInformation</code>
+ * interface, and obtain properties' names of each available
+ * control. <p>
+ *
+ * @throw StatusException if interface is not supported or
+ * properties couldn't be get.
+ */
+ @Override
+ protected void before() {
+ XControlInformation xCI = UnoRuntime.queryInterface
+ (XControlInformation.class, oObj);
+
+ if (xCI == null) throw new StatusException
+ (Status.failed("XControlInformation not supported")) ;
+
+ supControls = xCI.getSupportedControls();
+ supProperties = new String[supControls.length][];
+ for (int i = 0; i < supControls.length; i++) {
+ try {
+ supProperties[i] =
+ xCI.getSupportedControlProperties(supControls[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ throw new StatusException
+ ("Exception while init.", e) ;
+ }
+ }
+ }
+
+ /**
+ * Tries to change each property of each control.
+ * Has <b>OK</b> status if values are properly changed.
+ */
+ public void _setControlProperty() {
+ boolean result = true ;
+ String error = "";
+
+ for (int i = 0; i < supControls.length; i++) {
+ log.println("Checking properties for control " + supControls[i]);
+ for (int j = 0; j < supProperties[i].length; j++) {
+ log.println("\t" + supProperties[i][j]);
+ try {
+ Object oldVal = oObj.getControlProperty(supControls[i],
+ supProperties[i][j]);
+ Object newVal = util.ValueChanger.changePValue(oldVal);
+ if (supProperties[i][j].startsWith("Help")) {
+ newVal = "HID:133";
+ }
+ oObj.setControlProperty
+ (supControls[i], supProperties[i][j], newVal) ;
+ Object resVal = oObj.getControlProperty(supControls[i],
+ supProperties[i][j]);
+ log.println("\t Old:" + oldVal + ",New:" + newVal
+ + ",Result:" + resVal);
+ if (!util.ValueComparer.equalValue(newVal, resVal)) {
+ error += "####Property '"+supProperties[i][j]+
+ " of "+supControls[i]+" didn't work\n\r"+
+ "\t Old:" + oldVal + ",New:" + newVal
+ + ",Result:" + resVal+ "\n\r";
+ }
+ result &= util.ValueComparer.equalValue(newVal, resVal);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected exception:" );
+ e.printStackTrace(log);
+ result = false ;
+ }
+ }
+ }
+
+ log.println(error);
+
+ tRes.tested("setControlProperty()", result) ;
+ tRes.tested("getControlProperty()", result) ;
+ }
+
+ /**
+ * Does nothing. Testing performed in <code>setControlProperty</code>
+ * method test.
+ */
+ public void _getControlProperty() {}
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XControlInformation.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XControlInformation.java
new file mode 100644
index 000000000..1da743110
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XControlInformation.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ui.dialogs.XControlInformation;
+
+/**
+* Testing <code>com.sun.star.ui.XControlInformation</code>
+* interface methods :
+* <ul>
+* <li><code> getSupportedControls()</code></li>
+* <li><code> isControlSupported()</code></li>
+* <li><code> getSupportedControlProperties()</code></li>
+* <li><code> isControlPropertySupported()</code></li>
+* </ul> <p>
+*
+* @see com.sun.star.ui.XFolderPicker
+*/
+public class _XControlInformation extends MultiMethodTest {
+
+ public XControlInformation oObj = null;
+ private String[] supControls = null ;
+ private String[][] supProperties = null ;
+
+ /**
+ * Gets supported controls and stores them. <p>
+ * Has <b>OK</b> status if not <code>null</code> returned.
+ */
+ public void _getSupportedControls() {
+ supControls = oObj.getSupportedControls();
+
+ tRes.tested("getSupportedControls()", supControls != null) ;
+ }
+
+ /**
+ * For every available control check if it is supported.
+ * Also wrong control name (non-existent and empty) are checked.<p>
+ *
+ * Has <b>OK</b> status if <code>true</code> returned for valid
+ * control names and <code>false</code> for invalid.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSupportedControls </code> to have
+ * valid control names</li>
+ * </ul>
+ */
+ public void _isControlSupported() {
+ requiredMethod("getSupportedControls()") ;
+
+ boolean result = true ;
+
+ log.println("Supported controls :");
+ for (int i = 0; i < supControls.length; i++) {
+ log.println(" " + supControls[i]);
+ result &= oObj.isControlSupported(supControls[i]) ;
+ }
+
+ result &= !oObj.isControlSupported("SuchNameMustNotExist");
+ result &= !oObj.isControlSupported("");
+
+ tRes.tested("isControlSupported()", result) ;
+ }
+
+ /**
+ * For each control obtains its properties and stores them. Then tries to
+ * obtain properties for control with invalid name. <p>
+ *
+ * Has <b>OK</b> status if properties arrays are not null and exception
+ * thrown or null returned for control with invalid name <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSupportedControls </code> to have
+ * valid control names</li>
+ * </ul>
+ */
+ public void _getSupportedControlProperties() {
+ requiredMethod("getSupportedControls()") ;
+
+ supProperties = new String[supControls.length][];
+ for (int i = 0; i < supControls.length; i++) {
+ log.println("Getting properties for control: " + supControls[i]);
+ try {
+ supProperties[i] =
+ oObj.getSupportedControlProperties(supControls[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected exception:" + e);
+ }
+ }
+
+ try {
+ oObj.getSupportedControlProperties("NoSuchControl");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Expected exception getting properties " +
+ "for wrong control:" + e);
+ }
+
+ tRes.tested("getSupportedControlProperties()", true) ;
+ }
+
+ /**
+ * <ul>
+ * <li>For each property of each control checks if it is supported.</li>
+ * <li>For each control checks if non-existent property
+ * (with wrong name and with empty name) supported.</li>
+ * <li>Tries to check the property of non-existent control </li>
+ * </ul>
+ * <p>
+ * Has <b>OK</b> status if <code>true</code> returned for the first case,
+ * <code>false</code> for the second, and <code>false</code> or exception
+ * for the third.<p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getSupportedControlProperties </code> to have a set of
+ * valid properties </li>
+ * </ul>
+ */
+ public void _isControlPropertySupported() {
+ requiredMethod("getSupportedControlProperties()") ;
+
+ boolean result = true;
+
+ for (int i = 0; i < supControls.length; i++) {
+ log.println("Checking properties for control " + supControls[i]);
+ for (int j = 0; j < supProperties[i].length; j++) {
+ log.println(" " + supProperties[i][j]);
+ try {
+ result &= oObj.isControlPropertySupported
+ (supControls[i], supProperties[i][j]) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Unexpected exception:" + e);
+ result = false ;
+ }
+ }
+
+ try {
+ result &= !oObj.isControlPropertySupported
+ (supControls[i], "NoSuchPropertyForThisControl") ;
+ result &= !oObj.isControlPropertySupported
+ (supControls[i], "") ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println
+ ("Unexpected exception (just false must be returned):" + e);
+ result = false ;
+ }
+ }
+
+ try {
+ result &= !oObj.isControlPropertySupported("NoSuchControl", "") ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Expected exception: " + e);
+ }
+
+ tRes.tested("isControlPropertySupported()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XExecutableDialog.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XExecutableDialog.java
new file mode 100644
index 000000000..eddf139c6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XExecutableDialog.java
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ui.dialogs.XExecutableDialog;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XCancellable;
+
+/**
+ * Testing <code>com.sun.star.ui.dialogs.XExecutableDialog</code>
+ * interface methods :
+ * <ul>
+ * <li><code> setTitle()</code></li>
+ * <li><code> execute()</code></li>
+ * </ul> <p>
+ *
+ * These interface methods can't be checked, thereby methods
+ * are just called. <code>execute</code> method is not called
+ * at all as the dialog shown can't be disposed. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.ui.dialogs.XExecutableDialog
+ */
+public class _XExecutableDialog extends MultiMethodTest {
+
+ public XExecutableDialog oObj = null;
+ private ExecThread eThread = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _setTitle() {
+ oObj.setTitle("The Title");
+ tRes.tested("setTitle()",true);
+ }
+
+ /**
+ * This method is excluded from automated test since
+ * we can't close the dialog. <p>
+ * Always has <b>OK</b> status.
+ */
+ public void _execute() {
+ String aName = tEnv.getTestCase().getObjectName();
+ boolean result = false;
+ if (aName.startsWith("OData") || aName.startsWith("OSQL")) {
+ log.println("dbaccess dialogs can't be closed via API");
+ log.println("therefore they aren't executed");
+ log.println("and the result is set to true");
+ result = true;
+ } else {
+ eThread = new ExecThread(oObj);
+ log.println("Starting Dialog");
+ eThread.start();
+ XCancellable canc = UnoRuntime.queryInterface
+ (XCancellable.class, tEnv.getTestObject());
+ waitForEventIdle();
+ if (canc != null) {
+ closeDialog();
+ short res = eThread.execRes;
+ log.println("result: "+res);
+ result = (res == 0);
+ } else {
+ this.disposeEnvironment();
+ result=true;
+ log.println("XCancellable isn't supported and the "+
+ "environment is killed hard");
+ }
+
+
+ }
+ tRes.tested("execute()",result);
+ }
+
+ /**
+ * Calls <code>execute()</code> method in a separate thread.
+ * Necessary to check if this method works
+ */
+ protected class ExecThread extends Thread {
+
+ public short execRes = (short) 17;
+ private final XExecutableDialog Diag;
+
+ public ExecThread(XExecutableDialog Diag) {
+ this.Diag = Diag ;
+ }
+
+ @Override
+ public void run() {
+ try {
+ execRes = Diag.execute();
+ System.out.println("HERE: "+execRes);
+ } catch(Exception e) {
+ log.println("Thread has been interrupted ... ");
+ }
+ }
+ }
+
+ @Override
+ public void after() {
+ if (eThread.isAlive()) {
+ log.println("Thread didn't die ... cleaning up");
+ disposeEnvironment();
+ }
+ }
+
+ private void closeDialog() {
+ XCancellable canc = UnoRuntime.queryInterface(
+ XCancellable.class, tEnv.getTestObject());
+ if (canc != null) {
+ log.println("Cancelling Dialog");
+ canc.cancel();
+ } else {
+ this.disposeEnvironment();
+ }
+
+ long st = System.currentTimeMillis();
+ boolean toLong = false;
+
+ log.println("waiting for dialog to close");
+
+ while (eThread.isAlive() && !toLong) {
+ //wait for dialog to close
+ toLong = (System.currentTimeMillis()-st > 10000);
+ }
+
+ log.println("done");
+
+ try {
+ if (eThread.isAlive()) {
+ log.println("Interrupting Thread");
+ eThread.interrupt();
+ Thread.yield();
+ }
+ } catch (Exception e) {
+ // who cares ;-)
+ }
+
+ st = System.currentTimeMillis();
+ toLong = false;
+
+ log.println("waiting for interruption to work");
+
+ while (eThread.isAlive() && !toLong) {
+ //wait for dialog to close
+ toLong = (System.currentTimeMillis()-st > 10000);
+ }
+
+ log.println("DialogThread alive: "+eThread.isAlive());
+
+ log.println("done");
+
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePicker.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePicker.java
new file mode 100644
index 000000000..3a2a71ec9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePicker.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ui.dialogs.XFilePicker2;
+
+/**
+* Testing <code>com.sun.star.ui.XFilePicker</code>
+* interface methods :
+* <ul>
+* <li><code> setMultiSelectionMode()</code></li>
+* <li><code> setDefaultName()</code></li>
+* <li><code> setDisplayDirectory()</code></li>
+* <li><code> getDisplayDirectory()</code></li>
+* <li><code> getPath()</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>'space-metal.jpg'</code> : just to exist. </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ui.XFolderPicker
+*/
+public class _XFilePicker extends MultiMethodTest {
+
+ public XFilePicker2 oObj = null;
+ private String dir = null ;
+ private static final String fname = "space-metal.jpg" ;
+
+ /**
+ * Sets the current directory to the test document directory. <p>
+ * Has <b>OK</b> status if no exceptions occurred.
+ */
+ public void _setDisplayDirectory() {
+ boolean result = true ;
+ dir = util.utils.getFullTestURL("") ;
+
+ log.println("Trying to set dir '" + dir + "'") ;
+ try {
+ oObj.setDisplayDirectory(dir) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Directory '" + dir + "' not found :" + e) ;
+ result = false ;
+ }
+
+ tRes.tested("setDisplayDirectory()", result) ;
+ }
+
+ /**
+ * Gets the current directory. <p>
+ * Has <b>OK</b> status if get value is equal to set value
+ * passed to <code>setDisplayDirectory</code> <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setDisplayDirectory </code> </li>
+ * </ul>
+ */
+ public void _getDisplayDirectory() {
+ requiredMethod("setDisplayDirectory()") ;
+
+ String gDir = oObj.getDisplayDirectory() ;
+
+ log.println("Get dir '" + gDir + "'") ;
+
+ tRes.tested("getDisplayDirectory()", dir.equals(gDir)) ;
+ }
+
+ /**
+ * Sets default name to file name existing in test document
+ * directory ('space-metal.jpg'). <p>
+ * Has <b>OK</b> status if no exceptions occurred.
+ */
+ public void _setDefaultName() {
+ boolean result = true ;
+
+ try {
+ oObj.setDefaultName(fname) ;
+ } catch (Exception e) {
+ log.println("Exception setting default name :" + e) ;
+ result = false ;
+ }
+
+ tRes.tested("setDefaultName()", result) ;
+ }
+
+ /**
+ * Just switch object to MultiSelectionMode. There is no ways
+ * to check this method (only interactively). <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setMultiSelectionMode() {
+
+ oObj.setMultiSelectionMode(true) ;
+
+ tRes.tested("setMultiSelectionMode()", true) ;
+ }
+
+ /**
+ * Gets completed path from dialog. If <code>execute()</code>
+ * method was not called then zero length array is returned.
+ * So to check actual functionality of this method interactive
+ * testing is required. <p>
+ * Has <b>OK</b> status if zero length array returned (this
+ * occurs if <code>execute()</code>
+ * method was not called yet) or if array contains at least one
+ * element and it equals to <code>[Directory set] +
+ * [Default file name set]</code>. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setDisplayDirectory </code> </li>
+ * <li> <code> setDefaultName </code> </li>
+ * </ul>
+ */
+ public void _getFiles() {
+ requiredMethod("setDisplayDirectory()");
+ requiredMethod("setDefaultName()");
+
+ String[] files = oObj.getSelectedFiles();
+
+ if (files.length > 0) {
+ log.println("Path get : '" + files[0] + "'") ;
+
+ tRes.tested("getFiles()", (dir + fname).equals(files[0])) ;
+ } else {
+ log.println("No files were selected or execute() method was not called.") ;
+
+ tRes.tested("getFiles()", true);
+ }
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerControlAccess.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerControlAccess.java
new file mode 100644
index 000000000..d559716a0
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerControlAccess.java
@@ -0,0 +1,194 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.ValueChanger;
+import util.ValueComparer;
+
+import com.sun.star.ui.dialogs.XFilePickerControlAccess;
+
+/**
+* Testing <code>com.sun.star.ui.XFilePickerControlAccess</code>
+* interface methods :
+* <ul>
+* <li><code> setValue()</code></li>
+* <li><code> getValue()</code></li>
+* <li><code> setLabel()</code></li>
+* <li><code> getLabel()</code></li>
+* <li><code> getFocused()</code></li>
+* <li><code> enableControl()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XFilePickerControlAccess.ControlID'</code> (of type
+* <code>Short</code>) : control identifier in the extended
+* FilePicker dialog. </li>
+* <li> <code>'XFilePickerControlAccess.ControlValue'</code> (of type
+* <code>Object</code>) <b>optional</b> (but mostly desirable
+* since the control has empty initial value):
+* the value which can set for the control . </li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ui.XFilePickerControlAccess
+*/
+public class _XFilePickerControlAccess extends MultiMethodTest {
+
+ public XFilePickerControlAccess oObj = null;
+ private short cntlID = -1 ;
+ private Object oldVal = null ;
+ private String oldLab = null ;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ Short ID = (Short) tEnv.getObjRelation
+ ("XFilePickerControlAccess.ControlID") ;
+ if (ID == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException(Status.failed("Relation not found")) ;
+ }
+
+ cntlID = ID.shortValue() ;
+ }
+
+ /**
+ * Gets the value of the control and stores it. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getValue() {
+ boolean result = true ;
+
+ try {
+ oldVal = oObj.getValue(cntlID,(short)0);
+ } catch (Exception e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("getValue()", result) ;
+ }
+
+ /**
+ * Changes the value gotten by <code>getValue</code> method,
+ * or gets the value from relation if it exits.
+ * Sets this value and then check if it was properly set. <p>
+ * Has <b>OK</b> status if <code>getValue</code> method returns
+ * the same value which was set. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getValue </code> </li>
+ * </ul>
+ */
+ public void _setValue() {
+ requiredMethod("getValue()") ;
+ boolean result = true ;
+
+ Object newVal = tEnv.getObjRelation
+ ("XFilePickerControlAccess.ControlValue");
+ if (newVal == null) {
+ newVal = ValueChanger.changePValue(oldVal) ;
+ }
+
+ Object getVal = null ;
+
+ try {
+ oObj.setValue(cntlID, (short)0 , newVal) ;
+ getVal = oObj.getValue(cntlID,(short)0) ;
+ } catch (Exception e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ result &= ValueComparer.equalValue(newVal, getVal) ;
+
+ tRes.tested("setValue()", result) ;
+ }
+
+ /**
+ * Gets the label of the control and stores it. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _getLabel() {
+
+ try {
+ oldLab = oObj.getLabel(cntlID);
+ } catch (Exception e) {
+ e.printStackTrace(log) ;
+ }
+
+ tRes.tested("getLabel()", oldLab != null) ;
+ }
+
+ /**
+ * Changes the label gotten by <code>getLabel</code> method,
+ * set this label and then check if it was properly set. <p>
+ * Has <b>OK</b> status if <code>getLabel</code> method returns
+ * the same value which was set. <p>
+ * The following method tests are to be completed successfully before:
+ * <ul>
+ * <li> <code> getLabel </code> </li>
+ * </ul>
+ */
+ public void _setLabel() {
+ requiredMethod("getLabel()") ;
+ boolean result = true ;
+
+ String newVal = oldLab + "_" ;
+ String getVal = null ;
+
+ try {
+ oObj.setLabel(cntlID, newVal) ;
+ getVal = oObj.getLabel(cntlID) ;
+ } catch (Exception e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ result &= newVal.equals(getVal) ;
+
+ tRes.tested("setLabel()", result) ;
+ }
+
+ /**
+ * Disables and then enables the control. Can be checked only
+ * interactively. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _enableControl() {
+ boolean result = true ;
+
+ try {
+ oObj.enableControl(cntlID, false) ;
+ oObj.enableControl(cntlID, true) ;
+ } catch (Exception e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+
+ tRes.tested("enableControl()", result) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerNotifier.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerNotifier.java
new file mode 100644
index 000000000..54858bfcf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerNotifier.java
@@ -0,0 +1,270 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.ui.dialogs.FilePickerEvent;
+import com.sun.star.ui.dialogs.XExecutableDialog;
+import com.sun.star.ui.dialogs.XFilePicker;
+import com.sun.star.ui.dialogs.XFilePickerListener;
+import com.sun.star.ui.dialogs.XFilePickerNotifier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XCancellable;
+
+
+/**
+ * Testing <code>com.sun.star.ui.XFilePickerNotifier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addFilePickerListener()</code></li>
+ * <li><code> removeFilePickerListener()</code></li>
+ * </ul> <p>
+ * The object must implement <code>XFilePicker</code>
+ * interface to check if a listener was called. <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.ui.XFilePickerNotifier
+ */
+public class _XFilePickerNotifier extends MultiMethodTest {
+
+ public XFilePickerNotifier oObj = null;
+ private XFilePicker fps = null ;
+ private String dir1 = null,
+ dir2 = null ;
+ ExecThread eThread = null;
+
+
+ /**
+ * Listener implementation which sets a flag if some of its
+ * methods was called.
+ */
+ protected class TestListener implements XFilePickerListener {
+ public boolean called = false ;
+
+ public void dialogSizeChanged() {
+ called = true;
+ }
+
+ public void fileSelectionChanged(FilePickerEvent e) {
+ called = true;
+ }
+
+ public void directoryChanged(FilePickerEvent e) {
+ log.println("***** Directory Changed *****");
+ called = true;
+ }
+
+ public String helpRequested(FilePickerEvent e) {
+ called = true;
+ return "help";
+ }
+
+ public void controlStateChanged(FilePickerEvent e) {
+ called = true;
+ }
+
+ public void disposing(EventObject e) {}
+ }
+
+ TestListener listener = new TestListener() ;
+
+ /**
+ * Tries to query object for <code>XFilePicker</code> interface, and
+ * initializes two different URLs for changing file picker directory. <p>
+ * @throw StatusException If object doesn't support <code>XFilePicker</code>
+ * interface.
+ */
+ @Override
+ public void before() {
+ fps = UnoRuntime.queryInterface
+ (XFilePicker.class, oObj) ;
+
+ if (fps == null) {
+ log.println("The object doesn't implement XFilePicker") ;
+ throw new StatusException(Status.failed
+ ("The object doesn't implement XFilePicker"));
+ }
+
+ XExecutableDialog exD = UnoRuntime.queryInterface(
+ XExecutableDialog.class, tEnv.getTestObject());
+
+ dir1 = util.utils.getOfficeTemp(tParam.getMSF());
+ dir2 = util.utils.getFullTestURL("");
+ eThread = new ExecThread(exD);
+ }
+
+ /**
+ * Adds a listener, then tries to change display directory and
+ * checks if the listener was called. <p>
+ * Has <b>OK</b> status if a listener method was called.
+ */
+ public void _addFilePickerListener() {
+ oObj.addFilePickerListener(listener) ;
+
+ try {
+ log.println("***** Setting DisplayDirectory to " + dir1);
+ fps.setDisplayDirectory(dir1) ;
+ log.println("***** Getting: " + fps.getDisplayDirectory());
+ openDialog();
+ log.println("***** Setting DisplayDirectory to " + dir2);
+ fps.setDisplayDirectory(dir2) ;
+ log.println("***** Getting: " + fps.getDisplayDirectory());
+
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("!!! Exception changing dir !!!") ;
+ e.printStackTrace(log) ;
+ }
+
+ waitForEventIdle();
+
+ if (!listener.called) {
+ log.println("Listener wasn't called :-(");
+ }
+
+ closeDialog();
+
+ tRes.tested("addFilePickerListener()", listener.called) ;
+ }
+
+ /**
+ * Removes the listener and changes display directory. <p>
+ * Has <b>OK</b> status if the listener wasn't called. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addFilePickerListener </code> </li>
+ * </ul>
+ */
+ public void _removeFilePickerListener() {
+ requiredMethod("addFilePickerListener()") ;
+
+ oObj.removeFilePickerListener(listener) ;
+
+ listener.called = false ;
+
+ try {
+ fps.setDisplayDirectory(dir1) ;
+ openDialog();
+ fps.setDisplayDirectory(dir2) ;
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("!!! Exception changing dir !!!") ;
+ e.printStackTrace(log) ;
+ }
+
+ waitForEventIdle();
+
+ closeDialog();
+
+ tRes.tested("removeFilePickerListener()", !listener.called) ;
+ }
+
+ /**
+ * Calls <code>execute()</code> method in a separate thread.
+ * Necessary to check if this method works
+ */
+ protected class ExecThread extends Thread {
+
+ public short execRes = (short) 17 ;
+ private final XExecutableDialog Diag;
+
+ public ExecThread(XExecutableDialog Diag) {
+ this.Diag = Diag ;
+ }
+
+ @Override
+ public void run() {
+ try {
+ execRes = Diag.execute();
+ System.out.println("HERE: "+execRes);
+ } catch (Exception e) {
+ log.println("Thread has been interrupted ...");
+ }
+ }
+ }
+
+ private void closeDialog() {
+ XCancellable canc = UnoRuntime.queryInterface(
+ XCancellable.class, tEnv.getTestObject());
+ if (canc != null) {
+ log.println("Cancelling Dialog");
+ canc.cancel();
+ } else {
+ this.disposeEnvironment();
+ }
+
+ long st = System.currentTimeMillis();
+ boolean toLong = false;
+
+ log.println("waiting for dialog to close");
+
+ while (eThread.isAlive() && !toLong) {
+ //wait for dialog to close
+ toLong = (System.currentTimeMillis()-st > 10000);
+ }
+
+ log.println("done");
+
+ try {
+ if (eThread.isAlive()) {
+ log.println("Interrupting Thread");
+ eThread.interrupt();
+ Thread.yield();
+ }
+ } catch (Exception e) {
+ // who cares ;-)
+ }
+
+ st = System.currentTimeMillis();
+ toLong = false;
+
+ log.println("waiting for interruption to work");
+
+ while (eThread.isAlive() && !toLong) {
+ //wait for dialog to close
+ toLong = (System.currentTimeMillis()-st > 10000);
+ }
+
+ log.println("DialogThread alive: "+eThread.isAlive());
+
+ log.println("done");
+
+ }
+
+ private void openDialog() {
+ log.println("Starting Dialog");
+ if (eThread.isAlive()) {
+ log.println("second interrupt");
+ eThread.interrupt();
+ Thread.yield();
+ }
+
+ XExecutableDialog exD = UnoRuntime.queryInterface(
+ XExecutableDialog.class, tEnv.getTestObject());
+
+ dir1 = util.utils.getOfficeTemp(tParam.getMSF());
+ dir2 = util.utils.getFullTestURL("");
+ eThread = new ExecThread(exD);
+
+ eThread.start();
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePreview.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePreview.java
new file mode 100644
index 000000000..9ba9c7825
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilePreview.java
@@ -0,0 +1,113 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.ui.dialogs.XFilePreview;
+
+public class _XFilePreview extends MultiMethodTest {
+
+ public XFilePreview oObj=null;
+
+ /**
+ * _getSupportedImageFormats() gets all formats and
+ * stores them in an Array of short.<br>
+ * Is OK is the resulting Array isn't empty
+ */
+ public void _getSupportedImageFormats() {
+ short[] formats = oObj.getSupportedImageFormats();
+ tRes.tested("getSupportedImageFormats()", formats.length > 0);
+ }
+
+ /**
+ * _getTargetColorDepth() gets the color depth
+ * and stores it in an int.<br>
+ * Is OK is the resulting int isn't 1
+ */
+ public void _getTargetColorDepth() {
+ int CDepth = oObj.getTargetColorDepth();
+ tRes.tested("getTargetColorDepth()",CDepth != 1);
+ }
+
+ /**
+ * _getAvailableWidth() gets the width
+ * and stores it in an int.<br>
+ * Is OK is the resulting int isn't 1
+ */
+ public void _getAvailableWidth() {
+ int the_width = oObj.getAvailableWidth();
+ tRes.tested("getAvailableWidth()", the_width != 1);
+ }
+
+ /**
+ * _getAvailableHeight() gets the width
+ * and stores it in an int.<br>
+ * Is OK is the resulting int isn't 1
+ */
+ public void _getAvailableHeight() {
+ int the_height = oObj.getAvailableHeight();
+ tRes.tested("getAvailableHeight()", the_height != 1);
+ }
+
+ /**
+ * sets the empty image.
+ * Is OK if no exception no exceptions were thrown.
+ */
+ public void _setImage() {
+ boolean bOK = true;
+ try {
+ oObj.setImage
+ (com.sun.star.ui.dialogs.FilePreviewImageFormats.BITMAP,null);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ bOK = false;
+ throw new StatusException( "Can't set empty image", e );
+ }
+ tRes.tested("setImage()", bOK);
+ }
+
+ boolean prev_state;
+
+ /**
+ * _setShowState() sets the state
+ * to the opposite value returned by getShowState.<br>
+ * Is OK is the returned result is false or if
+ * the value that was set is equal to the value
+ * that was returned by getShowState.
+ */
+ public void _setShowState() {
+ requiredMethod("getShowState()");
+ boolean success = oObj.setShowState(!prev_state);
+ boolean res_state = oObj.getShowState();
+ tRes.tested("setShowState()", !success || res_state != prev_state);
+ }
+
+ /**
+ * _getShowState() gets the state
+ * and sets it to the opposite.<br>
+ * Is OK if no exceptions were thrown
+ */
+ public void _getShowState() {
+ prev_state = oObj.getShowState();
+ tRes.tested("getShowState()", true);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFilterGroupManager.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilterGroupManager.java
new file mode 100644
index 000000000..cd47c96c3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilterGroupManager.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.StringPair;
+import com.sun.star.ui.dialogs.XFilterGroupManager;
+
+/**
+* Testing <code>com.sun.star.ui.dialogs.XFilterGroupManager</code>
+* @see com.sun.star.ui.XFilterGroupManager
+*/
+public class _XFilterGroupManager extends MultiMethodTest {
+
+ public XFilterGroupManager oObj = null;
+
+ /**
+ * Appends a new FilterGroup (for extension 'txt'). <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _appendFilterGroup() {
+ boolean res = true;
+ try {
+ StringPair[] args = new StringPair[1];
+ args[0] = new StringPair();
+ args[0].First = "ApiTextFiles";
+ args[0].Second = "txt";
+ oObj.appendFilterGroup("TestFilter", args);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ res=false;
+ }
+
+ tRes.tested("appendFilterGroup()", res) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFilterManager.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilterManager.java
new file mode 100644
index 000000000..d9eb5a5b1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFilterManager.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ui.dialogs.XFilterManager;
+
+/**
+* Testing <code>com.sun.star.ui.XFilterManager</code>
+* interface methods :
+* <ul>
+* <li><code> appendFilter()</code></li>
+* <li><code> setCurrentFilter()</code></li>
+* <li><code> getCurrentFilter()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ui.XFilterManager
+*/
+public class _XFilterManager extends MultiMethodTest {
+
+ public XFilterManager oObj = null;
+
+ /**
+ * Appends a new filter (for extension 'txt'). <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _appendFilter() {
+ boolean res = true;
+ try {
+ oObj.appendFilter("TestFilter", "txt");
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+ res=false;
+ }
+
+ tRes.tested("appendFilter()", res) ;
+ }
+
+ /**
+ * Sets the current filter to that which was appended before.<p>
+ * Has <b>OK</b> status if no exceptions occurred, else one of
+ * <code>appendFilter</code> and <code>setCurrentFilter</code>
+ * methods failed. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> appendFilter </code> </li>
+ * </ul>
+ */
+ public void _setCurrentFilter() {
+ requiredMethod("appendFilter()") ;
+ boolean result = true;
+
+ try {
+ oObj.setCurrentFilter("TestFilter") ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("setCurrentFilter() or appendFilter() failed") ;
+ result = false ;
+ }
+
+ tRes.tested("setCurrentFilter()", result) ;
+ }
+
+ /**
+ * Gets current filter name and compares it filter name set before.<p>
+ * Has <b>OK</b> status if set and get filter names are equal.<p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setCurrentFilter </code> </li>
+ * </ul>
+ */
+ public void _getCurrentFilter() {
+ requiredMethod("setCurrentFilter()") ;
+
+ String gVal = oObj.getCurrentFilter() ;
+
+ tRes.tested("getCurrentFilter()", "TestFilter".equals(gVal)) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ui/dialogs/_XFolderPicker.java b/qadevOOo/tests/java/ifc/ui/dialogs/_XFolderPicker.java
new file mode 100644
index 000000000..07c6e014f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ui/dialogs/_XFolderPicker.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.ui.dialogs;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ui.dialogs.XFolderPicker;
+
+/**
+* Testing <code>com.sun.star.ui.XFolderPicker</code>
+* interface methods :
+* <ul>
+* <li><code> setDisplayDirectory()</code></li>
+* <li><code> getDisplayDirectory()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ui.XFolderPicker
+*/
+public class _XFolderPicker extends MultiMethodTest {
+
+ public XFolderPicker oObj = null;
+ private String dir = null ;
+
+ /**
+ * Sets the current directory to SOffice temp dir. <p>
+ * Has <b>OK</b> status if no exceptions occurred.
+ */
+ public void _setDisplayDirectory() {
+ boolean result = true ;
+ dir = util.utils.getOfficeTemp(tParam.getMSF()) ;
+
+ log.println("Trying to set dir '" + dir + "'") ;
+ try {
+ oObj.setDisplayDirectory(dir) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Directory '" + dir + "' not found :" + e) ;
+ result = false ;
+ }
+
+ tRes.tested("setDisplayDirectory()", result) ;
+ }
+
+ /**
+ * Gets the current directory. <p>
+ * Has <b>OK</b> status if get value is equal to set value
+ * passed to <code>setDisplayDirectory</code> <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setDisplayDirectory </code> </li>
+ * </ul>
+ */
+ public void _getDisplayDirectory() {
+ requiredMethod("setDisplayDirectory()") ;
+
+ String gDir = oObj.getDisplayDirectory() ;
+
+ log.println("Get dir '" + gDir + "'") ;
+
+ tRes.tested("getDisplayDirectory()", dir.equals(gDir)) ;
+ }
+
+ /**
+ * Gets the directory chosen by the user. <p>
+ * Has <b>OK</b> status if get value is not NULL <p>
+ */
+ public void _getDirectory() {
+
+ String gDir = oObj.getDirectory() ;
+
+ log.println("Get dir '" + gDir + "'") ;
+
+ tRes.tested("getDirectory()", gDir != null) ;
+ }
+
+ /**
+ * Sets the Description for the dialog. <p>
+ * Has <b>OK</b> status if no error occurs <p>
+ */
+ public void _setDescription() {
+
+ oObj.setDescription("XFolderPicker") ;
+ //to visually check if the method works
+ //oObj.execute();
+ tRes.tested("setDescription()", true) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/uno/_XComponentContext.java b/qadevOOo/tests/java/ifc/uno/_XComponentContext.java
new file mode 100644
index 000000000..a776f7e21
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/uno/_XComponentContext.java
@@ -0,0 +1,72 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.uno;
+
+import lib.MultiMethodTest;
+import util.ValueComparer;
+
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+
+
+public class _XComponentContext extends MultiMethodTest {
+ public XComponentContext oObj;
+ protected XMultiComponentFactory byValue = null;
+ protected XMultiComponentFactory directly = null;
+
+ public void _getServiceManager() {
+ log.println("getting manager");
+
+ directly = oObj.getServiceManager();
+ String[] names = directly.getAvailableServiceNames();
+ boolean res = true;
+
+ for (int i = 0; i < names.length; i++) {
+ try {
+ if (names[i].equals("com.sun.star.i18n.ConversionDictionary_ko")) continue;
+ if (names[i].equals("com.sun.star.i18n.TextConversion_ko")) continue;
+ log.println("try to instantiate found servicename " +
+ names[i]);
+ directly.createInstanceWithContext(names[i], oObj);
+ log.println("worked... ok");
+ res &= true;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception occurred " + e.getMessage());
+ res &= false;
+ }
+ }
+
+ tRes.tested("getServiceManager()", res);
+ }
+
+ public void _getValueByName() {
+ requiredMethod("getServiceManager()");
+
+ Object value = oObj.getValueByName(
+ "/singletons/com.sun.star.lang.theServiceManager");
+ byValue = UnoRuntime.queryInterface(
+ XMultiComponentFactory.class, value);
+
+ byValue.getAvailableServiceNames();
+ directly.getAvailableServiceNames();
+
+ boolean res = ValueComparer.equalValue(byValue, directly);
+ tRes.tested("getValueByName()", res);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/uno/_XNamingService.java b/qadevOOo/tests/java/ifc/uno/_XNamingService.java
new file mode 100644
index 000000000..e2469d138
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/uno/_XNamingService.java
@@ -0,0 +1,147 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.uno;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.XNamingService;
+
+
+/**
+* Testing <code>com.sun.star.uno.XNamingService</code>
+* interface methods. <p>
+* This test need the following object relations :
+* <ul>
+* <li> <code>'XNamingService.RegisterObject'</code> :
+* object to be registered.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+*/
+public class _XNamingService extends MultiMethodTest {
+
+ public static XNamingService oObj = null;
+
+ private XInterface regObject = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If the relation not found.
+ */
+ @Override
+ public void before() {
+ regObject = (XInterface)
+ tEnv.getObjRelation("XNamingService.RegisterObject") ;
+ if (regObject == null)
+ throw new StatusException("Can't create object to register",
+ new NullPointerException()) ;
+ }
+
+ /**
+ * Test calls the method and checks that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ */
+ public void _registerObject() throws StatusException{
+ try {
+ oObj.registerObject("MyFactory", regObject) ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception while registering object :" + e) ;
+ tRes.tested("registerObject()", false) ;
+ return ;
+ }
+
+ tRes.tested("registerObject()", true) ;
+ }
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <p>
+ * Has <b> OK </b> status if the method returns the same object
+ * that was registered and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerObject </code> : to get in this test the
+ * object that was registered.</li>
+ * </ul>
+ */
+ public void _getRegisteredObject() {
+ requiredMethod("registerObject()") ;
+
+ try {
+ Object getObject = oObj.getRegisteredObject("MyFactory") ;
+
+ tRes.tested("getRegisteredObject()" ,
+ regObject.equals(getObject)) ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception calling method :" + e) ;
+ tRes.tested("getRegisteredObject()", false) ;
+ return ;
+ }
+ }
+
+ /**
+ * Test calls the method and trying to get revoked object. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and if the method <code>getRegisteredObject</code> returns NULL or
+ * throws expected exception. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerObject </code> : to revoke the object registered</li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getRegisteredObject </code> : before object will be
+ * revoked </li>
+ * </ul>
+ */
+ public void _revokeObject() {
+ requiredMethod("registerObject()") ;
+ executeMethod("getRegisteredObject()") ;
+
+ try {
+ oObj.revokeObject("MyFactory");
+ log.println("Object was revoked");
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Exception revoking object :" + e) ;
+ tRes.tested("revokeObject()", false) ;
+ }
+
+ boolean res = true;
+
+ try {
+ log.println("Trying to getRegistered object ...");
+ Object objregObj = oObj.getRegisteredObject("MyFactory");
+ log.println("No exception");
+ res &= objregObj == null;
+ if (res) {
+ log.println("But NULL was returned");
+ }
+ } catch(com.sun.star.uno.Exception e) {
+ log.println("Expected exception - OK");
+ }
+
+ tRes.tested("revokeObject()", res);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/util/_PathSettings.java b/qadevOOo/tests/java/ifc/util/_PathSettings.java
new file mode 100644
index 000000000..7d6e42f7f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_PathSettings.java
@@ -0,0 +1,79 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiPropertyTest;
+import util.utils;
+
+/**
+ * Testing <code>com.sun.star.util.PathSettings</code>
+ * service properties :
+ * <ul>
+ * <li><code> Addin </code></li>
+ * <li><code> AutoCorrect </code></li>
+ * <li><code> AutoText </code></li>
+ * <li><code> Backup </code></li>
+ * <li><code> Basic </code></li>
+ * <li><code> Bitmap </code></li>
+ * <li><code> Config </code></li>
+ * <li><code> Dictionary </code></li>
+ * <li><code> Favorites </code></li>
+ * <li><code> Filter </code></li>
+ * <li><code> Gallery </code></li>
+ * <li><code> Graphic </code></li>
+ * <li><code> Help </code></li>
+ * <li><code> Linguistic </code></li>
+ * <li><code> Module </code></li>
+ * <li><code> Palette </code></li>
+ * <li><code> Plugin </code></li>
+ * <li><code> Storage </code></li>
+ * <li><code> Temp </code></li>
+ * <li><code> Template </code></li>
+ * <li><code> UIConfig </code></li>
+ * <li><code> UserConfig </code></li>
+ * <li><code> UserDictionary</code></li>
+ * <li><code> Work </code></li>
+ * </ul> <p>
+ *
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.util.PathSettings
+ */
+public class _PathSettings extends MultiPropertyTest {
+
+ /**
+ * This path list could be empty after SO installation.
+ * And the URL is validated to match the pattern 'file:///*'
+ * that's why the custom changing of this property required.
+ */
+ public void _UIConfig() {
+ testProperty("UIConfig", new PropertyTester() {
+ @Override
+ public Object getNewValue(String propName, Object oldVal) {
+ String path = (String) oldVal;
+ if (path == null) path = "";
+ if (path.length() > 0 && !path.endsWith(";")) {
+ path += ";";
+ }
+ path += utils.getOfficeTemp(tParam.getMSF());
+ return path;
+ }
+ });
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/util/_SearchDescriptor.java b/qadevOOo/tests/java/ifc/util/_SearchDescriptor.java
new file mode 100644
index 000000000..e9e883e1b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_SearchDescriptor.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiPropertyTest;
+
+/**
+ * Testing <code>com.sun.star.util.SearchDescriptor</code>
+ * service properties :
+ * <ul>
+ * <li><code> SearchBackwards</code></li>
+ * <li><code> SearchCaseSensitive</code></li>
+ * <li><code> SearchWords</code></li>
+ * <li><code> SearchRegularExpression</code></li>
+ * <li><code> SearchStyles</code></li>
+ * <li><code> SearchSimilarity</code></li>
+ * <li><code> SearchSimilarityRelax</code></li>
+ * <li><code> SearchSimilarityRemove</code></li>
+ * <li><code> SearchSimilarityAdd</code></li>
+ * <li><code> SearchSimilarityExchange</code></li>
+ * </ul> <p>
+ * Properties testing is automated by <code>lib.MultiPropertyTest</code>.
+ * @see com.sun.star.util.SearchDescriptor
+ */
+public class _SearchDescriptor extends MultiPropertyTest {
+
+} //finish class _SearchDescriptor
+
diff --git a/qadevOOo/tests/java/ifc/util/_XCancellable.java b/qadevOOo/tests/java/ifc/util/_XCancellable.java
new file mode 100644
index 000000000..85ab779df
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XCancellable.java
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XCancellable;
+
+/**
+* Testing <code>com.sun.star.util.XCancellable</code>
+* interface methods :
+* <ul>
+* <li><code> cancel()</code></li>
+* </ul> <p>
+* @see com.sun.star.util.XCancellable
+*/
+public class _XCancellable extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCancellable oObj = null ;
+
+ /**
+ * Just calls the method. <p>
+ * Has <b>OK</b> status if no exception has occurred. <p>
+ */
+ public void _cancel() {
+ oObj.cancel() ;
+
+ tRes.tested("cancel()", true) ;
+ }
+
+ /**
+ * Forces object recreation.
+ */
+ @Override
+ public void after() {
+ disposeEnvironment() ;
+ }
+
+} // finish class _XCancellable
+
diff --git a/qadevOOo/tests/java/ifc/util/_XChangesBatch.java b/qadevOOo/tests/java/ifc/util/_XChangesBatch.java
new file mode 100644
index 000000000..c0e87f3ad
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XChangesBatch.java
@@ -0,0 +1,164 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameReplace;
+import com.sun.star.util.ElementChange;
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XChangesBatch;
+import lib.Status;
+import lib.StatusException;
+
+public class _XChangesBatch extends MultiMethodTest {
+
+ public XChangesBatch oObj;
+ private Object changeElement = null;
+ private Object originalElement = null;
+ private String elementName = null;
+ private XPropertySet xProp = null;
+ private XNameReplace xNameReplace = null;
+
+ /**
+ * add a change that can be committed
+ */
+ @Override
+ protected void before() {
+ changeElement = tEnv.getObjRelation("XChangesBatch.ChangeElement");
+ originalElement = tEnv.getObjRelation("XChangesBatch.OriginalElement");
+ elementName = (String)tEnv.getObjRelation("XChangesBatch.PropertyName");
+
+ // to do a change, get an XPropertySet
+ xProp = (XPropertySet)tEnv.getObjRelation("XChangesBatch.PropertySet");
+ try {
+ if (originalElement == null && xProp != null)
+ originalElement = xProp.getPropertyValue(elementName);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not get property '" + elementName + "'.", e);
+ }
+
+ // or get an XNameReplace
+ xNameReplace = (XNameReplace)tEnv.getObjRelation("XChangesBatch.NameReplace");
+ try {
+ if (originalElement == null && xNameReplace != null)
+ originalElement = xNameReplace.getByName(elementName);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not get element by name '" + elementName + "'.", e);
+ }
+
+ if (changeElement == null || originalElement == null || elementName == null || (xProp == null && xNameReplace == null)) {
+ log.println(
+ (changeElement == null?"Missing property 'XChangesBatch.ChangeElement'\n":"") +
+ (originalElement == null?"Missing property 'XChangesBatch.OriginalElement'\n":"") +
+ (elementName == null?"Missing property 'XChangesBatch.PropertyName'\n":"") +
+ (xProp == null?"Missing property 'XChangesBatch.PropertySet'":"") +
+ (xNameReplace == null?"Missing property 'XChangesBatch.NameReplace'":"")
+ );
+ throw new StatusException("Some needed object relations are missing.", new Exception());
+ }
+ }
+
+ public void _commitChanges() {
+ requiredMethod("getPendingChanges()");
+ try {
+ log.println("Committing changes.");
+ oObj.commitChanges();
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ tRes.tested("commitChanges()", Status.exception(e));
+ return;
+ }
+ try {
+ executeChange(originalElement);
+ }
+ catch(StatusException e) {
+ tRes.tested("hasPendingChanges()", Status.exception(e));
+ return;
+ }
+
+ try {
+ log.println("Commit changes back.");
+ oObj.commitChanges();
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ tRes.tested("commitChanges()", Status.exception(e));
+ return;
+ }
+ tRes.tested("commitChanges()", true);
+ }
+
+ public void _getPendingChanges() {
+ requiredMethod("hasPendingChanges()");
+ ElementChange[]changes = oObj.getPendingChanges();
+ if (changes == null) {
+ log.println("Returned changes was 'null'");
+ log.println("It should have been 1 change.");
+ tRes.tested("getPendingChanges()", false);
+ } else if (changes.length != 1) {
+ int amount = changes.length;
+ log.println("Found not the right number of changes: " + amount);
+ log.println("It should have been 1 change.");
+ for (int i=0; i<amount; i++) {
+ System.out.println("Detailed Change " + i + " -> new Element: '" +
+ changes[i].Element.toString() + "' ReplacedElement: '" +
+ changes[i].ReplacedElement.toString() + "'");
+ }
+ tRes.tested("getPendingChanges()", false);
+ }
+ else {
+ boolean result = changes[0].ReplacedElement.equals(originalElement);
+ result &= changes[0].Element.equals(changeElement);
+ tRes.tested("getPendingChanges()", result);
+ }
+ }
+
+ public void _hasPendingChanges() {
+ try {
+ executeChange(changeElement);
+ }
+ catch(StatusException e) {
+ tRes.tested("hasPendingChanges()", Status.exception(e));
+ return;
+ }
+ boolean hasPendingChanges = oObj.hasPendingChanges();
+ tRes.tested("hasPendingChanges()", hasPendingChanges);
+ }
+
+ private void executeChange(Object element) throws StatusException {
+ if (xProp != null) {
+ try {
+ xProp.setPropertyValue(elementName, element);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not set property '" + elementName + "'.", e);
+ }
+ }
+ else if (xNameReplace != null) {
+ try {
+ xNameReplace.replaceByName(elementName, element);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not replace '" + elementName + "' by name.", e);
+ }
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/util/_XChangesNotifier.java b/qadevOOo/tests/java/ifc/util/_XChangesNotifier.java
new file mode 100644
index 000000000..73592df4e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XChangesNotifier.java
@@ -0,0 +1,213 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameReplace;
+import com.sun.star.util.XChangesBatch;
+import com.sun.star.util.XChangesListener;
+import com.sun.star.util.XChangesNotifier;
+import lib.StatusException;
+import lib.MultiMethodTest;
+
+/**
+ * Test the XChangesNotifier interface. To produce some changes,
+ * XChangesBatch is used.
+ * @see com.sun.star.util.XChangesNotifier
+ * @see com.sun.star.util.XChangesBatch
+ */
+public class _XChangesNotifier extends MultiMethodTest {
+
+ public XChangesNotifier oObj = null;
+ private XChangesBatch xBatch = null;
+ private Object changeElement = null;
+ private Object originalElement = null;
+ private String elementName = null;
+ private XPropertySet xProp = null;
+ private XNameReplace xNameReplace = null;
+ private _XChangesNotifier.MyChangesListener xListener = null;
+
+ /**
+ * Own implementation of the XChangesListener interface
+ * @see com.sun.star.util.XChangesListener
+ */
+ private static class MyChangesListener implements XChangesListener {
+ /** Just lo a call of the listener **/
+ boolean bChangesOccurred = false;
+
+ /** A change did occur
+ * @param changesEvent The event.
+ **/
+ public void changesOccurred(com.sun.star.util.ChangesEvent changesEvent) {
+ bChangesOccurred = true;
+ }
+
+ /** Disposing of the listener
+ * @param eventObject The event.
+ **/
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ bChangesOccurred = true;
+ }
+
+ /**
+ * Reset the listener
+ */
+ public void reset() {
+ bChangesOccurred = false;
+ }
+
+ /**
+ * Has the listener been called?
+ * @return True, if the listener has been called.
+ */
+ public boolean didChangesOccur() {
+ return bChangesOccurred;
+ }
+ }
+
+ /**
+ * Before the test: get the 'XChangesNotifier.ChangesBatch' object relation
+ * and create the listener.
+ */
+ @Override
+ protected void before() {
+ xBatch = (XChangesBatch)tEnv.getObjRelation("XChangesNotifier.ChangesBatch");
+ changeElement = tEnv.getObjRelation("XChangesNotifier.ChangeElement");
+ originalElement = tEnv.getObjRelation("XChangesNotifier.OriginalElement");
+ elementName = (String)tEnv.getObjRelation("XChangesNotifier.PropertyName");
+
+ xProp = (XPropertySet)tEnv.getObjRelation("XChangesNotifier.PropertySet");
+ try {
+ if (originalElement == null && xProp != null)
+ originalElement = xProp.getPropertyValue(elementName);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not get property '" + elementName + "'.", e);
+ }
+
+ // or get an XNameReplace
+ xNameReplace = (XNameReplace)tEnv.getObjRelation("XChangesNotifier.NameReplace");
+ try {
+ if (originalElement == null && xNameReplace != null)
+ originalElement = xNameReplace.getByName(elementName);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Could not get element by name '" + elementName + "'.", e);
+ }
+
+ if (changeElement == null || originalElement == null || elementName == null || (xProp == null && xNameReplace == null) || xBatch == null) {
+ log.println(
+ (changeElement == null?"Missing property 'XChangesNotifier.ChangeElement'\n":"") +
+ (originalElement == null?"Missing property 'XChangesNotifier.OriginalElement'\n":"") +
+ (elementName == null?"Missing property 'XChangesNotifier.PropertyName'\n":"") +
+ (xProp == null?"Missing property 'XChangesNotifier.PropertySet'":"") +
+ (xNameReplace == null?"Missing property 'XChangesNotifier.NameReplace'":"") +
+ (xBatch == null?"Missing property 'XChangesNotifier.ChangesBatch'":"")
+ );
+ throw new StatusException("Some needed object relations are missing.", new Exception());
+ }
+
+ xListener = new _XChangesNotifier.MyChangesListener();
+ }
+
+ /** test addChangesListener **/
+ public void _addChangesListener() {
+ oObj.addChangesListener(xListener);
+ tRes.tested("addChangesListener()", true);
+ }
+
+ /** test removeChangesListener **/
+ public void _removeChangesListener() {
+ requiredMethod("addChangesListener()");
+ boolean result = true;
+ result &= commitChanges();
+ result &= xListener.didChangesOccur();
+ if (!result)
+ log.println("Listener has not been called.");
+ oObj.removeChangesListener(xListener);
+ xListener.reset();
+ result &= redoChanges();
+ boolean result2 = xListener.didChangesOccur();
+ if (result2)
+ log.println("Removed listener has been called.");
+
+ tRes.tested("removeChangesListener()", result && !result2);
+ }
+
+ /**
+ * Commit a change, using an implementation of the XChangesBatch interface.
+ * @return true, if changing worked.
+ */
+ private boolean commitChanges() {
+ if (!executeChange(changeElement)) return false;
+ if (!xBatch.hasPendingChanges()) return false;
+ try {
+ xBatch.commitChanges();
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Redo the change, using an implementation of the XChangesBatch interface.
+ * @return true, if changing worked.
+ */
+ private boolean redoChanges() {
+ if (!executeChange(originalElement)) return false;
+ if (!xBatch.hasPendingChanges()) return false;
+ try {
+ xBatch.commitChanges();
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Execute the change, use XPropertySet or XNameReplace
+ * @return False, if changing did throw an exception.
+ */
+ private boolean executeChange(Object element) throws StatusException {
+ if (xProp != null) {
+ try {
+ xProp.setPropertyValue(elementName, element);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ return false;
+ }
+ }
+ else if (xNameReplace != null) {
+ try {
+ xNameReplace.replaceByName(elementName, element);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ return false;
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/util/_XCloneable.java b/qadevOOo/tests/java/ifc/util/_XCloneable.java
new file mode 100644
index 000000000..62de17b01
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XCloneable.java
@@ -0,0 +1,102 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import java.util.Arrays;
+
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloneable;
+
+/**
+* Testing <code>com.sun.star.util.XCloneable</code>
+* interface methods :
+* <ul>
+* <li><code> createClone()</code></li>
+* </ul> <p>
+* @see com.sun.star.util.XCloneable
+*/
+public class _XCloneable extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XCloneable oObj = null ;
+ protected XCloneable clone = null;
+
+ /**
+ * calls the method. <p>
+ * Has <b>OK</b> status if no exception has occurred. <p>
+ */
+ public void _createClone() {
+ boolean result = true;
+ clone = oObj.createClone();
+
+ //check if the implementationname equals
+ result &= checkImplementationName(oObj,clone);
+
+ //check ImplementationID
+ result &= checkImplementationID(oObj, clone);
+
+ tRes.tested("createClone()", result) ;
+ }
+
+ protected byte[] getImplementationID(XInterface ifc) {
+ byte[] res = new byte[0];
+ XTypeProvider provider = UnoRuntime.queryInterface(XTypeProvider.class, ifc);
+ if (provider != null) {
+ res = provider.getImplementationId();
+ }
+ return res;
+ }
+
+ protected boolean checkImplementationID(XInterface org, XInterface clone) {
+ boolean res = Arrays.equals(getImplementationID(org), getImplementationID(clone));
+ if (res && getImplementationID(org).length > 0) {
+ log.println("ImplementationID equals the clone has the same id as the original Object");
+ log.println("------------------------------------------------------------------------");
+ }
+ return res;
+ }
+
+ protected String getImplementationName(XInterface ifc) {
+ String res = "";
+ XServiceInfo info = UnoRuntime.queryInterface(XServiceInfo.class, ifc);
+ if (info != null) {
+ res = info.getImplementationName();
+ }
+ return res;
+ }
+
+ protected boolean checkImplementationName(XInterface org, XInterface clone) {
+ boolean res = getImplementationName(org).equals(
+ getImplementationName(clone));
+ if (!res) {
+ log.println("ImplementationName differs: ");
+ log.println("Expected: "+getImplementationName(org));
+ log.println("Gained: "+getImplementationName(clone));
+ log.println("----------------------------------------");
+ }
+ return res;
+ }
+
+} // finish class _XCloneable
+
diff --git a/qadevOOo/tests/java/ifc/util/_XFlushable.java b/qadevOOo/tests/java/ifc/util/_XFlushable.java
new file mode 100644
index 000000000..d8a56bd8d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XFlushable.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XFlushListener;
+import com.sun.star.util.XFlushable;
+
+/**
+ * Testing <code>com.sun.star.util.XFlushable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> flush()</code></li>
+ * <li><code> addFlushListener()</code></li>
+ * <li><code> removeFlushListener()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XFlushable
+ */
+public class _XFlushable extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XFlushable oObj = null ;
+
+ /**
+ * Simple <code>XFlushListener</code> implementation which
+ * just registers if any calls to its methods were made.
+ */
+ private static class MyFlushListener implements XFlushListener{
+ boolean called = false ;
+ public void flushed(com.sun.star.lang.EventObject e) {
+ called = true ;
+ }
+ public void disposing(com.sun.star.lang.EventObject e) {}
+ public boolean wasFlushed() { return called; }
+ }
+
+ private final MyFlushListener listener1 = new MyFlushListener(),
+ listener2 = new MyFlushListener() ;
+
+ /**
+ * Test call method <code>flush</code> and checks if added listener
+ * was called and removed one wasn't. <p>
+ * Has OK status if no exception has occurred. <p>
+ * Methods to be executed before :
+ * {@link #_addFlushListener},
+ * {@link #_removeFlushListener}
+ */
+ public void _flush() {
+ executeMethod("addFlushListener()") ;
+ executeMethod("removeFlushListener()") ;
+
+ oObj.flush() ;
+
+ tRes.tested("flush()", true) ;
+ tRes.tested("addFlushListener()", listener2.wasFlushed()) ;
+ tRes.tested("removeFlushListener()", !listener1.wasFlushed()) ;
+ }
+
+ /**
+ * Test adds two listeners, one of which will be removed then.<p>
+ * Has OK status if the listener was called on <code>flush()</code>
+ * method call.
+ */
+ public void _addFlushListener() {
+ oObj.addFlushListener(listener1) ;
+ oObj.addFlushListener(listener2) ;
+ }
+
+ /**
+ * Test removes one of two listeners added before. <p>
+ * Has OK status if the listener removed wasn't called on
+ * <code>flush()</code> method call.
+ * Methods to be executed before :
+ * {@link #_addFlushListener},
+ */
+ public void _removeFlushListener() {
+ executeMethod("addFlushListener()") ;
+
+ oObj.removeFlushListener(listener1) ;
+ }
+
+} // finish class _XFlushable
+
diff --git a/qadevOOo/tests/java/ifc/util/_XImportable.java b/qadevOOo/tests/java/ifc/util/_XImportable.java
new file mode 100644
index 000000000..6a36526db
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XImportable.java
@@ -0,0 +1,192 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XImportable;
+
+
+/**
+ * checks the Interface XImportable
+ */
+public class _XImportable extends MultiMethodTest {
+ public XImportable oObj;
+ protected PropertyValue[] descriptor = null;
+ protected String[] names = new String[] {
+ "DatabaseName", "SourceType", "SourceObject", "IsNative"
+ };
+ protected Type[] types = new Type[] {
+ new Type(String.class), new Type(com.sun.star.sheet.DataImportMode.class),
+ new Type(String.class), new Type(Boolean.class)
+ };
+
+ /**
+ * creates an ImportDescriptor, the gained PropertyValues can be found
+ * in com.sun.star.sheet.DatabaseImportDescriptor.<br>
+ * Returns OK state is all propertynames and types are the specified.
+ */
+
+ public void _createImportDescriptor() {
+ boolean res = true;
+ boolean locResult = false;
+
+ descriptor = oObj.createImportDescriptor(true);
+ log.print("Getting when calling createImportDescriptor(true) --");
+
+
+ log.println("done");
+
+ log.print("Checking PropertyNames -- ");
+ locResult = checkPropertyNames(descriptor, names);
+ log.println("Worked: " + locResult);
+ res &= locResult;
+
+ log.print("Checking PropertyTypes -- ");
+ locResult = checkPropertyTypes(descriptor, types);
+ log.println("Worked: " + locResult);
+ res &= locResult;
+
+ descriptor = oObj.createImportDescriptor(false);
+ log.print("Getting when calling createImportDescriptor(false) -- ");
+
+
+ log.println("done");
+
+ log.print("Checking PropertyNames -- ");
+ locResult = checkPropertyNames(descriptor, names);
+ log.println("Worked: " + locResult);
+ res &= locResult;
+
+ log.print("Checking PropertyTypes -- ");
+ locResult = checkPropertyTypes(descriptor, types);
+ log.println("Worked - " + locResult);
+ res &= locResult;
+
+ tRes.tested("createImportDescriptor()", res);
+ }
+
+ public void _doImport() {
+ requiredMethod("createImportDescriptor()");
+ boolean res = true;
+
+ log.print("Setting the ImportDescriptor (Bibliograpy, Table, biblio) -- ");
+ descriptor[0].Value = "Bibliography";
+ descriptor[1].Value = com.sun.star.sheet.DataImportMode.TABLE;
+ descriptor[2].Value = "biblio";
+ log.println("done");
+
+ log.print("Importing data (Bibliograpy, Table, biblio) -- ");
+ oObj.doImport(descriptor);
+ log.println("done");
+
+ log.println("Checking data");
+ res &= checkA1("Identifier");
+
+ log.print("Setting the ImportDescriptor (Bibliograpy, SQL, select Author from biblio) -- ");
+ descriptor[0].Value = "Bibliography";
+ descriptor[1].Value = com.sun.star.sheet.DataImportMode.SQL;
+ descriptor[2].Value = "select Author from biblio";
+ log.println("done");
+
+ log.print("Importing data (Bibliograpy, SQL, select Author from biblio) -- ");
+ oObj.doImport(descriptor);
+ log.println("done");
+
+ log.println("Checking data");
+ res &= checkA1("Author");
+
+ tRes.tested("doImport()",res);
+ }
+
+ protected void printPropertyValue(PropertyValue[] props) {
+ for (int i = 0; i < props.length; i++) {
+ log.println("\tName: " + props[i].Name);
+ log.println("\tValue: " + props[i].Value);
+ }
+ }
+
+ protected boolean checkPropertyNames(PropertyValue[] props, String[] names) {
+ boolean res = true;
+
+ for (int i = 0; i < props.length; i++) {
+ boolean locResult = props[i].Name.equals(names[i]);
+
+ if (!locResult) {
+ log.println("PropertyName differs for index " + i);
+ log.println("\tGetting: " + props[i].Name);
+ log.println("\tExpected: " + names[i]);
+ }
+
+ res &= locResult;
+ }
+
+ return res;
+ }
+
+ protected boolean checkPropertyTypes(PropertyValue[] props, Type[] types) {
+ boolean res = true;
+
+ for (int i = 0; i < props.length; i++) {
+ Type ValueType = new Type(props[i].Value.getClass());
+ boolean locResult = ValueType.equals(types[i]);
+
+ if (!locResult) {
+ log.println("PropertyType differs for " + props[i].Name);
+ log.println("\tGetting: " + ValueType.getTypeName());
+ log.println("\tExpected: " + types[i].getTypeName());
+ }
+
+ res &= locResult;
+ }
+
+ return res;
+ }
+
+ protected boolean checkA1(String expected) {
+ XCellRange range = UnoRuntime.queryInterface(XCellRange.class, tEnv.getTestObject());
+ boolean res = false;
+ try{
+ String a1 = range.getCellByPosition(0,0).getFormula();
+ res = a1.equals(expected);
+ if (!res) {
+ log.println("\tResult differs from expectation");
+ log.println("\tGetting: "+a1);
+ log.println("\tExpected: "+expected);
+ } else {
+ log.println("successful");
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't get Cell to check");
+ }
+ return res;
+ }
+
+ /**
+ * Dispose environment.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/util/_XModeSelector.java b/qadevOOo/tests/java/ifc/util/_XModeSelector.java
new file mode 100644
index 000000000..d787eea42
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XModeSelector.java
@@ -0,0 +1,95 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XModeSelector;
+
+/**
+* Testing <code>com.sun.star.util.XModeSelector</code>
+* interface methods :
+* <ul>
+* <li><code>setMode()</code></li>
+* <li><code>getMode()</code></li>
+* <li><code>getSupportedModes()</code></li>
+* <li><code>supportsMode()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.util.XModeSelector
+*/
+public class _XModeSelector extends MultiMethodTest {
+ public XModeSelector oObj = null;
+
+ String[] supportedModes;
+ /**
+ * Calls the method and as argument pass one of the supported modes
+ * that was returned by method getSupportedMode.<p>
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _setMode() {
+ requiredMethod("getSupportedModes()");
+ try {
+ oObj.setMode(supportedModes[0]);
+ } catch(com.sun.star.lang.NoSupportException e) {
+ log.println("Method setMode() doesn't support mode '"
+ + supportedModes[0] + "'");
+ tRes.tested("setMode()", false);
+ return ;
+ }
+ tRes.tested("setMode()", true);
+ }
+
+ /**
+ * Calls the method and check returned value.<p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is equal to value that was set by method setMode.
+ */
+ public void _getMode() {
+ requiredMethod("setMode()");
+ String curMode = oObj.getMode();
+ tRes.tested("getMode()", curMode.equals(supportedModes[0]));
+ }
+
+ /**
+ * Calls the method and checks value returned by method.<p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ * and returned value is not null.
+ */
+ public void _getSupportedModes() {
+ supportedModes = oObj.getSupportedModes();
+ tRes.tested("getSupportedModes()", supportedModes != null);
+ }
+
+ /**
+ * Calls the method. First one of the supported modes that was returned
+ * by method getSupportedMode is passed as argument.
+ * Then the method is called again and the mode that is certainly not supported
+ * is passed. Checks up returned values in both cases.<p>
+ * Has <b> OK </b> status if no runtime exceptions occurred,
+ * returned value is true in first call and is false in second call.
+ */
+ public void _supportsMode() {
+ requiredMethod("getSupportedModes()");
+ boolean result = oObj.supportsMode(supportedModes[0]) &&
+ ! oObj.supportsMode(supportedModes[0] + "_ForTest");
+ tRes.tested("supportsMode()", result);
+ }
+}// finish class _XModeSelector
+
diff --git a/qadevOOo/tests/java/ifc/util/_XModifiable.java b/qadevOOo/tests/java/ifc/util/_XModifiable.java
new file mode 100644
index 000000000..df3e00021
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XModifiable.java
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XModifiable;
+
+
+public class _XModifiable extends MultiMethodTest {
+ public XModifiable oObj;
+
+ public void _isModified() {
+ requiredMethod("setModified()");
+ tRes.tested("isModified()", true);
+ }
+
+ public void _setModified() {
+ boolean res = true;
+
+ try {
+ oObj.setModified(true);
+ res = oObj.isModified();
+ oObj.setModified(false);
+ res &= !oObj.isModified();
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception while using method " + e.getMessage());
+ res = false;
+ }
+
+ tRes.tested("setModified()", res);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/ifc/util/_XModifyBroadcaster.java b/qadevOOo/tests/java/ifc/util/_XModifyBroadcaster.java
new file mode 100644
index 000000000..22fa066ab
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XModifyBroadcaster.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.util.XModifyBroadcaster;
+import com.sun.star.util.XModifyListener;
+
+/**
+* Testing <code>com.sun.star.util.XModifyBroadcaster</code>
+* interface methods :
+* <ul>
+* <li><code>addModifyListener()</code></li>
+* <li><code>removeModifyListener()</code></li>
+* </ul> <p>
+*
+* Result checking is not performed. Modify
+* listeners are called only in case of
+* interaction with UI. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.util.XModifyBroadcaster
+*/
+public class _XModifyBroadcaster extends MultiMethodTest {
+ public XModifyBroadcaster oObj = null;
+
+ private static class TestModifyListener implements XModifyListener {
+ public void disposing ( EventObject oEvent ) {}
+ public void modified (EventObject aEvent ) {}
+ }
+
+ private final TestModifyListener listener = new TestModifyListener();
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _addModifyListener() {
+ log.println("'Modified' events are called only in case"+
+ " of user interaction.");
+ oObj.addModifyListener(listener);
+ tRes.tested("addModifyListener()", true);
+ }
+
+ /**
+ * Just calls the method. <p>
+ * Has <b> OK </b> status if no runtime exceptions occurred
+ */
+ public void _removeModifyListener() {
+ requiredMethod("addModifyListener()");
+ oObj.removeModifyListener(listener);
+ tRes.tested("removeModifyListener()", true);
+ }
+}// finish class _XModifyBroadcaster
+
diff --git a/qadevOOo/tests/java/ifc/util/_XNumberFormatsSupplier.java b/qadevOOo/tests/java/ifc/util/_XNumberFormatsSupplier.java
new file mode 100644
index 000000000..65785807d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XNumberFormatsSupplier.java
@@ -0,0 +1,89 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.util.XNumberFormats;
+import com.sun.star.util.XNumberFormatsSupplier;
+
+/**
+ * Testing <code>com.sun.star.util.XNumberFormatsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getNumberFormatSettings()</code></li>
+ * <li><code> getNumberFormats()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XNumberFormatsSupplier
+ */
+public class _XNumberFormatsSupplier extends MultiMethodTest {
+
+ public XNumberFormatsSupplier oObj = null;
+
+ /**
+ * Get format settings and checks some properties for existence. <p>
+ *
+ * Has <b> OK </b> status if a number properties inherent to
+ * <code>NumberFormatSettings</code> service exist in the
+ * returned <code>XPropertySet</code>. <p>
+ *
+ * @see com.sun.star.util.NumberFormatSettings
+ */
+ public void _getNumberFormatSettings() {
+ boolean result = true ;
+ XPropertySet props = oObj.getNumberFormatSettings();
+
+ if (props != null) {
+ try {
+ result &= props.getPropertyValue("NullDate") != null &&
+ props.getPropertyValue("StandardDecimals") != null &&
+ props.getPropertyValue("NoZero") != null &&
+ props.getPropertyValue("TwoDigitDateStart") != null ;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Some property doesn't exist") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ } else {
+ log.println("Method returns null") ;
+ result = false ;
+ }
+
+ tRes.tested("getNumberFormatSettings()", result) ;
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getNumberFormats() {
+ XNumberFormats formats = oObj.getNumberFormats();
+
+ tRes.tested("getNumberFormats()", formats != null) ;
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/util/_XNumberFormatter.java b/qadevOOo/tests/java/ifc/util/_XNumberFormatter.java
new file mode 100644
index 000000000..01f419ac7
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XNumberFormatter.java
@@ -0,0 +1,119 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XNumberFormatter;
+
+
+/**
+ * Testing <code>com.sun.star.util.XNumberFormatter</code>
+ * interface methods :
+ * <ul>
+ * <li><code> attachNumberFormatsSupplier()</code></li>
+ * <li><code> convertNumberToString() </code></li>
+ * <li><code> convertStringToNumber() </code></li>
+ * <li><code> detectNumberFormat() </code></li>
+ * <li><code> formatString() </code></li>
+ * <li><code> getInputString() </code></li>
+ * <li><code> getNumberFormatsSupplier() </code></li>
+ * <li><code> queryColorForNumber() </code></li>
+ * <li><code> queryColorForString() </code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XNumberFormatter
+ */
+public class _XNumberFormatter extends MultiMethodTest {
+
+ public XNumberFormatter oObj = null;
+
+ /**
+ * Not implemented yet.
+ */
+ public void _attachNumberFormatsSupplier() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Tries to convert a number to a string. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _convertNumberToString() {
+ double dValue = 1.56;
+ int key = 15;
+
+ String gString = oObj.convertNumberToString(key,dValue);
+
+ log.println("Getting: "+gString);
+ tRes.tested("convertNumberToString",gString!=null);
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _convertStringToNumber() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _detectNumberFormat() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _formatString() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _getInputString() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _getNumberFormatsSupplier() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _queryColorForNumber() {
+ log.println("Not yet implemented");
+ }
+
+ /**
+ * Not implemented yet.
+ */
+ public void _queryColorForString() {
+ log.println("Not yet implemented");
+ }
+} // finish class _XNumberFormatter
+
+
diff --git a/qadevOOo/tests/java/ifc/util/_XProtectable.java b/qadevOOo/tests/java/ifc/util/_XProtectable.java
new file mode 100644
index 000000000..127d30971
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XProtectable.java
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.util;
+
+import com.sun.star.util.XProtectable;
+import lib.MultiMethodTest;
+
+/**
+ * Check the XProtectable interface.
+ */
+public class _XProtectable extends MultiMethodTest {
+ public XProtectable oObj = null;
+ String sPassWord = "TopSecret";
+
+ /**
+ * Check, if the sheet is protected.
+ * Has OK status, if this is the case.
+ */
+ public void _isProtected() {
+ requiredMethod("protect()");
+ boolean result = oObj.isProtected();
+ tRes.tested("isProtected()", result);
+ }
+
+ /**
+ * Protect the sheet
+ */
+ public void _protect() {
+ oObj.protect(sPassWord);
+ tRes.tested("protect()", true);
+ }
+
+ /**
+ * Unprotect with wrong password, see if it's still protected.
+ * Unprotect with correct password, see if it's unprotected.
+ */
+ public void _unprotect() {
+ requiredMethod("isProtected()");
+ boolean result = true;
+ try {
+ oObj.unprotect("WrongPassword");
+// result = false;
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Correct Exception thrown.");
+ }
+ // just check if it's still protected
+ result &= oObj.isProtected();
+ try {
+ oObj.unprotect(sPassWord);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Wrong Exception thrown: password is correct.");
+ result = false;
+ }
+ result &= !oObj.isProtected();
+ tRes.tested("unprotect()", result);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/util/_XRefreshable.java b/qadevOOo/tests/java/ifc/util/_XRefreshable.java
new file mode 100644
index 000000000..1edfae0d5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XRefreshable.java
@@ -0,0 +1,110 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XRefreshListener;
+import com.sun.star.util.XRefreshable;
+
+/**
+* Testing <code>com.sun.star.util.XRefreshable</code>
+* interface methods :
+* <ul>
+* <li><code> refresh()</code></li>
+* <li><code> addRefreshListener()</code></li>
+* <li><code> removeRefreshListener()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.util.XRefreshable
+*/
+public class _XRefreshable extends MultiMethodTest {
+
+ public XRefreshable oObj = null;
+
+ final boolean listenerCalled[] = new boolean[1];
+
+
+ /**
+ * <code>XRefreshListener</code> implementation which
+ * sets a flag when <code>refreshed</code> method is
+ * called.
+ */
+ public class MyRefreshListener implements XRefreshListener {
+ public void refreshed (com.sun.star.lang.EventObject e) {
+ listenerCalled[0] = true;
+ }
+
+ public void disposing (com.sun.star.lang.EventObject obj) {}
+ }
+
+ XRefreshListener listener = new MyRefreshListener();
+
+ /**
+ * Just adds a listener. <p>
+ * Always has <b>OK</b> status.
+ */
+ public void _addRefreshListener() {
+
+ oObj.addRefreshListener(listener) ;
+ tRes.tested("addRefreshListener()", true);
+ }
+
+ /**
+ * Calls the method and checks if the listener was called. <p>
+ * Has <b>OK</b> status if listener's flag is set after call.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addRefreshListener </code> : to have a listener added.</li>
+ * </ul>
+ */
+ public void _refresh() {
+
+ requiredMethod("addRefreshListener()");
+
+ oObj.refresh();
+
+ tRes.tested("refresh()", listenerCalled[0]);
+ if (!listenerCalled[0])
+ log.println("RefreshListener wasn't called after refresh");
+
+ }
+
+ /**
+ * Removes the listener added before and calls <code>refresh</code>
+ * method. Listener must not be called. <p>
+ * Has <b>OK</b> status if listener's flag isn't changed.
+ * <ul>
+ * <li> <code> refresh </code> : listener added must be already
+ * tested.</li>
+ * </ul>
+ */
+ public void _removeRefreshListener() {
+ requiredMethod("refresh()");
+ listenerCalled[0] = false;
+
+ oObj.removeRefreshListener(listener) ;
+ oObj.refresh();
+
+ tRes.tested("removeRefreshListener()", !listenerCalled[0]);
+ if (listenerCalled[0])
+ log.println("RefreshListener was called after removing");
+ }
+} // finish class _XRefreshable
+
diff --git a/qadevOOo/tests/java/ifc/util/_XReplaceDescriptor.java b/qadevOOo/tests/java/ifc/util/_XReplaceDescriptor.java
new file mode 100644
index 000000000..98249a9db
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XReplaceDescriptor.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XReplaceDescriptor;
+
+/**
+ * Testing <code>com.sun.star.util.XReplaceDescriptor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getReplaceString()</code></li>
+ * <li><code> setReplaceString()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XReplaceDescriptor
+ */
+public class _XReplaceDescriptor extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XReplaceDescriptor oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getReplaceString(){
+ log.println("test for getReplaceString() ");
+ tRes.tested("getReplaceString()", oObj.getReplaceString()!=null);
+ }
+
+ /**
+ * Set a new string and checks the result. <p>
+ * Has <b> OK </b> status if the string before setting differs
+ * from string after setting. <p>
+ */
+ public void _setReplaceString(){
+ log.println("test for setReplaceString() ");
+ String oldReplaceStr = oObj.getReplaceString();
+ oObj.setReplaceString("XReplaceDescriptor");
+ String cmpReplaceStr = oObj.getReplaceString();
+ tRes.tested("setReplaceString()", !(cmpReplaceStr.equals(oldReplaceStr)));
+ }
+
+} // finish class _XReplaceDescriptor
+
+
diff --git a/qadevOOo/tests/java/ifc/util/_XReplaceable.java b/qadevOOo/tests/java/ifc/util/_XReplaceable.java
new file mode 100644
index 000000000..db80a4ed3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XReplaceable.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import com.sun.star.table.XCell;
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XReplaceDescriptor;
+import com.sun.star.util.XReplaceable;
+import com.sun.star.util.XSearchDescriptor;
+
+/**
+ * Testing <code>com.sun.star.util.XReplaceable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> createReplaceDescriptor()</code></li>
+ * <li><code> replaceAll()</code></li>
+ * </ul> <p>
+ *
+ * The requipment for the tested object is that it
+ * <b>must contain</b> string 'xTextDoc'. Only
+ * in that case this interface is tested correctly. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XReplaceable
+ */
+public class _XReplaceable extends MultiMethodTest {
+
+ public XReplaceable oObj = null;
+ public XReplaceDescriptor Rdesc = null;
+ private String mSearchString = "xTextDoc";
+ private static final String mReplaceString = "** xTextDoc";
+ private boolean mDispose = false;
+
+ /**
+ * Creates an entry to search for, if the current object does not provide
+ * one. In this case, the environment is disposed after the test, since
+ * the inserted object may influence following tests.
+ *
+ */
+ @Override
+ protected void before() {
+ Object o = tEnv.getObjRelation("SEARCHSTRING");
+ if (o != null) {
+ mSearchString = (String)o;
+ }
+ // use object relation for XSearchable
+ o = tEnv.getObjRelation("XSearchable.MAKEENTRYINCELL");
+ if (o != null) {
+ XCell[] cells = new XCell[0];
+ if (o instanceof XCell) {
+ cells = new XCell[]{(XCell)o};
+ }
+ else if (o instanceof XCell[]) {
+ cells = (XCell[])o;
+ }
+ else {
+ log.println("Needed object relation 'XSearchable.MAKEENTRYINCELL' is there, but is of type '"
+ + o.getClass().getName() + "'. Should be 'XCell' or 'XCell[]' instead.");
+ }
+ for (int i=0; i<cells.length; i++) {
+ cells[i].setFormula(mSearchString);
+ }
+ mDispose = true;
+ }
+ }
+
+ /**
+ * Creates the descriptor for replacing string 'xTextDoc'
+ * with string '** xTextDoc'. <p>
+ * Has <b> OK </b> status if the returned descriptor is not
+ * <code>null</code>. <p>
+ */
+ public void _createReplaceDescriptor() {
+
+ log.println("testing createReplaceDescriptor() ... ");
+
+ Rdesc = oObj.createReplaceDescriptor();
+ Rdesc.setSearchString(mSearchString);
+ Rdesc.setReplaceString(mReplaceString);
+ tRes.tested("createReplaceDescriptor()", true);
+
+ }
+
+ /**
+ * Replaces the text using descriptor created before. Then
+ * search is performed in the target text. <p>
+ *
+ * Has <b> OK </b> status if the string '**' is found in
+ * the text. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createReplaceDescriptor() </code> : replace
+ * descriptor is created. </li>
+ * </ul>
+ */
+ public void _replaceAll() {
+ requiredMethod("createReplaceDescriptor()");
+ oObj.replaceAll(Rdesc);
+ XSearchDescriptor SDesc = oObj.createSearchDescriptor();
+ SDesc.setSearchString("**");
+ boolean res = (oObj.findFirst(SDesc) != null);
+ // redo replacement
+ Rdesc.setSearchString(mReplaceString);
+ Rdesc.setReplaceString(mSearchString);
+ oObj.replaceAll(Rdesc);
+ res &= (oObj.findFirst(SDesc) == null);
+
+ tRes.tested("replaceAll()",res);
+ }
+
+ /**
+ * In case the interface itself made the entry to search for, the environment
+ * must be disposed
+ */
+ @Override
+ protected void after() {
+ if(mDispose) {
+ disposeEnvironment();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/util/_XSearchDescriptor.java b/qadevOOo/tests/java/ifc/util/_XSearchDescriptor.java
new file mode 100644
index 000000000..bc7fc1510
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XSearchDescriptor.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XSearchDescriptor;
+
+/**
+ * Testing <code>com.sun.star.util.XSearchDescriptor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getSearchString()</code></li>
+ * <li><code> setSearchString()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XSearchDescriptor
+ */
+public class _XSearchDescriptor extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+ public XSearchDescriptor oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getSearchString(){
+ boolean bResult = false;
+ String searchStr = null;
+
+ log.println("test for getSearchString() ");
+ searchStr = oObj.getSearchString();
+
+ if (searchStr != null){ bResult = true; }
+ tRes.tested("getSearchString()", bResult);
+ }
+
+ /**
+ * Set a new string and checks the result. <p>
+ * Has <b> OK </b> status if the string before setting differs
+ * from string after setting. <p>
+ */
+ public void _setSearchString(){
+ boolean bResult = false;
+ String oldSearchStr = null;
+ String cmpSearchStr = null;
+ String newSearchStr = "_XSearchDescriptor";
+ log.println("test for setSearchString() ");
+
+ oldSearchStr = oObj.getSearchString();
+ oObj.setSearchString(newSearchStr);
+ cmpSearchStr = oObj.getSearchString();
+
+ if(!(cmpSearchStr.equals(oldSearchStr))){ bResult = true; }
+ tRes.tested("setSearchString()", bResult);
+ }
+
+} // finish class _XSearchDescriptor
+
diff --git a/qadevOOo/tests/java/ifc/util/_XSearchable.java b/qadevOOo/tests/java/ifc/util/_XSearchable.java
new file mode 100644
index 000000000..5c0f6789a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XSearchable.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.table.XCell;
+import com.sun.star.util.XSearchDescriptor;
+import com.sun.star.util.XSearchable;
+
+/**
+ * Testing <code>com.sun.star.util.XSearchable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> createSearchDescriptor()</code></li>
+ * <li><code> findAll()</code></li>
+ * <li><code> findFirst()</code></li>
+ * <li><code> findNext()</code></li>
+ * </ul> <p>
+ *
+ * The requipment for the tested object is that it
+ * <b>must contain</b> string 'xTextDoc'. Only
+ * in that case this interface is tested correctly. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XSearchable
+ */
+public class _XSearchable extends MultiMethodTest {
+
+ public XSearchable oObj = null; // oObj filled by MultiMethodTest
+ public XSearchDescriptor Sdesc = null;
+ public Object start = null;
+ private String mSearchString = "xTextDoc";
+ private boolean mDispose = false;
+ private boolean mExcludeFindNext = false;
+
+ /**
+ * Creates an entry to search for, if the current object does not provide
+ * one. In this case, the environment is disposed after the test, since
+ * the inserted object may influence following tests.
+ *
+ */
+ @Override
+ protected void before() {
+ Object o = tEnv.getObjRelation("SEARCHSTRING");
+ if (o != null) {
+ mSearchString = (String)o;
+ }
+ o = tEnv.getObjRelation("XSearchable.MAKEENTRYINCELL");
+ if (o != null) {
+ XCell[] cells = new XCell[0];
+ if (o instanceof XCell) {
+ cells = new XCell[]{(XCell)o};
+ }
+ else if (o instanceof XCell[]) {
+ cells = (XCell[])o;
+ }
+ else {
+ log.println("Needed object relation 'XSearchable.MAKEENTRYINCELL' is there, but is of type '"
+ + o.getClass().getName() + "'. Should be 'XCell' or 'XCell[]' instead.");
+ }
+ for (int i=0; i<cells.length; i++) {
+ cells[i].setFormula(mSearchString);
+ }
+ mDispose = true;
+ }
+ mExcludeFindNext = (tEnv.getObjRelation("EXCLUDEFINDNEXT")==null)?false:true;
+ }
+
+ /**
+ * Creates the search descriptor which searches for
+ * 'xTextDoc' string. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _createSearchDescriptor() {
+
+ log.println("testing createSearchDescriptor() ... ");
+
+ Sdesc = oObj.createSearchDescriptor();
+ Sdesc.setSearchString(mSearchString);
+ tRes.tested("createSearchDescriptor()", true);
+
+ }
+
+ /**
+ * Performs search using descriptor created before. <p>
+ * Has <b> OK </b> status if the method not <code>null</code>
+ * collections. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createSearchDescriptor() </code> : creates the descriptor
+ * required for search. </li>
+ * </ul>
+ */
+ public void _findAll() {
+
+ requiredMethod("createSearchDescriptor()");
+ log.println("testing findAll()");
+
+ XIndexAccess IA = oObj.findAll(Sdesc);
+ tRes.tested("findAll()", IA != null);
+ }
+
+ /**
+ * Performs search using descriptor created before. Storing the
+ * first occurrence result. <p>
+ * Has <b> OK </b> status if the method not <code>null</code>
+ * value. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createSearchDescriptor() </code> : creates the descriptor
+ * required for search. </li>
+ * </ul>
+ */
+ public void _findFirst() {
+
+ requiredMethod("createSearchDescriptor()");
+ log.println("testing findFirst()");
+ start = oObj.findFirst(Sdesc);
+ tRes.tested("findFirst()", start != null);
+ }
+
+ /**
+ * Performs search using descriptor and first search result
+ * created before. <p>
+ * Has <b> OK </b> status if the method not <code>null</code>
+ * value. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> findFirst() </code> : to have first search result. </li>
+ * </ul>
+ */
+ public void _findNext() {
+ if (mExcludeFindNext) {
+ log.println("Testing findNext() excluded, because only one" +
+ " search result is available.");
+ tRes.tested("findNext()", true);
+ }
+ else{
+ requiredMethod("findFirst()");
+
+ log.println("testing findNext()");
+ Object xI = oObj.findNext(start,Sdesc);
+ tRes.tested("findNext()", xI != null);
+ }
+ }
+
+ /**
+ * In case the interface itself made the entry to search for, the environment
+ * must be disposed
+ */
+ @Override
+ protected void after() {
+ if(mDispose) {
+ disposeEnvironment();
+ }
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/util/_XSortable.java b/qadevOOo/tests/java/ifc/util/_XSortable.java
new file mode 100644
index 000000000..e43c93c16
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XSortable.java
@@ -0,0 +1,231 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.util;
+
+import java.io.PrintWriter;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.table.TableSortField;
+import com.sun.star.util.XSortable;
+
+
+/**
+ * Testing <code>com.sun.star.util.XSortable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> createSortDescriptor()</code></li>
+ * <li><code> sort()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'SORTCHECKER'</code> : <code>
+* _XSortable.XSortChecker</code> interface implementation
+ * </li>
+ * <ul><p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.util.XSortable
+ */
+public class _XSortable extends MultiMethodTest {
+ // oObj filled by MultiMethodTest
+ public XSortable oObj = null;
+ XSortChecker checker = null;
+ PropertyValue[] oPV = null;
+
+ @Override
+ protected void before() {
+ checker = (XSortChecker) tEnv.getObjRelation("SORTCHECKER");
+
+ if (checker == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'SORTCHECKER'"));
+ }
+
+ checker.setPrintWriter(log);
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the length of the returned array
+ * is greater than zero. <p>
+ */
+ public void _createSortDescriptor() {
+ boolean bResult = false;
+
+ log.println("test for createSortDescriptor() ");
+ oPV = oObj.createSortDescriptor();
+
+ if (oPV.length > 0) {
+ bResult = true;
+
+ for (int k = 0; k < oPV.length; k++) {
+ log.println("DescriptorProperty " + k + ": Name=" +
+ oPV[k].Name + "; Value=" + oPV[k].Value);
+
+ if (oPV[k].Name.equals("SortFields")) {
+ TableSortField[] tsf = (TableSortField[]) oPV[k].Value;
+
+ for (int l = 0; l < tsf.length; l++) {
+ log.println("\t isAscending: " +
+ tsf[l].IsAscending);
+ log.println("\t IsCaseSensitive: " +
+ tsf[l].IsCaseSensitive);
+ log.println("\t CollatorAlgorithm: " +
+ tsf[l].CollatorAlgorithm);
+ }
+ }
+ }
+ }
+
+ log.println("Found " + oPV.length + " PropertyValues");
+ tRes.tested("createSortDescriptor()", bResult);
+ }
+
+ /**
+ * Test calls the method using descriptor created before as
+ * parameter. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createSortDescriptor() </code> : to have a descriptor
+ * for sort. </li>
+ * </ul>
+ */
+ public void _sort() {
+
+ checker.prepareToSort();
+
+ log.println(
+ "############## Sort algorithm: Alphanumeric Order: Ascending");
+ modifyDescriptor(false, true);
+ oObj.sort(oPV);
+
+ boolean res = checker.checkSort(false, true);
+ log.println(
+ "############################################################");
+
+ log.println(
+ "############# Sort algorithm: Alphanumeric Order: Descending");
+ modifyDescriptor(false, false);
+ oObj.sort(oPV);
+ res = checker.checkSort(false, false);
+ log.println(
+ "############################################################");
+
+ log.println(
+ "################# Sort algorithm: Numeric Order: Ascending");
+ modifyDescriptor(true, true);
+ oObj.sort(oPV);
+ res = checker.checkSort(true, true);
+ log.println(
+ "############################################################");
+
+ log.println(
+ "################## Sort algorithm: Numeric Order: Descending");
+ modifyDescriptor(true, false);
+ oObj.sort(oPV);
+ res = checker.checkSort(true, false);
+ log.println(
+ "############################################################");
+
+ tRes.tested("sort()", res);
+ }
+
+ protected void modifyDescriptor(boolean isSortNumeric,
+ boolean isSortAscending) {
+ for (int i = 0; i < oPV.length; i++) {
+ if (oPV[i].Name.equals("SortFields")) {
+ TableSortField[] TableFields = (TableSortField[]) oPV[i].Value;
+
+ if (TableFields.length == 0) {
+ TableFields = new TableSortField[1];
+ TableFields[0] = new TableSortField();
+ }
+
+ for (int k = 0; k < TableFields.length; k++) {
+ TableFields[k].IsAscending = isSortAscending;
+
+ if (isSortNumeric) {
+ TableFields[k].FieldType = com.sun.star.table.TableSortFieldType.NUMERIC;
+ TableFields[k].CollatorAlgorithm = "numeric";
+ } else {
+ TableFields[k].FieldType = com.sun.star.table.TableSortFieldType.ALPHANUMERIC;
+ TableFields[k].CollatorAlgorithm = "alphanumeric";
+ }
+ }
+
+ oPV[i].Value = TableFields;
+ }
+
+ if (oPV[i].Name.equals("isSortInTable")) {
+ oPV[i].Value = Boolean.TRUE;
+ }
+
+ if (oPV[i].Name.equals("IsSortColumns")) {
+ oPV[i].Value = Boolean.FALSE;
+ }
+ }
+
+ log.println("Modified sort descriptor: ");
+
+ if (oPV.length > 0) {
+ for (int k = 0; k < oPV.length; k++) {
+ log.println("DescriptorProperty " + k + ": Name=" +
+ oPV[k].Name + "; Value=" + oPV[k].Value);
+
+ if (oPV[k].Name.equals("SortFields")) {
+ TableSortField[] tsf = (TableSortField[]) oPV[k].Value;
+
+ for (int l = 0; l < tsf.length; l++) {
+ log.println("\t isAscending: " +
+ tsf[l].IsAscending);
+ log.println("\t IsCaseSensitive: " +
+ tsf[l].IsCaseSensitive);
+ log.println("\t CollatorAlgorithm: " +
+ tsf[l].CollatorAlgorithm);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * The interface for sort checking.
+ */
+ public interface XSortChecker {
+ void prepareToSort();
+
+ boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending);
+
+ void setPrintWriter(PrintWriter log);
+ }
+
+ /**
+ * Forces environment recreation.
+ */
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+} // finish class _XSortable
diff --git a/qadevOOo/tests/java/ifc/util/_XStringEscape.java b/qadevOOo/tests/java/ifc/util/_XStringEscape.java
new file mode 100644
index 000000000..edd4a2d83
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XStringEscape.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.util.XStringEscape;
+
+public class _XStringEscape extends MultiMethodTest {
+
+ public XStringEscape oObj;
+
+ public void _escapeString() {
+ log.println("The Implementation of this Interface doesn't really do anything");
+ boolean res = true;
+ try {
+ String toCheck = ";:<>/*";
+ String eString = oObj.escapeString(toCheck);
+ res = toCheck.equals(eString);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.out.println("IllegalArgument");
+ }
+ tRes.tested("escapeString()",res);
+ }
+
+ public void _unescapeString() {
+ log.println("The Implementation of this Interface doesn't really do anything");
+ boolean res = true;
+ try {
+ String toCheck = ";:<>/*";
+ String ueString = oObj.unescapeString(toCheck);
+ res = toCheck.equals(ueString);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.out.println("IllegalArgument");
+ }
+ tRes.tested("unescapeString()",res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/util/_XStringSubstitution.java b/qadevOOo/tests/java/ifc/util/_XStringSubstitution.java
new file mode 100644
index 000000000..77d5fe5fb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XStringSubstitution.java
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import com.sun.star.util.XStringSubstitution;
+import lib.MultiMethodTest;
+
+public class _XStringSubstitution extends MultiMethodTest {
+
+ public XStringSubstitution oObj;
+
+ public void _getSubstituteVariableValue() {
+ boolean res = true;
+ try {
+ log.println("try to get the valid variable $(user) ...");
+ String toCheck = "$(user)";
+ String eString = oObj.getSubstituteVariableValue(toCheck);
+ res = eString.startsWith("file:///");
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("$(user) does not exist");
+ tRes.tested("getSubstituteVariableValue()",false);
+ }
+ try {
+ log.println("try to get an invalid variable...");
+ String toCheck = "$(ThisVariableShouldNoExist)";
+ oObj.getSubstituteVariableValue(toCheck);
+ log.println("$(ThisVariableShouldNoExist) should not exist");
+ tRes.tested("getSubstituteVariableValue()",false);
+
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("expected exception was thrown.");
+ res &= true;
+ }
+
+ tRes.tested("getSubstituteVariableValue()",res);
+ }
+
+ public void _substituteVariables() {
+ boolean res = true;
+ try {
+ log.println("try to get a valid variable...");
+ String toCheck = "$(user)";
+ String eString = oObj.substituteVariables(toCheck, false);
+ log.println(eString);
+ res = eString.startsWith("file:///");
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("$(user) does not exist");
+ tRes.tested("substituteVariables()",false);
+ }
+ try {
+ log.println("try to get an invalid variable...");
+ String toCheck = "$(ThisVariableShouldNoExist)";
+ oObj.substituteVariables(toCheck,true);
+ log.println("$(ThisVariableShouldNoExist) should not exist");
+ tRes.tested("substituteVariables()",false);
+
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("expected exception was thrown.");
+ res &= true;
+ }
+
+ tRes.tested("substituteVariables()",res);
+ }
+
+ public void _reSubstituteVariables() {
+ boolean res = true;
+ log.println("try to get a valid variable...");
+ String toCheck = "file:///";
+ String eString = oObj.reSubstituteVariables(toCheck);
+ log.println(eString);
+ res = eString.startsWith("file:///");
+
+ tRes.tested("reSubstituteVariables()",res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/util/_XURLTransformer.java b/qadevOOo/tests/java/ifc/util/_XURLTransformer.java
new file mode 100644
index 000000000..9ce968cdf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/util/_XURLTransformer.java
@@ -0,0 +1,461 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.util;
+
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+import lib.MultiMethodTest;
+
+/**
+* Testing <code>com.sun.star.util.XURLTransformer</code>
+* interface methods :
+* <ul>
+* <li><code> assemble() </code></li>
+* <li><code> parseStrict() </code></li>
+* <li><code> parseSmart() </code></li>
+* <li><code> getPresentation() </code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.util.XURLTransformer
+*/
+public class _XURLTransformer extends MultiMethodTest {
+
+ public XURLTransformer oObj = null;
+
+ static final String user = "user";
+ static final String invalidUserPrefix = "1";
+ static final String password = "password";
+ static final String server = "server";
+ static final String invalidServerPrefix = "1";
+ static final String port = "8080";
+ static final String path = "/pub/path";
+ static final String name = "file.txt";
+ static final String arguments = "a=b";
+ static final String mark = "mark";
+
+ static final String expectedCompleteHTTP = "http://"
+ + server + ":" + port + path
+ + "/" + name + "?" + arguments + "#" + mark;
+ static final String expectedCompleteFTP = "ftp://"
+ + user + ":" + password + "@" + server + ":" + port + path
+ + "/" + name;
+
+ /**
+ * First the complete URL (all URL fields are filled) is
+ * passed and assembled. Then incomplete URL (only
+ * <code>Server</code> field is set) is passed. <p>
+ * Has <b> OK </b> status if in the first case <code>true</code>
+ * returned and <code>Complete</code> field is set and in the
+ * second case <code>false</code> is returned. <p>
+ */
+ public void _assemble(){
+ URL[] url = new URL[1];
+ url[0] = new URL();
+
+ url[0].Protocol = "http://";
+ url[0].Server = server;
+ url[0].Port = Short.parseShort(port);
+ url[0].Path = path;
+ url[0].Name = name;
+ url[0].Arguments = arguments;
+ url[0].Mark = mark;
+ url[0].Main = "http://" + server + ":" +
+ port + path + "/" + name;
+
+ boolean res = true;
+
+ log.print("assemble http-URL: ");
+ boolean complete = oObj.assemble(url);
+ log.println(complete);
+ res &= complete;
+
+ if (!expectedCompleteHTTP.equals(url[0].Complete)) {
+ log.println("assemble works wrong");
+ log.println("complete field : " + url[0].Complete);
+ log.println("expected : " + expectedCompleteHTTP);
+ res = false;
+ }
+
+ url[0] = new URL();
+ url[0].Protocol = "ftp://";
+ url[0].User = user;
+ url[0].Password = password;
+ url[0].Server = server;
+ url[0].Port = Short.parseShort(port);
+ url[0].Path = path;
+ url[0].Name = name;
+ url[0].Main = "ftp://" + user + ":" + password + "@" + server + ":" +
+ port + path + "/" + name;
+
+ log.print("assemble ftp-URL: ");
+ complete = oObj.assemble(url);
+ log.println(complete);
+ res &= complete;
+
+ if (!expectedCompleteFTP.equals(url[0].Complete)) {
+ log.println("assemble works wrong");
+ log.println("complete field : " + url[0].Complete);
+ log.println("expected : " + expectedCompleteFTP);
+ res = false;
+ }
+
+ URL[] incompleteUrl = new URL[1];
+ incompleteUrl[0] = new URL();
+ incompleteUrl[0].Server = server;
+
+ log.print("assemble incomplete URL: ");
+ complete = oObj.assemble(incompleteUrl);
+ log.println(complete);
+ res &= !complete;
+
+ // should be incomplete
+ tRes.tested("assemble()", res);
+ }
+
+ /**
+ * First the complete URL (<code>Complete</code> field is set
+ * to proper URL) is passed and parsed. Then incomplete URL (only
+ * <code>Server</code> field is set) is passed. <p>
+ * Has <b> OK </b> status if in the first case <code>true</code>
+ * returned and all URL fields are set to proper values and in the
+ * second case <code>false</code> is returned. <p>
+ */
+ public void _parseStrict() {
+ URL[] url = new URL[1];
+
+ url[0] = new URL();
+ url[0].Complete = expectedCompleteHTTP;
+
+ boolean res = true;
+ log.print("parseStrict(" + expectedCompleteHTTP + "): ");
+ boolean complete = oObj.parseStrict(url);
+ log.println(complete);
+ res &= complete;
+
+ if (!url[0].Protocol.equals("http://")) {
+ log.println("parseStrict works wrong");
+ log.println("protocol field : " + url[0].Protocol);
+ log.println("expected : http://");
+ res = false;
+ }
+
+ if (!url[0].Server.equals(server)) {
+ log.println("parseStrict works wrong");
+ log.println("server field : " + url[0].Server);
+ log.println("expected : " + server);
+ res = false;
+ }
+
+ if (url[0].Port != Short.parseShort(port)) {
+ log.println("parseStrict works wrong");
+ log.println("port field : " + url[0].Port);
+ log.println("expected : " + port);
+ res = false;
+ }
+
+ if ((!url[0].Path.equals(path)) && (!url[0].Path.equals(path + "/"))) {
+ log.println("parseStrict works wrong");
+ log.println("path field : " + url[0].Path);
+ log.println("expected : " + path);
+ res = false;
+ }
+
+ if (!url[0].Name.equals(name)) {
+ log.println("parseStrict works wrong");
+ log.println("name field : " + url[0].Name);
+ log.println("expected : " + name);
+ res = false;
+ }
+
+ if (!url[0].Arguments.equals(arguments)) {
+ log.println("parseStrict works wrong");
+ log.println("arguments field : " + url[0].Arguments);
+ log.println("expected : " + arguments);
+ res = false;
+ }
+
+ if (!url[0].Mark.equals(mark)) {
+ log.println("parseStrict works wrong");
+ log.println("mark field : " + url[0].Mark);
+ log.println("expected : " + mark);
+ res = false;
+ }
+
+ url[0] = new URL();
+ url[0].Complete = expectedCompleteFTP;
+
+ log.print("parseStrict(" + expectedCompleteFTP + "): ");
+ complete = oObj.parseStrict(url);
+ log.println(complete);
+ res &= complete;
+
+ if (!url[0].Protocol.equals("ftp://")) {
+ log.println("parseStrict works wrong");
+ log.println("protocol field : " + url[0].Protocol);
+ log.println("expected : ftp://");
+ res = false;
+ }
+
+ if (!url[0].User.equals(user)) {
+ log.println("parseStrict works wrong");
+ log.println("user field : " + url[0].User);
+ log.println("expected : " + user);
+ res = false;
+ }
+
+ if (!url[0].Password.equals(password)) {
+ log.println("parseStrict works wrong");
+ log.println("password field : " + url[0].Password);
+ log.println("expected : " + password);
+ res = false;
+ }
+
+ if (!url[0].Server.equals(server)) {
+ log.println("parseStrict works wrong");
+ log.println("server field : " + url[0].Server);
+ log.println("expected : " + server);
+ res = false;
+ }
+
+ if (url[0].Port != Short.parseShort(port)) {
+ log.println("parseStrict works wrong");
+ log.println("port field : " + url[0].Port);
+ log.println("expected : " + port);
+ res = false;
+ }
+
+ if ((!url[0].Path.equals(path)) && (!url[0].Path.equals(path + "/"))) {
+ log.println("parseStrict works wrong");
+ log.println("path field : " + url[0].Path);
+ log.println("expected : " + path);
+ res = false;
+ }
+
+ if (!url[0].Name.equals(name)) {
+ log.println("parseStrict works wrong");
+ log.println("name field : " + url[0].Name);
+ log.println("expected : " + name);
+ res = false;
+ }
+
+ URL[] incompleteUrl = new URL[1];
+ incompleteUrl[0] = new URL();
+ incompleteUrl[0].Complete = server;
+
+ log.print("parseStrict(" + server + "): ");
+ complete = oObj.parseStrict(incompleteUrl);
+ log.println(complete);
+ // should be incomplete
+ res &= !complete;
+
+ tRes.tested("parseStrict()", res);
+ }
+
+ /**
+ * Tries to parse WWW server name. <p>
+ * Has <b> OK </b> status if the method return <code>true</code>
+ * value and <code>Protocol, Server, Port</code> URL fields are
+ * set properly.
+ */
+ public void _parseSmart() {
+ URL[] url = new URL[1];
+
+ String httpURL = invalidServerPrefix + server + ":" + port + path + "/" + name + "?" +
+ arguments + "#" + mark;
+
+ url[0] = new URL();
+ url[0].Complete = httpURL;
+
+ boolean res = true;
+ log.print("parseSmart('" + httpURL + "', 'http://'): ");
+ boolean complete = oObj.parseSmart(url, "http://");
+ log.println(complete);
+ res &= complete;
+
+ if (!url[0].Protocol.equals("http://")) {
+ log.println("parseSmart works wrong");
+ log.println("protocol field : " + url[0].Protocol);
+ log.println("expected : http://");
+ res = false;
+ }
+
+ if (!url[0].Server.equals(invalidServerPrefix+server)) {
+ log.println("parseSmart works wrong");
+ log.println("server field : " + url[0].Server);
+ log.println("expected : " + server);
+ res = false;
+ }
+
+ if (url[0].Port != Short.parseShort(port)) {
+ log.println("parseSmart works wrong");
+ log.println("port field : " + url[0].Port);
+ log.println("expected : " + port);
+ res = false;
+ }
+
+ if ((!url[0].Path.equals(path)) && (!url[0].Path.equals(path + "/"))) {
+ log.println("parseSmart works wrong");
+ log.println("path field : " + url[0].Path);
+ log.println("expected : " + path);
+ res = false;
+ }
+
+ if (!url[0].Name.equals(name)) {
+ log.println("parseSmart works wrong");
+ log.println("name field : " + url[0].Name);
+ log.println("expected : " + name);
+ res = false;
+ }
+
+ if (!url[0].Arguments.equals(arguments)) {
+ log.println("parseSmart works wrong");
+ log.println("arguments field : " + url[0].Arguments);
+ log.println("expected : " + arguments);
+ res = false;
+ }
+
+ if (!url[0].Mark.equals(mark)) {
+ log.println("parseSmart works wrong");
+ log.println("mark field : " + url[0].Mark);
+ log.println("expected : " + mark);
+ res = false;
+ }
+
+ String ftpURL = invalidUserPrefix +user + ":" + password + "@" + server + ":" +
+ port + path + "/" + name;
+
+ url[0] = new URL();
+ url[0].Complete = ftpURL;
+ log.print("parseSmart('" + ftpURL + "', 'ftp://'): ");
+ complete = oObj.parseSmart(url, "ftp://");
+ log.println(complete);
+ res &= complete;
+
+ if (!url[0].Protocol.equals("ftp://")) {
+ log.println("parseSmart works wrong");
+ log.println("protocol field : " + url[0].Protocol);
+ log.println("expected : ftp://");
+ res = false;
+ }
+
+ if (!url[0].User.equals(invalidUserPrefix+user)) {
+ log.println("parseSmart works wrong");
+ log.println("user field : " + url[0].User);
+ log.println("expected : " + user);
+ res = false;
+ }
+
+ if (!url[0].Password.equals(password)) {
+ log.println("parseSmart works wrong");
+ log.println("password field : " + url[0].Password);
+ log.println("expected : " + password);
+ res = false;
+ }
+
+ if (!url[0].Server.equals(server)) {
+ log.println("parseSmart works wrong");
+ log.println("server field : " + url[0].Server);
+ log.println("expected : " + server);
+ res = false;
+ }
+
+ if (url[0].Port != Short.parseShort(port)) {
+ log.println("parseSmart works wrong");
+ log.println("port field : " + url[0].Port);
+ log.println("expected : " + port);
+ res = false;
+ }
+
+ if ((!url[0].Path.equals(path)) && (!url[0].Path.equals(path + "/"))) {
+ log.println("parseSmart works wrong");
+ log.println("path field : " + url[0].Path);
+ log.println("expected : " + path);
+ res = false;
+ }
+
+ if (!url[0].Name.equals(name)) {
+ log.println("parseSmart works wrong");
+ log.println("name field : " + url[0].Name);
+ log.println("expected : " + name);
+ res = false;
+ }
+
+ tRes.tested("parseSmart()", res);
+ }
+
+ /**
+ * Gets the presentation of a URL. <p>
+ * Has <b> OK </b> status if the method returns the same
+ * URL as was passed in parameter.
+ */
+ public void _getPresentation() {
+ URL url = new URL();
+
+ url.Complete = expectedCompleteHTTP;
+
+ log.println("getPresentation('" + expectedCompleteHTTP + "', true): ");
+ String presentation = oObj.getPresentation(url, true);
+ boolean res = presentation.equals(expectedCompleteHTTP);
+ log.println("Resulted presentation: " + presentation);
+ log.println("Expected presentation: " + expectedCompleteHTTP);
+ log.println("Result: " + res);
+
+ url.Complete = expectedCompleteFTP;
+ log.println("getPresentation('" + expectedCompleteFTP + "', false): ");
+ // the password must be masquerade with <****>
+ StringBuilder sb = new StringBuilder();
+ for (int n = 0 ; n < password.length(); n++){
+ sb.append("*");
+ }
+ String asterisk = sb.toString();
+ asterisk = "<" + asterisk.substring(1,asterisk.length());
+ asterisk = asterisk.substring(0,asterisk.length()-1) + ">";
+
+ presentation = oObj.getPresentation(url, false);
+ String expectedPresentation = "ftp://" + user + ":" + asterisk + "@" +
+ server + ":" + port + path + "/" + name;
+ res &= presentation.equals(expectedPresentation);
+ log.println("Resulted presentation: " + presentation);
+ log.println("Expected presentation: " + expectedPresentation);
+ log.println("Result: " + res);
+
+ log.println("getPresentation('" + expectedCompleteFTP + "', true): ");
+ presentation = oObj.getPresentation(url, true);
+ expectedPresentation = "ftp://" + user + ":" + password + "@" +
+ server + ":" + port + path + "/" + name;
+ res &= presentation.equals(expectedPresentation);
+ log.println("Resulted presentation: " + presentation);
+ log.println("Expected presentation: " + expectedPresentation);
+ log.println("Result: " + res);
+
+ String incorrectURL = "*bla-bla*";
+ url.Complete = incorrectURL;
+ log.println("getPresentation('" + incorrectURL + "', false): ");
+ presentation = oObj.getPresentation(url, false);
+ expectedPresentation = "";
+ res &= presentation.equals(expectedPresentation);
+ log.println("Resulted presentation: " + presentation);
+ log.println("Expected presentation: " + expectedPresentation);
+ log.println("Result: " + res);
+
+ tRes.tested("getPresentation()", res);
+ }
+
+} // finish class _XURLTransformer
+
diff --git a/qadevOOo/tests/java/ifc/view/_XControlAccess.java b/qadevOOo/tests/java/ifc/view/_XControlAccess.java
new file mode 100644
index 000000000..65287304c
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XControlAccess.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.FormTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPageSupplier;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.view.XControlAccess;
+
+/**
+ * Testing <code>com.sun.star.view.XControlAccess</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getControl()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'DOCUMENT'</code> (of type <code>XComponent</code>):
+ * the document, which controller is tested here. Is used
+ * for adding a component (such as CommandButton) and obtaining
+ * its control via tested interface. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XControlAccess
+ */
+public class _XControlAccess extends MultiMethodTest {
+
+ public XControlAccess oObj = null;
+
+ /**
+ * Retrieves a document from relation, then using it adds
+ * a CommandButton to a document and obtains button model.
+ * After that button control is tried to get using the
+ * tested interface. <p>
+ * Has <b> OK </b> status if non <code>null</code> control
+ * is returned. <p>
+ * @throws StatusException If the relation was not found.
+ */
+ public void _getControl()
+ throws com.sun.star.uno.Exception
+ {
+ boolean bResult = true;
+ try {
+ XComponent oDoc = (XComponent)tEnv.getObjRelation("DOCUMENT");
+ if (oDoc == null) {
+ throw new StatusException
+ (Status.failed("NO 'DOCUMENT' ObjRelation!"));
+ }
+ Boolean isSheet = (Boolean) tEnv.getObjRelation("XControlAccess.isSheet");
+ XDrawPage oDP = null;
+ if (isSheet != null) {
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, oDoc);
+ oDP = UnoRuntime.queryInterface(XDrawPage.class, oDPS.getDrawPages().getByIndex(0));
+ } else {
+
+
+ XDrawPageSupplier oDPS = UnoRuntime.queryInterface(XDrawPageSupplier.class, oDoc);
+ oDP = oDPS.getDrawPage();
+ }
+ XShapes shapes = UnoRuntime.queryInterface
+ (XShapes.class, oDP);
+ XShape button = FormTools.createControlShape
+ (oDoc, 100, 100, 10000, 50000, "CommandButton");
+ shapes.add(button);
+
+ XControlModel CM = ((XControlShape)button).getControl();
+ log.println("Getting ControlModel "
+ + ((CM == null) ? "FAILED" : "OK"));
+
+ XControl oControl = oObj.getControl(CM);
+ log.println("Getting Control " + ((CM == null) ? "FAILED" : "OK"));
+
+ bResult &= oControl != null;
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("Exception occurred calling the method: " + e);
+ bResult = false;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception occurred calling the method: " + e);
+ bResult = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occurred calling the method: " + e);
+ bResult = false;
+ }
+ tRes.tested("getControl()", bResult);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/view/_XFormLayerAccess.java b/qadevOOo/tests/java/ifc/view/_XFormLayerAccess.java
new file mode 100644
index 000000000..3d45c5474
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XFormLayerAccess.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import com.sun.star.form.XForm;
+import com.sun.star.form.runtime.XFormController;
+import lib.MultiMethodTest;
+
+import com.sun.star.view.XFormLayerAccess;
+import lib.Status;
+import lib.StatusException;
+
+
+/**
+ * Testing <code>com.sun.star.view.XFormLayerAccess</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getFromController()</code></li>
+ * <li><code> isFormDesignMode()</code></li>
+ * <li><code> setFormDesignMode()</code></li>
+ * </ul> <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XFormLayerAccess
+ */
+public class _XFormLayerAccess extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+
+ public XFormLayerAccess oObj = null;
+
+ private XForm xForm = null;
+
+ /**
+ * checks if the object relation <CODE>XFormLayerAccess.XForm</CODE>
+ * is available
+ */
+ @Override
+ public void before() {
+ xForm = (XForm) tEnv.getObjRelation("XFormLayerAccess.XForm");
+ if (xForm == null) {
+ throw new StatusException(Status.failed("Object raltion 'XFormLayerAccess.XForm' is null"));
+ }
+ }
+
+ /**
+ * Test disables the FormDesignMode and calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * a not empty object of kind of com.sun.star.form.XFormController<P>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setFormDesignMode() </code></li>
+ * </ul>
+ * @see com.sun.star.view.XFormLayerAccess
+ */
+ public void _getFromController(){
+ requiredMethod("setFormDesignMode()") ;
+
+ log.println("try to get current DesignMode...");
+ boolean currentMode = oObj.isFormDesignMode();
+ log.println("DesignMode is " + currentMode);
+
+ log.println("enable DesignMode");
+ oObj.setFormDesignMode(false);
+
+ log.println("test for getFromController() ");
+ XFormController xFormCont = oObj.getFormController(xForm);
+
+ if (xFormCont == null)
+ log.println("ERROR: Could not get FromContoller");
+
+ log.println("set back DesignMode to previous state");
+ oObj.setFormDesignMode(currentMode);
+
+ tRes.tested("getFromController()", xFormCont != null );
+ }
+
+ /**
+ * This test calls the test for <code>setFormDesignMode()</CODE>.
+ * Has <b> OK </b> status if the test for setFormDesignMode() returns
+ * <code>true</code> since the tests use <CODE>isFormDesignMode()</CODE><P>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setFormDesignMode() </code></li>
+ * </ul>
+ */
+ public void _isFormDesignMode(){
+ requiredMethod("setFormDesignMode()") ;
+
+ log.println("test for isFormDesignMode() is ok since test for 'setFormDesingMode()' use it");
+ tRes.tested("isFormDesignMode()", true);
+ }
+
+ /**
+ * This test gets the current FormDesignMode, change it to the opposite and checks if the expected value of
+ * method isFormDesignmode() was given. Then the FormDesignmode was set back to the original value.<P>
+ * Has <B> OK </B> if expected values are returned.
+ *
+ */
+
+ public void _setFormDesignMode(){
+ log.println("test for setFormDesignMode() and isFormDesignMode() ");
+
+ log.println("try to get current DesignMode...");
+ boolean currentMode = oObj.isFormDesignMode();
+ log.println("DesignMode is " + currentMode);
+
+ log.println("try to change to " + !currentMode + "...");
+ oObj.setFormDesignMode(!currentMode);
+ log.println("try to get new DesignMode...");
+ boolean newMode = oObj.isFormDesignMode();
+ log.println("DesignMode is " + newMode);
+
+ boolean bOK = (newMode != currentMode);
+
+ if ( !bOK)
+ log.println("ERROR: both modes are equal");
+
+ log.println("set back DesignMode to " + currentMode);
+ oObj.setFormDesignMode(currentMode);
+
+ log.println("try to get DesignMode...");
+ boolean oldMode = oObj.isFormDesignMode();
+
+ bOK &= (bOK &(currentMode == oldMode));
+
+ if (currentMode != oldMode)
+ log.println("ERROR: could not change back");
+
+ tRes.tested("setFormDesignMode()", bOK );
+ }
+
+} // finish class _XFormLayerAccess
+
diff --git a/qadevOOo/tests/java/ifc/view/_XMultiSelectionSupplier.java b/qadevOOo/tests/java/ifc/view/_XMultiSelectionSupplier.java
new file mode 100644
index 000000000..dc775c6e1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XMultiSelectionSupplier.java
@@ -0,0 +1,415 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.view.XMultiSelectionSupplier;
+import java.util.Comparator;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Testing <code>com.sun.star.view.XSelectionSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addSelection()</code></li>
+ * <li><code> removeSelection()</code></li>
+ * <li><code> clearSelection()</code></li>
+ * <li><code> getSelectionCount()</code></li>
+ * <li><code> createSelectionEnumeration()</code></li>
+ * <li><code> createReverseSelectionEnumeration()</code></li>
+ * </ul>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'Selections'</code> of type <code>Object[]</code> :
+ * the array of the instances which can be selected.</li>
+ * <li> <code>'Comparer'</code> of type <code>Comparator</code> :
+ * the interface for comparing of selected instances</li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XSelectionSupplier
+ */
+public class _XMultiSelectionSupplier extends MultiMethodTest {
+
+ public XMultiSelectionSupplier oObj = null;
+ Object[] selections = null;
+ Comparator<Object> ObjCompare = null;
+
+ @Override
+ protected void before() {
+ selections = (Object[])tEnv.getObjRelation("Selections");
+ if (selections == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'Selections'"));
+ }
+
+ ObjCompare = (Comparator<Object>)tEnv.getObjRelation("Comparer");
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+ /**
+ * Selects an instance from relation 'First'. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _addSelection() {
+
+ boolean bOK = true;
+
+ log.println("clear selections");
+ oObj.clearSelection();
+
+ int count = oObj.getSelectionCount();
+
+ bOK &= (count == 0);
+
+ if ( ! bOK) log.println("ERROR: after clear selection I got a selection count of '" + count + "' => FAILED");
+
+ for(int i = 0; i < selections.length; i++) {
+ try {
+ log.println("select object from object relation 'selections["+i+"]'");
+ oObj.addSelection(selections[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add selection from object relation 'selections[" + i + "]': " + ex.toString());
+ bOK = false;
+ }
+ count = oObj.getSelectionCount();
+ if (count != (i+1)){
+ log.println("ERROR: add a selection but selection count ("+count+ ") " +
+ "is not as expected (" + (i+1) + ") => FAILED");
+ bOK = false;
+ }
+ }
+
+ log.println("try to select object relation 'selections[0]' second time...");
+ try {
+ count = oObj.getSelectionCount();
+ oObj.addSelection(selections[0]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add selection from object relation 'selections[0] a second time': " + ex.toString());
+ }
+ if (count != oObj.getSelectionCount()){
+ log.println("ERROR: the selected count ("+oObj.getSelectionCount() +") is not that before (" + count + ")");
+ bOK = false;
+ }
+
+ log.println("try to select invalid object...");
+ try {
+
+ oObj.addSelection(oObj);
+
+ log.println("ERROR: expected exception 'com.sun.star.lang.IllegalArgumentException' was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected exception 'com.sun.star.lang.IllegalArgumentException' => OK");
+ }
+
+ tRes.tested("addSelection()", bOK);
+ }
+
+ public void _removeSelection() {
+ requiredMethod("addSelection()");
+
+ boolean bOK = true;
+
+ log.println("clear selections");
+ oObj.clearSelection();
+
+ int count = oObj.getSelectionCount();
+
+ bOK &= (count == 0);
+
+ if ( ! bOK) log.println("ERROR: after clear selection I got a selection count of '" + count + "' => FAILED");
+
+ log.println("add some selections...");
+ for(int i = 0; i < selections.length; i++) {
+ try {
+ log.println("select object from object relation 'selections["+i+"]'");
+ oObj.addSelection(selections[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add selection from object relation 'selections[" + i + "]': " + ex.toString());
+ bOK = false;
+ }
+ count = oObj.getSelectionCount();
+ if (count != (i+1)){
+ log.println("ERROR: added a selection but selection count ("+count+ ") " +
+ "is not as expected (" + (i+1) + ") => FAILED");
+ bOK = false;
+ }
+ }
+
+ log.println("try now to remove selections...");
+
+ count = oObj.getSelectionCount();
+ int oldCount = oObj.getSelectionCount();
+ for(int i = 0; i < selections.length; i++) {
+ try {
+ log.println("remove selection for object relation 'selections["+i+"]'");
+ oObj.removeSelection(selections[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not remove selection from object relation 'selections[" + i + "]': " + ex.toString());
+ bOK = false;
+ }
+ count = oObj.getSelectionCount();
+ if (count != (oldCount - i - 1)){
+ log.println("ERROR: removed a selection but selection count ("+count+ ") " +
+ "is not as expected (" + (oldCount -i -1) + ") => FAILED");
+ bOK = false;
+ }
+ }
+
+ log.println("try to remove a removed selection a second time...");
+ count = oObj.getSelectionCount();
+ try {
+ oObj.removeSelection(selections[0]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not remove selection from object relation 'selections[0] a second time': " + ex.toString());
+ }
+ if (count != oObj.getSelectionCount()){
+ log.println("ERROR: the selected count ("+oObj.getSelectionCount() +") is not that before (" + count + ")");
+ bOK = false;
+ }
+
+ log.println("try to remove invalid object...");
+ try {
+
+ oObj.removeSelection(oObj);
+
+ log.println("ERROR: expected exception 'com.sun.star.lang.IllegalArgumentException' was not thrown => FAILED");
+ bOK = false;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("expected exception 'com.sun.star.lang.IllegalArgumentException' => OK");
+ }
+
+ tRes.tested("removeSelection()", bOK);
+ }
+
+
+ /**
+ * First test changes selection of the object : if nothing is
+ * currently selected or first instance ('First' relation) is
+ * selected then selects second instance; if second instance
+ * is currently selected then the first instance is selected. <p>
+ * Then <code>getSelection</code> is called and values set and
+ * get are compared. Comparison has some special cases. For
+ * example if selection is a Cell, then the values contained
+ * in cells are compared. <p>
+ * Has <b>OK</b> status if selection changed properly.
+ */
+ public void _getSelectionCount() {
+ requiredMethod("addSelection()");
+ tRes.tested("getSelectionCount()", true);
+ }
+
+ public void _clearSelection() {
+ requiredMethod("addSelection()");
+ boolean bOK = true;
+
+ log.println("clear selections");
+ oObj.clearSelection();
+
+ int count = oObj.getSelectionCount();
+
+ bOK &= (count == 0);
+
+ if ( ! bOK) log.println("ERROR: after clear selection I got a selection count of '" + count + "' => FAILED");
+
+ log.println("add some selections...");
+ for(int i = 0; i < selections.length; i++) {
+ try {
+ log.println("select object from object relation 'selections["+i+"]'");
+ oObj.addSelection(selections[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add selection from object relation 'selections[" + i + "]': " + ex.toString());
+ bOK = false;
+ }
+ count = oObj.getSelectionCount();
+ if (count != (i+1)){
+ log.println("ERROR: added a selection but selection count ("+count+ ") " +
+ "is not as expected (" + (i+1) + ") => FAILED");
+ bOK = false;
+ }
+ }
+
+ count = oObj.getSelectionCount();
+
+ log.println("clear selections...");
+ oObj.clearSelection();
+
+ count = oObj.getSelectionCount();
+
+ bOK &= (count == 0);
+
+ if ( ! bOK) log.println("ERROR: after clear selection I got a selection count of '" + count + "' => FAILED");
+
+ tRes.tested("clearSelection()", bOK);
+ }
+
+ public void _createSelectionEnumeration() {
+ requiredMethod("addSelection()");
+ boolean bOK = true;
+
+ log.println("clear selections");
+ oObj.clearSelection();
+
+ int count = oObj.getSelectionCount();
+
+ bOK &= (count == 0);
+
+ if ( ! bOK) log.println("ERROR: after clear selection I got a selection count of '" + count + "' => FAILED");
+
+ log.println("add some selections...");
+ for(int i = 0; i < selections.length; i++) {
+ try {
+ log.println("select object from object relation 'selections["+i+"]'");
+ oObj.addSelection(selections[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add selection from object relation 'selections[" + i + "]': " + ex.toString());
+ bOK = false;
+ }
+ count = oObj.getSelectionCount();
+ if (count != (i+1)){
+ log.println("ERROR: added a selection but selection count ("+count+ ") " +
+ "is not as expected (" + (i+1) + ") => FAILED");
+ bOK = false;
+ }
+ }
+
+ log.println("create enumeration...");
+ XEnumeration xEnum = oObj.createSelectionEnumeration();
+
+ boolean compRes = true; //compare result
+ int i = 0;
+
+ while (xEnum.hasMoreElements()){
+ log.println("try to get first element..");
+ Object nextElement = null;
+ try {
+ nextElement = xEnum.nextElement();
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not get nextElement: " + ex.toString());
+ bOK = false;
+ } catch (NoSuchElementException ex) {
+ log.println("ERROR: could not get nextElement: " + ex.toString());
+ bOK = false;
+ }
+ Object shouldElement = selections[i];
+ i++;
+
+ if (ObjCompare != null) {
+ compRes = ObjCompare.compare(shouldElement, nextElement) == 0;
+ } else {
+ compRes = util.ValueComparer.equalValue(shouldElement, nextElement);
+ }
+
+ log.println("nextElement()-object and expected object 'selections["+i+"]' are equal: "+compRes);
+
+ if (!compRes && (selections[i]) instanceof Object[]) {
+ if (((Object[])selections[i])[0] instanceof Integer) {
+ log.println("Getting: "+((Integer) ((Object[])shouldElement)[0]).intValue());
+ log.println("Expected: "+((Integer) ((Object[])selections[i])[0]).intValue());
+ }
+ }
+ bOK &= compRes;
+ }
+
+ tRes.tested("createSelectionEnumeration()", bOK);
+ }
+
+ public void _createReverseSelectionEnumeration() {
+ requiredMethod("addSelection()");
+ boolean bOK = true;
+
+ log.println("clear selections");
+ oObj.clearSelection();
+
+ int count = oObj.getSelectionCount();
+
+ bOK &= (count == 0);
+
+ if ( ! bOK) log.println("ERROR: after clear selection I got a selection count of '" + count + "' => FAILED");
+
+ log.println("add some selections...");
+ for(int i = 0; i < selections.length; i++) {
+ try {
+ log.println("select object from object relation 'selections["+i+"]'");
+ oObj.addSelection(selections[i]);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add selection from object relation 'selections[" + i + "]': " + ex.toString());
+ bOK = false;
+ }
+ count = oObj.getSelectionCount();
+ if (count != (i+1)){
+ log.println("ERROR: added a selection but selection count ("+count+ ") " +
+ "is not as expected (" + (i+1) + ") => FAILED");
+ bOK = false;
+ }
+ }
+
+ log.println("create enumeration...");
+ XEnumeration xEnum = oObj.createSelectionEnumeration();
+
+ boolean compRes = true; //compare result
+ int i = selections.length - 1;
+
+ while (xEnum.hasMoreElements()){
+ log.println("try to get first element..");
+ Object nextElement = null;
+ try {
+ nextElement = xEnum.nextElement();
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not get nextElement: " + ex.toString());
+ bOK = false;
+ } catch (NoSuchElementException ex) {
+ log.println("ERROR: could not get nextElement: " + ex.toString());
+ bOK = false;
+ }
+ Object shouldElement = selections[i];
+ i--;
+
+ if (ObjCompare != null) {
+ compRes = ObjCompare.compare(shouldElement, nextElement) == 0;
+ } else {
+ compRes = util.ValueComparer.equalValue(shouldElement, nextElement);
+ }
+
+ log.println("nextElement()-object and expected object 'selections["+i+"]' are equal: "+compRes);
+
+ if (!compRes && (selections[i]) instanceof Object[]){
+ if (((Object[])selections[i])[0] instanceof Integer) {
+ log.println("Getting: "+((Integer) ((Object[])shouldElement)[0]).intValue());
+ log.println("Expected: "+((Integer) ((Object[])selections[i])[0]).intValue());
+ }
+ }
+ bOK &= compRes;
+ }
+
+ tRes.tested("createReverseSelectionEnumeration()", bOK);
+ }
+
+} // finish class _XMultiSelectionSupplier
+
+
+
diff --git a/qadevOOo/tests/java/ifc/view/_XPrintJobBroadcaster.java b/qadevOOo/tests/java/ifc/view/_XPrintJobBroadcaster.java
new file mode 100644
index 000000000..99d30f994
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XPrintJobBroadcaster.java
@@ -0,0 +1,146 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package ifc.view;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.view.PrintJobEvent;
+import com.sun.star.view.XPrintJobBroadcaster;
+import com.sun.star.view.XPrintJobListener;
+import com.sun.star.view.XPrintable;
+import java.io.File;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+/**
+ * Test the XPrintJobBroadcaster interface
+ */
+public class _XPrintJobBroadcaster extends MultiMethodTest {
+ public XPrintJobBroadcaster oObj = null;
+ MyPrintJobListener listenerImpl = null;
+
+ /**
+ * Get an object implementation of the _XPrintJobListener interface from the
+ * test environment.
+ */
+ @Override
+ public void before() {
+ listenerImpl = (MyPrintJobListener)tEnv.getObjRelation("XPrintJobBroadcaster.XPrintJobListener");
+ if (listenerImpl == null) {
+ throw new StatusException(Status.failed(" No test possible. The XPrintJobListener interface has to be implemented."));
+ }
+ }
+
+ /**
+ * add the listener, see if it's called.
+ */
+ public void _addPrintJobListener() {
+ oObj.addPrintJobListener(listenerImpl);
+ listenerImpl.fireEvent();
+ waitForEventIdle();
+ tRes.tested("addPrintJobListener()", listenerImpl.actionTriggered());
+ }
+
+ /**
+ * remove the listener, see if it's still called.
+ */
+ public void _removePrintJobListener() {
+ requiredMethod("addPrintJobListener");
+ oObj.removePrintJobListener(listenerImpl);
+
+ waitForEventIdle();
+
+ listenerImpl.reset();
+ listenerImpl.fireEvent();
+ tRes.tested("removePrintJobListener()", !listenerImpl.actionTriggered());
+ }
+
+ /**
+ * Implementation for testing the XPrintJobBroadcaster interface:
+ * a listener to add.
+ */
+ public static class MyPrintJobListener implements XPrintJobListener {
+ boolean eventCalled = false;
+ // object to trigger the event
+ XPrintable xPrintable = null;
+ PropertyValue[]printProps = null;
+ String printFileName = null;
+
+ /**
+ * Constructor
+ * @param printable An object that can be cast to an XPrintable.
+ */
+ public MyPrintJobListener(Object printable, String printFileName) {
+ this.printFileName = printFileName;
+ xPrintable = UnoRuntime.queryInterface(XPrintable.class, printable);
+ printProps = new PropertyValue[2];
+ printProps[0] = new PropertyValue();
+ printProps[0].Name = "FileName";
+ printProps[0].Value = printFileName;
+ printProps[0].State = com.sun.star.beans.PropertyState.DEFAULT_VALUE;
+ printProps[1] = new PropertyValue();
+ printProps[1].Name = "Wait";
+ printProps[1].Value = Boolean.TRUE;
+ }
+
+ /**
+ * Has the action been triggered?
+ * @return True if "printJobEvent" has been called.
+ */
+ public boolean actionTriggered() {
+ return eventCalled;
+ }
+
+ /**
+ * Fire the event that calls the printJobEvent
+ */
+ public void fireEvent() {
+ try {
+ xPrintable.print(printProps);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ public void reset() {
+ File f = new File(printFileName);
+ if (f.exists()) {
+ boolean bDeleteOk = f.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+ eventCalled = false;
+ }
+
+ /**
+ * The print job event: has to be called when the action is triggered.
+ */
+ public void printJobEvent(PrintJobEvent printJobEvent) {
+ eventCalled = true;
+ }
+
+ /**
+ * Disposing event: ignore.
+ */
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/view/_XPrintSettingsSupplier.java b/qadevOOo/tests/java/ifc/view/_XPrintSettingsSupplier.java
new file mode 100644
index 000000000..cb11b303d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XPrintSettingsSupplier.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.view.XPrintSettingsSupplier;
+
+
+/**
+ * Testing <code>com.sun.star.view.XPrintSettingsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getPrintSettings()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XPrintSettingsSupplier
+ */
+public class _XPrintSettingsSupplier extends MultiMethodTest {
+
+ public XPrintSettingsSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getPrintSettings(){
+
+ XPropertySet oPSS = oObj.getPrintSettings();
+ tRes.tested("getPrintSettings()", oPSS != null);
+
+ } // finish _getPrintSettings
+
+} // finish class _XPrintSettingsSupplier
+
diff --git a/qadevOOo/tests/java/ifc/view/_XPrintable.java b/qadevOOo/tests/java/ifc/view/_XPrintable.java
new file mode 100644
index 000000000..06515f66d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XPrintable.java
@@ -0,0 +1,179 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.utils;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.view.PaperOrientation;
+import com.sun.star.view.XPrintable;
+
+/**
+ * Testing <code>com.sun.star.view.XPrintable</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getPrinter()</code></li>
+ * <li><code> setPrinter()</code></li>
+ * <li><code> print()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XPrintable
+ */
+public class _XPrintable extends MultiMethodTest {
+
+ public XPrintable oObj = null;
+ public PropertyValue[] the_printer = null;
+
+ /**
+ * Test calls the method and stores returned value. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getPrinter(){
+
+ the_printer = oObj.getPrinter();
+ tRes.tested("getPrinter()",the_printer != null);
+ } // finish _getPrinter
+
+ /**
+ * Changes <code>PaperOrientation</code> property in the old
+ * printer configuration and sets changed value as a new printer.<p>
+ *
+ * Has <b> OK </b> status if the <code>getPrinter</code> method
+ * returns printer with changed property. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> getPrinter() </code> : to change one property
+ * in existing printer configuration. </li>
+ * </ul>
+ */
+ public void _setPrinter(){
+ requiredMethod("getPrinter()");
+ int propIdx = 0 ;
+ while (!"PaperOrientation".equals(the_printer[propIdx].Name)) {
+ propIdx++ ;
+ }
+ PaperOrientation newVal = null ;
+ if (the_printer[propIdx].Value == PaperOrientation.PORTRAIT)
+ newVal = PaperOrientation.LANDSCAPE ;
+ else
+ newVal = PaperOrientation.PORTRAIT ;
+
+ the_printer[propIdx].Value = newVal ;
+
+ try {
+ oObj.setPrinter(the_printer);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("couldn't set printer");
+ ex.printStackTrace(log);
+ tRes.tested("setPrinter()",false);
+ }
+
+ the_printer = oObj.getPrinter() ;
+
+ propIdx = 0 ;
+ while (!"PaperOrientation".equals(the_printer[propIdx].Name)) {
+ propIdx++ ;
+ }
+
+ boolean the_same = the_printer[propIdx].Value == newVal;
+ tRes.tested("setPrinter()", the_same);
+
+ } // finish _setPrinter
+
+ /**
+ * Printing performed into file in SOffice temp directory.
+ * First this file is deleted if it already exist (using
+ * <code>com.sun.star.ucb.SimpleFileAccess</code> service.
+ * After that the method with appropriate parameter is
+ * called.<p>
+ *
+ * Has <b> OK </b> status if the file to which printing is made
+ * exists. <p>
+ *
+ * @throws StatusException if service
+ * <code>com.sun.star.ucb.SimpleFileAccess</code> can't be
+ * created.
+ */
+ public void _print() throws Exception {
+ boolean result = true ;
+
+ final String file = "XPrintable.prt" ;
+ final String fileName = utils.getOfficeTempDirSys(tParam.getMSF())+file ;
+ final String fileURL = utils.getOfficeTemp(tParam.getMSF()) + file ;
+
+ Object oFAcc =
+ tParam.getMSF().createInstance
+ ("com.sun.star.ucb.SimpleFileAccess") ;
+ XSimpleFileAccess fAcc = UnoRuntime.queryInterface
+ (XSimpleFileAccess.class, oFAcc) ;
+ if (fAcc == null) throw new StatusException
+ (Status.failed("Can't create SimpleFileAccess service")) ;
+ if (fAcc.exists(fileURL)) {
+ log.println("Old file exists and will be deleted");
+ fAcc.kill(fileURL);
+ }
+
+ try {
+ PropertyValue[] PrintOptions = new PropertyValue[2];
+ PropertyValue firstProp = new PropertyValue();
+ firstProp.Name = "FileName";
+ log.println("Printing to :"+fileName);
+ firstProp.Value = fileName;
+ firstProp.State = com.sun.star.beans.PropertyState.DEFAULT_VALUE;
+ PrintOptions[0] = firstProp;
+ PrintOptions[1] = new PropertyValue();
+ PrintOptions[1].Name = "Wait";
+ PrintOptions[1].Value = Boolean.TRUE;
+ oObj.print(PrintOptions);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("couldn't print");
+ ex.printStackTrace(log);
+ result = false ;
+ }
+
+ try {
+ boolean fileExists = fAcc.exists(fileURL);
+
+ log.println("File "+fileName+" exists = "+fileExists);
+
+ if (result) {
+ result &= fileExists ;
+ }
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error while checking file '" +
+ fileURL + "': ");
+ e.printStackTrace(log);
+ result = false ;
+ }
+
+ tRes.tested("print()", result) ;
+
+ } // finish _print
+
+} // finish class _XPrintable
+
+
diff --git a/qadevOOo/tests/java/ifc/view/_XScreenCursor.java b/qadevOOo/tests/java/ifc/view/_XScreenCursor.java
new file mode 100644
index 000000000..aad7257e3
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XScreenCursor.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.view.XScreenCursor;
+
+
+/**
+ * Testing <code>com.sun.star.view.XScreenCursor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> screenDown()</code></li>
+ * <li><code> screenUp()</code></li>
+ * </ul> <p>
+ *
+ * Uses test parameter <b><code>soapi.test.hidewindows</code></b>.
+ * Methods of this interface works with view representation,
+ * thereby their calls have no effect when document is opened
+ * in hidden mode. <p>
+ *
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XScreenCursor
+ */
+public class _XScreenCursor extends MultiMethodTest {
+
+ // oObj filled by MultiMethodTest
+
+ public XScreenCursor oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value or if document is
+ * opened in hidden mode.
+ */
+ public void _screenDown(){
+ log.println("test for screenDown() ");
+ tRes.tested("screenDown()", oObj.screenDown() );
+ }
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns
+ * <code>true</code> value or if document is
+ * opened in hidden mode.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> screenDown() </code> : by default view is on the
+ * top of page, thereby it's needed first to move down. </li>
+ * </ul>
+ */
+ public void _screenUp(){
+ requiredMethod("screenDown()") ;
+
+ log.println("test for screenUp() ");
+ tRes.tested("screenUp()", oObj.screenUp() );
+ }
+
+} // finish class _XScreenCursor
+
diff --git a/qadevOOo/tests/java/ifc/view/_XSelectionSupplier.java b/qadevOOo/tests/java/ifc/view/_XSelectionSupplier.java
new file mode 100644
index 000000000..0fa919d94
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XSelectionSupplier.java
@@ -0,0 +1,199 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.view.XSelectionChangeListener;
+import com.sun.star.view.XSelectionSupplier;
+import java.util.Comparator;
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+
+/**
+ * Testing <code>com.sun.star.view.XSelectionSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> select()</code></li>
+ * <li><code> getSelection()</code></li>
+ * <li><code> addSelectionChangeListener()</code></li>
+ * <li><code> removeSelectionChangeListener()</code></li>
+ * </ul>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'Selections'</code> of type <code>Object[]</code> :
+ * the array of the instances which can be selected.</li>
+ * <li> <code>'Comparer'</code> of type <code>Comparator</code> :
+ * the interface for comparing of selected instances</li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.view.XSelectionSupplier
+ */
+public class _XSelectionSupplier extends MultiMethodTest {
+
+ public XSelectionSupplier oObj = null;
+ public boolean selectionChanged = false;
+ Object[] selections = null;
+ Comparator<Object> ObjCompare = null;
+
+ @Override
+ protected void before() {
+ selections = (Object[])tEnv.getObjRelation("Selections");
+ if (selections == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get relation 'Selections'"));
+ }
+
+ ObjCompare = (Comparator<Object>)tEnv.getObjRelation("Comparer");
+ }
+
+ @Override
+ protected void after() {
+ disposeEnvironment();
+ }
+
+ /**
+ * Listener implementation which just set flag when listener
+ * method is called.
+ */
+ public class MyChangeListener implements XSelectionChangeListener {
+ public void disposing( EventObject oEvent ) {}
+ public void selectionChanged(EventObject ev) {
+ log.println("listener called");
+ selectionChanged = true;
+ }
+
+ }
+
+ XSelectionChangeListener listener = new MyChangeListener();
+
+ /**
+ * Test adds listener to the object, then selects first and
+ * then second instances to be sure that selection was changed.<p>
+ * Has <b>OK</b> status if selection listener was called.
+ */
+ public void _addSelectionChangeListener(){
+ boolean res = true;
+ try {
+ selectionChanged = false;
+ oObj.addSelectionChangeListener(listener);
+ oObj.select(selections[0]);
+ oObj.select(selections[1]);
+ res = selectionChanged;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred during addSelectionChangeListener()");
+ ex.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("addSelectionChangeListener()", res);
+ }
+
+ /**
+ * Selects an instance from relation 'First'. <p>
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _select() {
+ boolean res = true;
+ boolean locRes = true;
+ boolean compRes = true;
+ Object oldSelection = null;
+ try {
+ for(int i = 0; i < selections.length; i++) {
+ oldSelection = oObj.getSelection();
+ locRes = oObj.select(selections[i]);
+ log.println("select #" + i + ": " + locRes);
+ Object curSelection = oObj.getSelection();
+ if (locRes) {
+
+ if (ObjCompare != null) {
+ compRes = ObjCompare.compare(selections[i], curSelection) == 0;
+ } else {
+ compRes = util.ValueComparer.equalValue(selections[i], curSelection);
+ }
+ log.println("selected object and current selection are equal: "+compRes);
+ if (!compRes && (selections[i]) instanceof Object[]){
+ if (((Object[])selections[i])[0] instanceof Integer) {
+ log.println("Getting: "+((Integer) ((Object[])curSelection)[0]).intValue());
+ log.println("Expected: "+((Integer) ((Object[])selections[i])[0]).intValue());
+ }
+ }
+ res &= compRes;
+ } else {
+ compRes = util.ValueComparer.equalValue(curSelection, oldSelection);
+ log.println("previous selection and current selection are equal: "+compRes);
+ res &= compRes;
+ }
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred during select()");
+ ex.printStackTrace(log);
+ res = false;
+ }
+
+ tRes.tested("select()", res);
+ }
+
+ /**
+ * Test removes listener, then selects first and
+ * then second instances to be sure that selection was changed.<p>
+ * Has <b>OK</b> status if selection listener was not called.
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addSelectionChangeListener() </code> : to have
+ * the listener added. </li>
+ * </ul>
+ */
+ public void _removeSelectionChangeListener() {
+ boolean res = false;
+ requiredMethod("addSelectionChangeListener()");
+ try {
+ selectionChanged = false;
+ oObj.removeSelectionChangeListener(listener);
+ oObj.select(selections[0]);
+ oObj.select(selections[1]);
+ res = !selectionChanged;
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("Exception occurred during removeSelectionChangeListener()");
+ ex.printStackTrace(log);
+ res = false;
+ }
+ tRes.tested("removeSelectionChangeListener()", res);
+ }
+
+ /**
+ * First test changes selection of the object : if nothing is
+ * currently selected or first instance ('First' relation) is
+ * selected then selects second instance; if second instance
+ * is currently selected then the first instance is selected. <p>
+ * Then <code>getSelection</code> is called and values set and
+ * get are compared. Comparison has some special cases. For
+ * example if selection is a Cell, then the values contained
+ * in cells are compared. <p>
+ * Has <b>OK</b> status if selection changed properly.
+ */
+ public void _getSelection() {
+ requiredMethod("select()");
+ tRes.tested("getSelection()", true);
+ }
+
+} // finish class _XSelectionSupplier
+
+
+
diff --git a/qadevOOo/tests/java/ifc/view/_XViewSettingsSupplier.java b/qadevOOo/tests/java/ifc/view/_XViewSettingsSupplier.java
new file mode 100644
index 000000000..e84a5b7b1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/view/_XViewSettingsSupplier.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.view;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.view.XViewSettingsSupplier;
+
+
+/**
+ * Testing <code>com.sun.star.view.XViewSettingsSupplier</code>
+ * interface methods :
+ * <ul>
+ * <li><code> getViewSettings()</code></li>
+ * </ul> <p>
+ * Test is multithread compliant. <p>
+ * @see com.sun.star.view.XViewSettingsSupplier
+ */
+public class _XViewSettingsSupplier extends MultiMethodTest {
+
+ public XViewSettingsSupplier oObj = null;
+
+ /**
+ * Test calls the method. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _getViewSettings(){
+
+ XPropertySet oTVS = oObj.getViewSettings();
+ tRes.tested("getViewSettings()", oTVS != null);
+ } // finish _getViewSettings
+
+} // finish class _XViewSettingsSupplier
+
+
diff --git a/qadevOOo/tests/java/ifc/xml/_UserDefinedAttributesSupplier.java b/qadevOOo/tests/java/ifc/xml/_UserDefinedAttributesSupplier.java
new file mode 100644
index 000000000..28ff8a003
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/xml/_UserDefinedAttributesSupplier.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.xml;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.xml.AttributeData;
+
+public class _UserDefinedAttributesSupplier extends lib.MultiPropertyTest {
+
+ public void _UserDefinedAttributes() {
+ XNameContainer uda = null;
+ boolean res = false;
+ try {
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("UserDefinedAttributes"));
+ AttributeData attr = new AttributeData();
+ attr.Namespace = "http://www.sun.com/staroffice/apitest/Chartprop";
+ attr.Type="CDATA";
+ attr.Value="true";
+ uda.insertByName("Chartprop:has-first-alien-attribute",attr);
+ uda.getElementNames();
+ oObj.setPropertyValue("UserDefinedAttributes",uda);
+ uda = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oObj.getPropertyValue("UserDefinedAttributes"));
+ uda.getElementNames();
+ uda.getByName("Chartprop:has-first-alien-attribute");
+ res = true;
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Don't know the Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("WrappedTargetException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.container.NoSuchElementException nee) {
+ log.println("added Element isn't part of the NameContainer");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("IllegalArgumentException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("PropertyVetoException while getting Property 'UserDefinedAttributes'");
+ } catch (com.sun.star.container.ElementExistException eee) {
+ log.println("ElementExistException while getting Property 'UserDefinedAttributes'");
+ }
+ tRes.tested("UserDefinedAttributes",res);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/xml/sax/_XDocumentHandler.java b/qadevOOo/tests/java/ifc/xml/sax/_XDocumentHandler.java
new file mode 100644
index 000000000..27daceaa8
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/xml/sax/_XDocumentHandler.java
@@ -0,0 +1,392 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package ifc.xml.sax;
+
+import java.io.PrintWriter;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+import util.XMLTools;
+
+import com.sun.star.xml.sax.SAXException;
+import com.sun.star.xml.sax.XDocumentHandler;
+import com.sun.star.xml.sax.XLocator;
+
+/**
+* Testing <code>com.sun.star.xml.sax.XDocumentHandler</code>
+* interface methods :
+* <ul>
+* <li><code> startDocument()</code></li>
+* <li><code> endDocument()</code></li>
+* <li><code> startElement()</code></li>
+* <li><code> endElement()</code></li>
+* <li><code> characters()</code></li>
+* <li><code> ignorableWhitespace()</code></li>
+* <li><code> processingInstruction()</code></li>
+* <li><code> setDocumentLocator()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XDocumentHandler.XMLData'</code> (of type <code>String[][]
+* </code>):the XML data which will be passed to the handler. Each
+* array of strings corresponds to some handler event. The first
+* string of event array is the type of the event they can have
+* the following values :
+* <ul>
+* <li>'start' : startElement() event. The string with index 1
+* is the name of element, the next array elements are attributes
+* of XML element in order Name, Type, Value, Name, Type, Value, etc.
+* </li>
+* <li>'end' : endElement() event. The string with index 1
+* is the name of element. </li>
+* <li>'chars' : characters() event. The string with index 1
+* is characters. </li>
+* <li>'spaces' : ignorableWhitespace() event. The string with index 1
+* is spaces. </li>
+* <li>'instruct' : processingInstruction() event. The string with
+* index 1 is the target of instruction. The string with index
+* 2 is the data of instruction. </li>
+* </ul> </li>
+* <li> <code>'XDocumentHandler.ImportChecker'</code>
+* (of type <code>ifc.xml.sax._XDocumentHandler.ImportChecker</code>) :
+* this relation must be implementation of the interface above
+* ant it must check if the XML data was successfully imported to
+* the document. </li>
+* </li>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.xml.sax.XDocumentHandler
+*/
+public class _XDocumentHandler extends MultiMethodTest {
+
+ private static class DocumentLocator implements XLocator {
+ private final PrintWriter log;
+ public DocumentLocator(PrintWriter log) {
+ this.log = log ;
+ }
+ public int getColumnNumber() {
+ log.println("getColumnNumber() method called.") ;
+ return 10 ;
+ }
+ public int getLineNumber() {
+ log.println("getLineNumber() method called.") ;
+ return 9 ;
+ }
+ public String getPublicId() {
+ log.println("getPublicId() method called.") ;
+ return "file://d:/file.txt";
+ }
+ public String getSystemId() {
+ log.println("getSystemId() method called.") ;
+ return "system";
+ }
+ }
+
+ /**
+ * This interface implementation must be passed by component test
+ * for checking the whole import process.
+ */
+ public interface ImportChecker {
+ /**
+ * Returns <code>true</code> if the XML data was successfully
+ * imported, <code>false</code> in other case.
+ */
+ boolean checkImport() ;
+ }
+
+ /**
+ * This interface implementation must be passed by component test
+ * for setting a target document to the import process
+ */
+ public interface TargetDocumentSetter {
+
+ void setTargetDocument();
+ }
+
+ public XDocumentHandler oObj = null;
+ private String[][] xmlData = null ;
+ private DocumentLocator locator = null ;
+ private ImportChecker checker = null ;
+ private boolean locatorResult = true ;
+ private SAXException locatorException = null ;
+ private boolean ToBeSkipped = false;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ locator = new DocumentLocator(log) ;
+ if (tEnv.getTestCase().getObjectName().equals("XMLSettingsImporter")) {
+ log.println("Settings can't be imported in the current Implementation");
+ ToBeSkipped = true;
+ }
+ xmlData = (String[][])tEnv.getObjRelation("XDocumentHandler.XMLData") ;
+ checker = (ImportChecker)
+ tEnv.getObjRelation("XDocumentHandler.ImportChecker") ;
+
+ TargetDocumentSetter targetDocSet = (TargetDocumentSetter)
+ tEnv.getObjRelation("XDocumentHandler.TargetDocumentSetter");
+
+ if (xmlData == null || checker == null) throw new StatusException
+ (Status.failed("Relation wasn't found")) ;
+
+ if (targetDocSet == null){
+ log.println("object relation 'XDocumentHandler.TargetDocumentSetter' not used.");
+ log.println("be sure that the test have a target to write through");
+ }
+ }
+
+ /**
+ * Sets document locator to dummy locator implementation and
+ * calls the <code>startDocument</code> method. <p>
+ *
+ * Has <b> OK </b> status if no runtime exceptions occurred.
+ */
+ public void _startDocument() {
+ if (ToBeSkipped) {
+ tRes.tested("startDocument()", Status.skipped(true));
+ return;
+ }
+
+ try {
+ oObj.setDocumentLocator(locator) ;
+ } catch (SAXException e) {
+ locatorException = e ;
+ locatorResult = false ;
+ }
+
+ boolean result = true ;
+ try {
+ oObj.startDocument() ;
+ } catch (SAXException e) {
+ e.printStackTrace(log) ;
+ log.println("Wrapped exception :" + e.WrappedException) ;
+ result = false ;
+ }
+
+ tRes.tested("startDocument()", result) ;
+ }
+
+ /**
+ * This test is finally executed. It finishes XML data
+ * transferring with <code>endDocument</code> method call. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during
+ * the whole transferring and if the appropriate changes
+ * occurred in the document where XML data was transferred to.
+ * This check is performed by checker relation.
+ */
+ public void _endDocument() {
+ if (ToBeSkipped) {
+ tRes.tested("endDocument()", Status.skipped(true));
+ return;
+ }
+ requiredMethod("startElement()") ;
+ executeMethod("endElement()") ;
+ executeMethod("characters()") ;
+ executeMethod("ignorableWhitespace()") ;
+ executeMethod("processingInstruction()") ;
+
+ boolean result = true ;
+ try {
+ oObj.endDocument() ;
+ } catch (SAXException e) {
+ e.printStackTrace(log) ;
+ log.println("Wrapped exception :" + e.WrappedException) ;
+ result = false ;
+ }
+
+ log.println("Check if import was successful ...") ;
+ result &= checker.checkImport() ;
+
+ tRes.tested("endDocument()", result) ;
+ }
+
+ /**
+ * Transfers XML data obtained from relation
+ * <code>'XDocumentHandler.XMLData'</code>. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during XML data
+ * transferring in <code>startDocument</code> and
+ * <code>startElement</code> method tests. <p>
+ *
+ * Exact checking of XML transfer is made in <code>endDocument</code>
+ */
+ public void _startElement() {
+ if (ToBeSkipped) {
+ tRes.tested("startElement()", Status.skipped(true));
+ return;
+ }
+ boolean result = true ;
+
+ try {
+ log.println("StartElement Processing XML data ...") ;
+ for(int i = 0; i < xmlData.length; i++) {
+ String[] elem = xmlData[i] ;
+ if ("start".equals(elem[0])) {
+ StringBuilder xmlTag = new StringBuilder();
+ xmlTag.append("<");
+ String tagName = elem[1] ;
+ xmlTag.append(tagName);
+ XMLTools.AttributeList attr = new XMLTools.AttributeList() ;
+ for (int j = 2; j < elem.length; j+=3) {
+ attr.add(elem[j], elem[j+1], elem[j+2]);
+ xmlTag.append(" ").append(elem[j]).append("(").append(elem[j+1]).append(
+ ")=\"").append(elem[j+2]).append("\"");
+ }
+ xmlTag.append(">");
+
+ log.println(xmlTag.toString()) ;
+ oObj.startElement(tagName, attr) ;
+ } else
+ if ("end".equals(elem[0])) {
+ log.println("</" + elem[1] + ">") ;
+ oObj.endElement(elem[1]) ;
+ } else
+ if ("chars".equals(elem[0])) {
+ log.println("'" + elem[1] + "'") ;
+ oObj.characters(elem[1]) ;
+ } else
+ if ("spaces".equals(elem[0])) {
+ log.println("(spaces)'" + elem[1] + "'") ;
+ oObj.ignorableWhitespace(elem[1]) ;
+ } else
+ if ("instruct".equals(elem[0])) {
+ log.println("<?" + elem[1] + " " + elem[2] + "?>") ;
+ oObj.processingInstruction(elem[1], elem[2]) ;
+ } else {
+ log.println("!!! Bad object relation !!!") ;
+ throw new StatusException(Status.failed("Bad relation")) ;
+ }
+ }
+ } catch (SAXException e) {
+ e.printStackTrace(log) ;
+ log.println("Wrapped exception :" + e.WrappedException) ;
+ result = false ;
+ }
+
+ tRes.tested("startElement()", result) ;
+ }
+
+ /**
+ * Does nothing. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during XML data
+ * transferring in <code>startDocument</code> and
+ * <code>startElement</code> method tests.
+ */
+ public void _endElement() {
+ if (ToBeSkipped) {
+ tRes.tested("endElement()", Status.skipped(true));
+ return;
+ }
+ requiredMethod("startElement()") ;
+
+ boolean result = true ;
+
+ tRes.tested("endElement()", result) ;
+ }
+
+ /**
+ * Does nothing. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during XML data
+ * transferring in <code>startDocument</code> and
+ * <code>startElement</code> method tests.
+ */
+ public void _characters() {
+ if (ToBeSkipped) {
+ tRes.tested("characters()", Status.skipped(true));
+ return;
+ }
+ requiredMethod("startElement()") ;
+
+ boolean result = true ;
+
+ tRes.tested("characters()", result) ;
+ }
+
+ /**
+ * Does nothing. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during XML data
+ * transferring in <code>startDocument</code> and
+ * <code>startElement</code> method tests.
+ */
+ public void _ignorableWhitespace() {
+ if (ToBeSkipped) {
+ tRes.tested("ignorableWhitespace()", Status.skipped(true));
+ return;
+ }
+ requiredMethod("startElement()") ;
+
+ boolean result = true ;
+
+ tRes.tested("ignorableWhitespace()", result) ;
+ }
+
+ /**
+ * Does nothing. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during XML data
+ * transferring in <code>startDocument</code> and
+ * <code>startElement</code> method tests.
+ */
+ public void _processingInstruction() {
+ if (ToBeSkipped) {
+ tRes.tested("processingInstruction()", Status.skipped(true));
+ return;
+ }
+ requiredMethod("startElement()") ;
+
+ boolean result = true ;
+
+ tRes.tested("processingInstruction()", result) ;
+ }
+
+ /**
+ * Does nothing. <p>
+ *
+ * Has <b>OK</b> status if no exceptions occurred during XML data
+ * transferring in <code>startDocument</code> and
+ * <code>startElement</code> method tests.
+ */
+ public void _setDocumentLocator() {
+ if (ToBeSkipped) {
+ tRes.tested("setDocumentLocator()", Status.skipped(true));
+ return;
+ }
+ executeMethod("endDocument()") ;
+
+ boolean result = locatorResult ;
+ if (locatorException != null) {
+ log.println("Exception occurred during setDocumentLocator() call:") ;
+ locatorException.printStackTrace(log) ;
+ log.println("Wrapped exception :"
+ + locatorException.WrappedException) ;
+ result = false ;
+ }
+
+ tRes.tested("setDocumentLocator()", result) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_acceptor/Acceptor.java b/qadevOOo/tests/java/mod/_acceptor/Acceptor.java
new file mode 100644
index 000000000..0985a6aff
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_acceptor/Acceptor.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._acceptor;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Here <code>com.sun.star.connection.Acceptor</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.connection.Acceptor
+* @see com.sun.star.connection.XAcceptor
+* @see com.sun.star.connection.XConnector
+* @see ifc.connection._XAcceptor
+*/
+public class Acceptor extends TestCase {
+
+
+ /**
+ * Acceptor chooses the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 10000;
+ private int curPort ;
+ private String sOfficeHost = null ;
+
+ /**
+ * Retrieves host name where StarOffice is started from test
+ * parameter <code>'CONNECTION_STRING'</code>.
+ */
+ @Override
+ public void initialize( TestParameters tParam, PrintWriter log ) {
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+ sOfficeHost = cncstr.substring(idx, cncstr.indexOf(",", idx)) ;
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. <p>
+ * Creates <code>Acceptor</code> service and passed as relation
+ * connection string where port for accepting is unique among
+ * different object test threads. <p>
+ * The following object relations are created :
+ * <ul>
+ * <li> <code>'XAcceptor.connectStr'</code> : String variable for
+ * <code>XAcceptor</code> interface test. Has the following format :
+ * <code>'socket,host=<SOHost>,port=<UniquePort>' where <SOHost> is
+ * the host where StarOffice is started. </li>
+ * <li> <code>'Acceptor.Port'</code> : Integer value which specifies
+ * port on which Acceptor must listen, and which is required
+ * when disposing environment, to free this port number. </li>
+ * <ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ XInterface acceptor = null;
+
+ acceptor = (XInterface)
+ Param.getMSF().createInstance
+ ("com.sun.star.connection.Acceptor");
+
+ // select the port
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+ oObj = acceptor;
+
+ TestEnvironment tEnv = new TestEnvironment(oObj) ;
+
+ // adding connection string as relation
+ tEnv.addObjRelation("XAcceptor.connectStr",
+ "socket,host=" + sOfficeHost + ",port=" + curPort) ;
+
+ // adding port number for freeing it.
+ tEnv.addObjRelation("Acceptor.Port", Integer.valueOf(curPort)) ;
+
+ return tEnv ;
+ }
+
+ /**
+ * Just clears flag which indicates that port is free now.
+ */
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam) {
+
+ curPort = ((Integer)tEnv.getObjRelation("Acceptor.Port")).intValue();
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_acceptor/package.html b/qadevOOo/tests/java/mod/_acceptor/package.html
new file mode 100644
index 000000000..2f8205d1c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_acceptor/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'acceptor'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_acceptor/uno/Acceptor.java b/qadevOOo/tests/java/mod/_acceptor/uno/Acceptor.java
new file mode 100644
index 000000000..6cff44ff5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_acceptor/uno/Acceptor.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._acceptor.uno;
+
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+* Here <code>com.sun.star.connection.Acceptor</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.connection.Acceptor
+* @see com.sun.star.connection.XAcceptor
+* @see com.sun.star.connection.XConnector
+* @see ifc.connection._XAcceptor
+*/
+public class Acceptor extends TestCase {
+ /**
+ * Acceptor chooses the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 10000;
+ private int curPort ;
+ private String sOfficeHost = null ;
+
+ /**
+ * Retrieves host name where StarOffice is started from test
+ * parameter <code>'CONNECTION_STRING'</code>.
+ */
+ @Override
+ public void initialize( TestParameters tParam, PrintWriter log ) {
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+ sOfficeHost = cncstr.substring(idx, cncstr.indexOf(",", idx)) ;
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. <p>
+ * Creates <code>Acceptor</code> service and passed as relation
+ * connection string where port for accepting is unique among
+ * different object test threads. <p>
+ * The following object relations are created :
+ * <ul>
+ * <li> <code>'XAcceptor.connectStr'</code> : String variable for
+ * <code>XAcceptor</code> interface test. Has the following format :
+ * <code>'socket,host=<SOHost>,port=<UniquePort>' where <SOHost> is
+ * the host where StarOffice is started. </li>
+ * <li> <code>'Acceptor.Port'</code> : Integer value which specifies
+ * port on which Acceptor must listen, and which is required
+ * when disposing environment, to free this port number. </li>
+ * <ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface acceptor = (XInterface)
+ Param.getMSF().createInstance
+ ("com.sun.star.connection.Acceptor");
+
+ // select the port
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+
+ TestEnvironment tEnv = new TestEnvironment(acceptor) ;
+
+ // adding connection string as relation
+ tEnv.addObjRelation("XAcceptor.connectStr",
+ "socket,host=" + sOfficeHost + ",port=" + curPort) ;
+
+ // adding port number for freeing it.
+ tEnv.addObjRelation("Acceptor.Port", Integer.valueOf(curPort)) ;
+
+ return tEnv ;
+ }
+
+ /**
+ * Just clears flag which indicates that port is free now.
+ */
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam) {
+
+ curPort = ((Integer)tEnv.getObjRelation("Acceptor.Port")).intValue();
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_ado/ODriver.java b/qadevOOo/tests/java/mod/_ado/ODriver.java
new file mode 100644
index 000000000..de3de8cbb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ado/ODriver.java
@@ -0,0 +1,89 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ado;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+
+/**
+* Here <code>com.sun.star.sdbc.Driver</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.sdbc.Driver
+* @see com.sun.star.sdbc.XDriver
+* @see com.sun.star.sdbcx.XCreateCatalog
+* @see com.sun.star.sdbcx.XDropCatalog
+* @see ifc.sdbc._XDriver
+* @see ifc.sdbcx._XCreateCatalog
+* @see ifc.sdbcx._XDropCatalog
+*/
+public class ODriver extends TestCase {
+ /**
+ * Creates an instance of the service
+ * <code>com.sun.star.sdbc.Driver</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDriver.URL'</code> for {@link ifc.sdbc._XDriver}:
+ * is the URL of the database to which to connect.
+ * The URL is obtained from the parameter <code>ado.url</code></li>
+ * <li> <code>'XDriver.UNSUITABLE_URL'</code> for {@link ifc.sdbc._XDriver}:
+ * the wrong kind of URL to connect using given driver.
+ * The URL is obtained from the parameter <code>jdbc.url</code></li>
+ * <li> <code>'XDriver.INFO'</code> for {@link ifc.sdbc._XDriver}:
+ * a list of arbitrary string tag/value pairs as connection arguments.
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().
+ createInstance("com.sun.star.comp.sdbc.ado.ODriver");
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding relation for sdbc.XDriver
+ String adoURL = (String) Param.get("ado.url");
+ if (adoURL == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'ado.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.URL", "sdbc:ado:" + adoURL);
+
+ PropertyValue[] info = new PropertyValue[0];
+ tEnv.addObjRelation("XDriver.INFO", info);
+
+ String jdbcUrl = (String) Param.get("jdbc.url");
+ if (jdbcUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.UNSUITABLE_URL", "jdbc:" + jdbcUrl);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java b/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java
new file mode 100644
index 000000000..8a2bd9917
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+package mod._basctl;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatchHelper;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.WriterTools;
+import util.utils;
+
+public class AccessibleShape extends TestCase {
+
+ XTextDocument xTextDoc = null;
+ XInterface oObj = null;
+
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("Cleaning up");
+ DesktopTools.closeDoc(xTextDoc);
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object o = xMSF.createInstance("com.sun.star.frame.Desktop");
+ XDesktop xDesk = UnoRuntime.queryInterface(XDesktop.class, o);
+ DesktopTools.closeDoc(xDesk.getCurrentFrame());
+ } catch (Exception e) {
+ log.println("Couldn't close IDE");
+ }
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(final TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ log.println( "creating a test environment" );
+ String aURL=utils.getFullTestURL("basDialog.odt");
+ xTextDoc = WriterTools.loadTextDoc(xMSF,aURL);
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+ XFrame xFrame = xModel.getCurrentController().getFrame();
+ XDispatchProvider xDPP = UnoRuntime.queryInterface(XDispatchProvider.class, xFrame);
+
+ log.println( "opening the basic dialog editor" );
+ Object o = xMSF.createInstance("com.sun.star.frame.DispatchHelper");
+ XDispatchHelper xDPH = UnoRuntime.queryInterface(XDispatchHelper.class, o);
+ PropertyValue[] aArgs = new PropertyValue[4];
+ aArgs[0] = new PropertyValue();
+ aArgs[0].Name = "Document";
+ aArgs[0].Value = aURL;
+ aArgs[1] = new PropertyValue();
+ aArgs[1].Name = "LibName";
+ aArgs[1].Value = "basctl";
+ aArgs[2] = new PropertyValue();
+ aArgs[2].Name = "Name";
+ aArgs[2].Value = "Dialog1";
+ aArgs[3] = new PropertyValue();
+ aArgs[3].Name = "Type";
+ aArgs[3].Value = "Dialog";
+ xDPH.executeDispatch(xDPP, ".uno:BasicIDEAppear", "", 0, aArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ oObj = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ final XWindow basicIDE = xFrame.getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(basicIDE);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.SHAPE);
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ tEnv.addObjRelation("Destroy", Boolean.TRUE);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle oldPosSize = basicIDE.getPosSize();
+ Rectangle newPosSize = new Rectangle();
+ newPosSize.Width = oldPosSize.Width/2;
+ newPosSize.Height = oldPosSize.Height/2;
+ newPosSize.X = oldPosSize.X + 20;
+ newPosSize.Y = oldPosSize.Y + 20;
+ basicIDE.setPosSize(newPosSize.X, newPosSize.Y, newPosSize.Width,
+ newPosSize.Height, PosSize.POSSIZE);
+ util.utils.waitForEventIdle(tParam.getMSF());
+ basicIDE.setPosSize(oldPosSize.X, oldPosSize.Y, oldPosSize.Width,
+ oldPosSize.Height, PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+ }
+
+
+
+}
diff --git a/qadevOOo/tests/java/mod/_brdgfctr/BridgeFactory.java b/qadevOOo/tests/java/mod/_brdgfctr/BridgeFactory.java
new file mode 100644
index 000000000..1957f9d6b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_brdgfctr/BridgeFactory.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._brdgfctr;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Tests <code>com.sun.star.bridge.BridgeFactory</code>
+* service. <p>
+* @see com.sun.star.bridge.XBridgeFactory
+* @see com.sun.star.lang.XComponent
+* @see ifc.bridge._XBridgeFactory
+* @see ifc.lang._XComponent
+*/
+public class BridgeFactory extends TestCase {
+
+ /**
+ * Retrieves host name where StarOffice is started from test
+ * parameter <code>'CONNECTION_STRING'</code>.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+ sOfficeHost = cncstr.substring(idx, cncstr.indexOf(",", idx)) ;
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ }
+
+ /**
+ * Acceptor chooses the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 50003 ;
+ private int curPort ;
+ private static String sOfficeHost = null ;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Just creates <code>com.sun.star.bridge.BridgeFactory</code>
+ * service as object to be tested.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.bridge.BridgeFactory") ;
+
+ TestEnvironment tEnv = new TestEnvironment(oObj) ;
+
+ // select the port
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+
+ // adding connection string as relation
+ tEnv.addObjRelation("CNNCTSTR",
+ "socket,host=" + sOfficeHost + ",port=" + curPort) ;
+
+ // adding port number for freeing it.
+ tEnv.addObjRelation("Connector.Port", Integer.valueOf(curPort)) ;
+
+ return tEnv ;
+ }
+
+ /**
+ * Just clears flag which indicates that port is free now.
+ */
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam) {
+ curPort = ((Integer)tEnv.getObjRelation("Connector.Port")).intValue() ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_brdgfctr/package.html b/qadevOOo/tests/java/mod/_brdgfctr/package.html
new file mode 100644
index 000000000..40dbd15bd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_brdgfctr/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'brdgfctr'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_bridgefac/uno/BridgeFactory.java b/qadevOOo/tests/java/mod/_bridgefac/uno/BridgeFactory.java
new file mode 100644
index 000000000..1860e3638
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_bridgefac/uno/BridgeFactory.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._bridgefac.uno;
+
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+* Tests <code>com.sun.star.bridge.BridgeFactory</code>
+* service. <p>
+* @see com.sun.star.bridge.XBridgeFactory
+* @see com.sun.star.lang.XComponent
+* @see ifc.bridge._XBridgeFactory
+* @see ifc.lang._XComponent
+*/
+public class BridgeFactory extends TestCase {
+
+ /**
+ * Retrieves host name where StarOffice is started from test
+ * parameter <code>'CONNECTION_STRING'</code>.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+ sOfficeHost = cncstr.substring(idx, cncstr.indexOf(",", idx)) ;
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ }
+
+ /**
+ * Acceptor chooses the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 50003 ;
+ private int curPort ;
+ private static String sOfficeHost = null ;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Just creates <code>com.sun.star.bridge.BridgeFactory</code>
+ * service as object to be tested.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)
+ Param.getMSF().createInstance
+ ("com.sun.star.bridge.BridgeFactory") ;
+
+ TestEnvironment tEnv = new TestEnvironment(oObj) ;
+
+ // select the port
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+
+ // adding connection string as relation
+ tEnv.addObjRelation("CNNCTSTR",
+ "socket,host=" + sOfficeHost + ",port=" + curPort) ;
+
+ // adding port number for freeing it.
+ tEnv.addObjRelation("Connector.Port", Integer.valueOf(curPort)) ;
+
+ return tEnv ;
+ }
+
+ /**
+ * Just clears flag which indicates that port is free now.
+ */
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam) {
+ curPort = ((Integer)tEnv.getObjRelation("Connector.Port")).intValue() ;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_bridgefac/uno/package.html b/qadevOOo/tests/java/mod/_bridgefac/uno/package.html
new file mode 100644
index 000000000..40dbd15bd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_bridgefac/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'brdgfctr'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_cached/CachedContentResultSetFactory.java b/qadevOOo/tests/java/mod/_cached/CachedContentResultSetFactory.java
new file mode 100644
index 000000000..89d57f1e9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cached/CachedContentResultSetFactory.java
@@ -0,0 +1,148 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cached;
+
+import com.sun.star.beans.Property;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.NumberedSortingInfo;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.OpenMode;
+import com.sun.star.ucb.XCachedContentResultSetStubFactory;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.AnyConverter;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.CachedContentResultSetFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XCachedContentResultSetFactory</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XCachedContentResultSetFactory
+* @see com.sun.star.ucb.CachedContentResultSetFactory
+* @see ifc.ucb._XCachedContentResultSetFactory
+*/
+public class CachedContentResultSetFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.CachedContentResultSetFactory</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CachedContentResultSetStub'</code> for
+ * {@link ifc.ucb._XCachedContentResultSetFactory} : the destination
+ * interface requires as its parameter an instance of
+ * <code>CachedContentResultSetStub</code> service. It is created
+ * using <code>UniversalContentBroker</code> and querying it for
+ * <code>PackageContent</code> which represents JAR file mentioned
+ * above. Then the dynamic list of file contents (entries) is retrieved,
+ * and a static list is created from it. Using
+ * <code>CachedContentResultSetStubFactory</code> service a stub of
+ * Cached result set is created which is relation required.
+ * </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.CachedContentResultSetFactory" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // creating relation for XCachedContentResultSetFactory
+ XResultSet resSetStub = null ;
+ Object oUCB = xMSF.createInstanceWithArguments
+ ("com.sun.star.ucb.UniversalContentBroker",
+ new Object[0]) ;
+
+ XContentIdentifierFactory ciFac = UnoRuntime.queryInterface(XContentIdentifierFactory.class, oUCB) ;
+
+ String url = util.utils.getFullTestURL("SwXTextEmbeddedObject.sxw") ;
+ StringBuilder escUrl = new StringBuilder();
+
+ // In base URL of a JAR file in content URL all directory
+ // separators ('/') must be replaced with escape symbol '%2F'.
+ int idx = url.indexOf("/") ;
+ int lastIdx = -1 ;
+ while (idx >= 0) {
+ escUrl.append(url.substring(lastIdx + 1, idx)).append("%2F");
+ lastIdx = idx ;
+ idx = url.indexOf("/", idx + 1) ;
+ }
+ escUrl.append(url.substring(lastIdx + 1));
+ String cntUrl = "vnd.sun.star.pkg://" + escUrl.toString() + "/" ;
+
+ XContentIdentifier CI = ciFac.createContentIdentifier(cntUrl) ;
+
+ XContentProvider cntProv = UnoRuntime.queryInterface(XContentProvider.class, oUCB) ;
+
+ XContent cnt = cntProv.queryContent(CI) ;
+
+ XCommandProcessor cmdProc = UnoRuntime.queryInterface(XCommandProcessor.class, cnt) ;
+
+ Property prop = new Property() ;
+ prop.Name = "Title" ;
+
+ Command cmd = new Command("open", -1, new OpenCommandArgument2
+ (OpenMode.ALL, 10000, null, new Property[] {prop},
+ new NumberedSortingInfo[0])) ;
+
+ XDynamicResultSet dynResSet = (XDynamicResultSet)
+ AnyConverter.toObject(new Type(XDynamicResultSet.class),
+ cmdProc.execute(cmd, 0, null));
+
+ XResultSet resSet = dynResSet.getStaticResultSet() ;
+
+ Object oStubFactory = xMSF.createInstance
+ ("com.sun.star.ucb.CachedContentResultSetStubFactory") ;
+
+ XCachedContentResultSetStubFactory xStubFactory =
+ UnoRuntime.queryInterface
+ (XCachedContentResultSetStubFactory.class, oStubFactory) ;
+
+ resSetStub = xStubFactory.createCachedContentResultSetStub(resSet) ;
+
+ tEnv.addObjRelation("CachedContentResultSetStub", resSetStub) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_cached/CachedContentResultSetStubFactory.java b/qadevOOo/tests/java/mod/_cached/CachedContentResultSetStubFactory.java
new file mode 100644
index 000000000..9e7a557d1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cached/CachedContentResultSetStubFactory.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cached;
+
+import com.sun.star.beans.Property;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.NumberedSortingInfo;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.OpenMode;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.AnyConverter;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.CachedContentResultSetStubFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XCachedContentResultSetStubFactory</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XCachedContentResultSetStubFactory
+* @see com.sun.star.ucb.CachedContentResultSetStubFactory
+* @see ifc.ucb._XCachedContentResultSetStubFactory
+*/
+public class CachedContentResultSetStubFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.CachedContentResultSetStubFactory</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ContentResultSet'</code> for
+ * {@link ifc.ucb._XCachedContentResultSetStubFactory} : the destination
+ * interface requires as its parameter an instance of
+ * <code>ContentResultSet</code> service. It is created
+ * using <code>UniversalContentBroker</code> and querying it for
+ * <code>PackageContent</code> which represents JAR file mentioned
+ * above. Then the dynamic list of file contents (entries) is retrieved,
+ * and a static list is created from it. It represents
+ * <code>ContentResultSet</code> service instance required.
+ * </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.CachedContentResultSetStubFactory" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // creating relation for XCachedContentResultSetStubFactory
+ XResultSet resSet = null ;
+ Object oUCB = xMSF.createInstanceWithArguments
+ ("com.sun.star.ucb.UniversalContentBroker",
+ new Object[0]) ;
+
+ XContentIdentifierFactory ciFac = UnoRuntime.queryInterface(XContentIdentifierFactory.class, oUCB) ;
+
+ String url = util.utils.getFullTestURL("SwXTextEmbeddedObject.sxw") ;
+ StringBuilder escUrl = new StringBuilder();
+
+ // In base URL of a JAR file in content URL all directory
+ // separators ('/') must be replaced with escape symbol '%2F'.
+ int idx = url.indexOf("/") ;
+ int lastIdx = -1 ;
+ while (idx >= 0) {
+ escUrl.append(url.substring(lastIdx + 1, idx)).append("%2F");
+ lastIdx = idx ;
+ idx = url.indexOf("/", idx + 1) ;
+ }
+ escUrl.append(url.substring(lastIdx + 1));
+ String cntUrl = "vnd.sun.star.pkg://" + escUrl.toString() + "/" ;
+ log.println("Getting Content of '" + cntUrl + "'") ;
+
+ XContentIdentifier CI = ciFac.createContentIdentifier(cntUrl) ;
+
+ XContentProvider cntProv = UnoRuntime.queryInterface(XContentProvider.class, oUCB) ;
+
+ XContent cnt = cntProv.queryContent(CI) ;
+
+ XCommandProcessor cmdProc = UnoRuntime.queryInterface(XCommandProcessor.class, cnt) ;
+
+ Property prop = new Property() ;
+ prop.Name = "Title" ;
+
+ Command cmd = new Command("open", -1, new OpenCommandArgument2
+ (OpenMode.ALL, 10000, null, new Property[] {prop},
+ new NumberedSortingInfo[0])) ;
+
+ XDynamicResultSet dynResSet = (XDynamicResultSet)
+ AnyConverter.toObject(new Type(XDynamicResultSet.class),
+ cmdProc.execute(cmd, 0, null));
+
+ resSet = dynResSet.getStaticResultSet() ;
+
+ tEnv.addObjRelation("ContentResultSet", resSet) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetFactory.java b/qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetFactory.java
new file mode 100644
index 000000000..87d13d6d3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetFactory.java
@@ -0,0 +1,145 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cached;
+
+import com.sun.star.beans.Property;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.NumberedSortingInfo;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.OpenMode;
+import com.sun.star.ucb.XCachedDynamicResultSetStubFactory;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.AnyConverter;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.CachedDynamicResultSetFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XCachedDynamicResultSetFactory</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XCachedDynamicResultSetFactory
+* @see com.sun.star.ucb.CachedDynamicResultSetFactory
+* @see ifc.ucb._XCachedDynamicResultSetFactory
+*/
+public class CachedDynamicResultSetFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.CachedDynamicResultSetFactory</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CachedDynamicResultSetStub'</code> for
+ * {@link ifc.ucb._XCachedDynamicResultSetFactory} : the destination
+ * interface requires as its parameter an instance of
+ * <code>CachedDynamicResultSetStub</code> service. It is created
+ * using <code>UniversalContentBroker</code> and querying it for
+ * <code>PackageContent</code> which represents JAR file mentioned
+ * above. Then the dynamic list of file contents (entries) is retrieved.
+ * Using <code>CachedDynamicResultSetStubFactory</code> service a stub of
+ * Cached result set is created which is relation required.
+ * </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.CachedDynamicResultSetFactory" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // creating relation for XCachedDynamicResultSetFactory
+ XDynamicResultSet resSetStub = null ;
+ Object oUCB = xMSF.createInstanceWithArguments
+ ("com.sun.star.ucb.UniversalContentBroker",
+ new Object[0]) ;
+
+ XContentIdentifierFactory ciFac = UnoRuntime.queryInterface(XContentIdentifierFactory.class, oUCB) ;
+
+ String url = util.utils.getFullTestURL("SwXTextEmbeddedObject.sxw") ;
+ StringBuilder escUrl = new StringBuilder();
+
+ // In base URL of a JAR file in content URL all directory
+ // separators ('/') must be replaced with escape symbol '%2F'.
+ int idx = url.indexOf("/") ;
+ int lastIdx = -1 ;
+ while (idx >= 0) {
+ escUrl.append(url.substring(lastIdx + 1, idx)).append("%2F");
+ lastIdx = idx ;
+ idx = url.indexOf("/", idx + 1) ;
+ }
+ escUrl.append(url.substring(lastIdx + 1));
+ String cntUrl = "vnd.sun.star.pkg://" + escUrl.toString() + "/" ;
+
+ XContentIdentifier CI = ciFac.createContentIdentifier(cntUrl) ;
+
+ XContentProvider cntProv = UnoRuntime.queryInterface(XContentProvider.class, oUCB) ;
+
+ XContent cnt = cntProv.queryContent(CI) ;
+
+ XCommandProcessor cmdProc = UnoRuntime.queryInterface(XCommandProcessor.class, cnt) ;
+
+ Property prop = new Property() ;
+ prop.Name = "Title" ;
+
+ Command cmd = new Command("open", -1, new OpenCommandArgument2
+ (OpenMode.ALL, 10000, null, new Property[] {prop},
+ new NumberedSortingInfo[0])) ;
+
+ XDynamicResultSet dynResSet = (XDynamicResultSet)
+ AnyConverter.toObject(new Type(XDynamicResultSet.class),
+ cmdProc.execute(cmd, 0, null));
+
+ Object oStubFactory = xMSF.createInstance
+ ("com.sun.star.ucb.CachedDynamicResultSetStubFactory") ;
+
+ XCachedDynamicResultSetStubFactory xStubFactory =
+ UnoRuntime.queryInterface
+ (XCachedDynamicResultSetStubFactory.class, oStubFactory) ;
+
+ resSetStub =
+ xStubFactory.createCachedDynamicResultSetStub(dynResSet) ;
+
+ tEnv.addObjRelation("CachedDynamicResultSetStub", resSetStub) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetStubFactory.java b/qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetStubFactory.java
new file mode 100644
index 000000000..5249b8e26
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetStubFactory.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cached;
+
+import com.sun.star.beans.Property;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.NumberedSortingInfo;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.OpenMode;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.AnyConverter;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.CachedDynamicResultSetStubFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XCachedDynamicResultSetStubFactory</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XCachedDynamicResultSetStubFactory
+* @see com.sun.star.ucb.CachedDynamicResultSetStubFactory
+* @see ifc.ucb._XCachedDynamicResultSetStubFactory
+*/
+public class CachedDynamicResultSetStubFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.CachedDynamicResultSetStubFactory</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'DynamicResultSet'</code> for
+ * {@link ifc.ucb._XCachedDynamicResultSetStubFactory} : the destination
+ * interface requires as its parameter an instance of
+ * <code>DynamicResultSet</code> service. It is created
+ * using <code>UniversalContentBroker</code> and querying it for
+ * <code>PackageContent</code> which represents JAR file mentioned
+ * above. Then the dynamic list of file contents (entries) is retrieved.
+ * </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.CachedDynamicResultSetStubFactory" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // creating relation for XCachedDynamicResultSetStubFactory
+ XDynamicResultSet dynResSet = null ;
+ Object oUCB = xMSF.createInstanceWithArguments
+ ("com.sun.star.ucb.UniversalContentBroker",
+ new Object[0]) ;
+
+ XContentIdentifierFactory ciFac = UnoRuntime.queryInterface(XContentIdentifierFactory.class, oUCB) ;
+
+ String url = util.utils.getFullTestURL("SwXTextEmbeddedObject.sxw") ;
+ StringBuilder escUrl = new StringBuilder();
+
+ // In base URL of a JAR file in content URL all directory
+ // separators ('/') must be replaced with escape symbol '%2F'.
+ int idx = url.indexOf("/") ;
+ int lastIdx = -1 ;
+ while (idx >= 0) {
+ escUrl.append(url.substring(lastIdx + 1, idx)).append("%2F");
+ lastIdx = idx ;
+ idx = url.indexOf("/", idx + 1) ;
+ }
+ escUrl.append(url.substring(lastIdx + 1));
+ String cntUrl = "vnd.sun.star.pkg://" + escUrl.toString() + "/" ;
+
+ XContentIdentifier CI = ciFac.createContentIdentifier(cntUrl) ;
+
+ XContentProvider cntProv = UnoRuntime.queryInterface(XContentProvider.class, oUCB) ;
+
+ XContent cnt = cntProv.queryContent(CI) ;
+
+ XCommandProcessor cmdProc = UnoRuntime.queryInterface(XCommandProcessor.class, cnt) ;
+
+ Property prop = new Property() ;
+ prop.Name = "Title" ;
+
+ Command cmd = new Command("open", -1, new OpenCommandArgument2
+ (OpenMode.ALL, 10000, null, new Property[] {prop},
+ new NumberedSortingInfo[0])) ;
+
+ dynResSet = (XDynamicResultSet)
+ AnyConverter.toObject(new Type(XDynamicResultSet.class),
+ cmdProc.execute(cmd, 0, null));
+
+ tEnv.addObjRelation("DynamicResultSet", dynResSet) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_cmdmail/SimpleCommandMail.java b/qadevOOo/tests/java/mod/_cmdmail/SimpleCommandMail.java
new file mode 100644
index 000000000..046557645
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cmdmail/SimpleCommandMail.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cmdmail;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+public class SimpleCommandMail extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.system.SimpleCommandMail" );
+
+ if (oInterface == null) log.println("!!! NULL !!!") ;
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_cnt/ChaosContentProvider.java b/qadevOOo/tests/java/mod/_cnt/ChaosContentProvider.java
new file mode 100644
index 000000000..3d8338077
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cnt/ChaosContentProvider.java
@@ -0,0 +1,89 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cnt;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.cnt.ChaosContentProvider</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XContentProvider</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XContentProvider
+* @see com.sun.star.ucb.ChaosContentProvider
+* @see ifc.ucb._XContentProvider
+*/
+public class ChaosContentProvider extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.cnt.ChaosContentProvider</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FACTORY'</code> for
+ * {@link ifc.ucb._XContentProvider} factory for
+ * content identifiers. Here it is
+ * <code>UniversalContentBroker</code> service.</li>
+ * <li> <code>'CONTENT1'</code> for
+ * {@link ifc.ucb._XContentProvider}: suitable
+ * content URL for this provider </li>
+ * <li> <code>'CONTENT2'</code> for
+ * {@link ifc.ucb._XContentProvider}: another suitable
+ * content URL for this provider </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.ChaosContentProvider" );
+ Object cntFactory = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UniversalContentBroker" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XContentProvider
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class, cntFactory);
+
+ tEnv.addObjRelation("FACTORY", CIF) ;
+ tEnv.addObjRelation("CONTENT1", "ftp://localhost") ;
+ tEnv.addObjRelation("CONTENT2", "ftp://sva.dorms.spbu.ru") ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_cnt/CntUnoDataContainer.java b/qadevOOo/tests/java/mod/_cnt/CntUnoDataContainer.java
new file mode 100644
index 000000000..8fc8cd0d9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cnt/CntUnoDataContainer.java
@@ -0,0 +1,112 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cnt;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.cnt.CntUnoDataContainer</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* <li> <code>com::sun::star::container::XIndexContainer</code></li>
+* <li> <code>com::sun::star::ucb::XDataContainer</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XIndexReplace</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XActiveDataSink
+* @see com.sun.star.container.XIndexContainer
+* @see com.sun.star.ucb.XDataContainer
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XIndexReplace
+* @see ifc.io._XActiveDataSink
+* @see ifc.container._XIndexContainer
+* @see ifc.ucb._XDataContainer
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.container._XIndexReplace
+*/
+public class CntUnoDataContainer extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.cnt.CntUnoDataContainer</code> and adds
+ * to it one <code>CntUnoDataContainer</code> instance. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'INSTANCE1'</code> for
+ * {@link ifc.container._XIndexContainer},
+ * {@link ifc.container._XIndexReplace} : for this object
+ * elements contained in it are <code>CntUnoDataContainer</code>
+ * instances. (only one relation for one interface thread is now
+ * passed).</li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink} : a stream to set and get.
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.DataContainer" );
+
+ // adding one child container
+ XIndexContainer xIC = UnoRuntime.queryInterface
+ (XIndexContainer.class, oInterface) ;
+
+ Object child = xMSF.createInstance
+ ( "com.sun.star.ucb.DataContainer" );
+ xIC.insertByIndex(0, child) ;
+
+ Object relationContainer = xMSF.createInstance
+ ( "com.sun.star.ucb.DataContainer" );
+
+ Object xIn = xMSF.createInstance
+ ( "com.sun.star.io.DataInputStream" );
+
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("INSTANCE1", relationContainer) ;
+ tEnv.addObjRelation("InputStream", xIn) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class BreakIterator
+
diff --git a/qadevOOo/tests/java/mod/_cnt/PropertyMatcherFactory.java b/qadevOOo/tests/java/mod/_cnt/PropertyMatcherFactory.java
new file mode 100644
index 000000000..93807fe5f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cnt/PropertyMatcherFactory.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cnt;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.cnt.CntUnoDataContainer</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XPropertyMatcherFactory</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XPropertyMatcherFactory
+* @see com.sun.star.ucb.PropertyMatcherFactory
+* @see ifc.ucb._XPropertyMatcherFactory
+*/
+public class PropertyMatcherFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.cnt.PropertyMatcherFactory</code>. <p>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.PropertyMatcherFactory" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_configmgr/ConfigurationProvider.java b/qadevOOo/tests/java/mod/_configmgr/ConfigurationProvider.java
new file mode 100644
index 000000000..dc114804e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_configmgr/ConfigurationProvider.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._configmgr;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.uno.XComponentContext;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import java.io.PrintWriter;
+
+public final class ConfigurationProvider extends TestCase {
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception
+ {
+ // Create a non-default ConfigurationProvider instance, so that testing
+ // its XComponent.dispose does not accidentally dispose the
+ // DefaultProvider:
+ XComponentContext ctxt = tParam.getComponentContext();
+ return ProviderTestEnvironment.create(
+ ctxt.getServiceManager().createInstanceWithArgumentsAndContext(
+ "com.sun.star.configuration.ConfigurationProvider",
+ new Object[] { new NamedValue("Locale", "*") },
+ ctxt));
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_configmgr/DefaultProvider.java b/qadevOOo/tests/java/mod/_configmgr/DefaultProvider.java
new file mode 100644
index 000000000..2a11a9b51
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_configmgr/DefaultProvider.java
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._configmgr;
+
+import com.sun.star.configuration.theDefaultProvider;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.XInterface;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import java.io.PrintWriter;
+
+public final class DefaultProvider extends TestCase {
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log)
+ {
+ return ProviderTestEnvironment.create(
+ AnyConverter.toObject(
+ XInterface.class,
+ theDefaultProvider.get(tParam.getComponentContext())));
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_configmgr/ProviderTestEnvironment.java b/qadevOOo/tests/java/mod/_configmgr/ProviderTestEnvironment.java
new file mode 100644
index 000000000..7e0eb2f96
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_configmgr/ProviderTestEnvironment.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._configmgr;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.uno.XInterface;
+import lib.TestEnvironment;
+
+final class ProviderTestEnvironment {
+ private ProviderTestEnvironment() {}
+
+ public static TestEnvironment create(Object provider) {
+ TestEnvironment env = new TestEnvironment((XInterface) provider);
+ env.addObjRelation(
+ "XMSF.serviceNamesWithArgs",
+ new String[] {
+ "com.sun.star.configuration.ConfigurationAccess",
+ "com.sun.star.configuration.ConfigurationUpdateAccess" });
+ Object[] args = new Object[] {
+ new NamedValue("nodepath", "/org.openoffice.Setup") };
+ env.addObjRelation("XMSF.Args", new Object[][] { args, args });
+ env.addObjRelation(
+ "needArgs", "com.sun.star.configuration.ConfigurationProvider");
+ return env;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_connector/uno/Connector.java b/qadevOOo/tests/java/mod/_connector/uno/Connector.java
new file mode 100644
index 000000000..17b0c4e73
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_connector/uno/Connector.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._connector.uno;
+
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.connection.Connector</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::connection::XConnector</code></li>
+* </ul>
+* Can be run in several threads.
+* @see com.sun.star.connection.XConnector
+* @see ifc.connection._XConnector
+*/
+public class Connector extends TestCase {
+
+ /**
+ * Acceptor chooses the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 10000 ;
+ private int curPort ;
+ private static String sOfficeHost = null ;
+
+ /**
+ * Retrieves host name where StarOffice is started from test
+ * parameter <code>'CONNECTION_STRING'</code>.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+ sOfficeHost = cncstr.substring(idx, cncstr.indexOf(",", idx)) ;
+ }
+
+ /**
+ * Does nothing.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Just creates service <code>com.sun.star.connection.Connector</code>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface connector = (XInterface)
+ Param.getMSF().createInstance
+ ("com.sun.star.connection.Connector") ;
+
+ TestEnvironment tEnv = new TestEnvironment(connector) ;
+
+ // select the port
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+
+ // adding connection string as relation
+ tEnv.addObjRelation("XConnector.connectStr",
+ "socket,host=" + sOfficeHost + ",port=" + curPort) ;
+
+ // adding port number for freeing it.
+ tEnv.addObjRelation("Connector.Port", Integer.valueOf(curPort)) ;
+
+ return tEnv ;
+ }
+
+ /**
+ * Just clears flag which indicates that port is free now.
+ */
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam) {
+
+ curPort = ((Integer)tEnv.getObjRelation("Connector.Port")).intValue();
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_connector/uno/package.html b/qadevOOo/tests/java/mod/_connector/uno/package.html
new file mode 100644
index 000000000..c9ff7b2b5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_connector/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'connector'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_connectr/Connector.java b/qadevOOo/tests/java/mod/_connectr/Connector.java
new file mode 100644
index 000000000..3128ef468
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_connectr/Connector.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._connectr;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.connection.Connector</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::connection::XConnector</code></li>
+* </ul>
+* Can be run in several threads.
+* @see com.sun.star.connection.XConnector
+* @see ifc.connection._XConnector
+*/
+public class Connector extends TestCase {
+
+ /**
+ * Acceptor chooses the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 10000 ;
+ private int curPort ;
+ private static String sOfficeHost = null ;
+
+ /**
+ * Retrieves host name where StarOffice is started from test
+ * parameter <code>'CONNECTION_STRING'</code>.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+ sOfficeHost = cncstr.substring(idx, cncstr.indexOf(",", idx)) ;
+ }
+
+ /**
+ * Does nothing.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Just creates service <code>com.sun.star.connection.Connector</code>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+ XInterface connector = (XInterface)
+ Param.getMSF().createInstance
+ ("com.sun.star.connection.Connector") ;
+
+ TestEnvironment tEnv = new TestEnvironment(connector) ;
+
+ // select the port
+ curPort = utils.getNextFreePort(basePort);
+ log.println("Choose Port nr: " + curPort);
+
+ // adding connection string as relation
+ tEnv.addObjRelation("XConnector.connectStr",
+ "socket,host=" + sOfficeHost + ",port=" + curPort) ;
+
+ // adding port number for freeing it.
+ tEnv.addObjRelation("Connector.Port", Integer.valueOf(curPort)) ;
+
+ return tEnv ;
+ }
+
+ /**
+ * Just clears flag which indicates that port is free now.
+ */
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam) {
+
+ curPort = ((Integer)tEnv.getObjRelation("Connector.Port")).intValue();
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_connectr/package.html b/qadevOOo/tests/java/mod/_connectr/package.html
new file mode 100644
index 000000000..c9ff7b2b5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_connectr/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'connector'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_corefl/CoreReflection.java b/qadevOOo/tests/java/mod/_corefl/CoreReflection.java
new file mode 100644
index 000000000..880a47c17
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_corefl/CoreReflection.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._corefl;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.reflection.CoreReflection</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::reflection::XIdlReflection</code></li>
+* </ul>
+* @see com.sun.star.reflection.XIdlReflection
+* @see ifc.reflection._XIdlReflection
+*/
+public class CoreReflection extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.reflection.CoreReflection</code> service.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ("com.sun.star.reflection.CoreReflection");
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for CoreReflection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class CoreReflection
+
diff --git a/qadevOOo/tests/java/mod/_corefl/package.html b/qadevOOo/tests/java/mod/_corefl/package.html
new file mode 100644
index 000000000..9d604ba75
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_corefl/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'corefl'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_corereflection/uno/CoreReflection.java b/qadevOOo/tests/java/mod/_corereflection/uno/CoreReflection.java
new file mode 100644
index 000000000..7b291e743
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_corereflection/uno/CoreReflection.java
@@ -0,0 +1,58 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._corereflection.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.reflection.CoreReflection</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::reflection::XIdlReflection</code></li>
+* </ul>
+* @see com.sun.star.reflection.XIdlReflection
+* @see ifc.reflection._XIdlReflection
+*/
+public class CoreReflection extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.reflection.CoreReflection</code> service.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ("com.sun.star.reflection.CoreReflection");
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for CoreReflection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class CoreReflection \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_corereflection/uno/package.html b/qadevOOo/tests/java/mod/_corereflection/uno/package.html
new file mode 100644
index 000000000..9d604ba75
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_corereflection/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'corefl'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_cpld/DLLComponentLoader.java b/qadevOOo/tests/java/mod/_cpld/DLLComponentLoader.java
new file mode 100644
index 000000000..fa254bbdc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cpld/DLLComponentLoader.java
@@ -0,0 +1,94 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._cpld;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for <code>com.sun.star.comp.stoc.DLLComponentLoader</code> service <p>
+* Files which are used :
+* <ul>
+* <li> <code>XImpReg.dll</code> : DLL which will be loaded in
+* <code>XImplementationLoader</code> interface test. </li>
+* <ul>
+* Multithread testing compliant.
+* @see com.sun.star.loader.XImplementationLoader
+* @see com.sun.star.lang.XServiceInfo
+* @see ifc.loader._XImplementationLoader
+* @see ifc.lang._XServiceInfo
+*/
+public class DLLComponentLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.comp.stoc.DLLComponentLoader</code>
+ * service. <p>
+ * The following object relations created :
+ * <ul>
+ * <li> <code>'ImplementationLoader'</code> : service which is
+ * responsible for loading DLL implementations. </li>
+ * <li> <code>'ImplementationUrl'</code> : DLL file location. </li>
+ * <li> <code>'ImplementationName'</code> : Name of the implementation.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.stoc.DLLComponentLoader" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for DLLComponentLoader object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding object relation for XImplementationLoader ifc test
+ tEnv.addObjRelation("ImplementationLoader",
+ "com.sun.star.loader.SharedLibrary") ;
+ String os = (String) Param.get("OS");
+ if (os == null || os.equals(""))
+ throw new StatusException(
+ "Couldn't determine operating system for naming convention.",
+ new NullPointerException());
+ String name = "javaloader";
+ if (!os.equals("wntmsci"))
+ name = "lib" + name + ".so";
+ else
+ name += ".dll";
+ String implURL = utils.getFullTestURL(os + "/" + name);
+ tEnv.addObjRelation("ImplementationUrl", implURL) ;
+ log.println("looking for shared lib: " + implURL);
+ tEnv.addObjRelation("ImplementationName",
+ "com.sun.star.comp.stoc.JavaComponentLoader") ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class DLLComponentLoader
+
diff --git a/qadevOOo/tests/java/mod/_cpld/package.html b/qadevOOo/tests/java/mod/_cpld/package.html
new file mode 100644
index 000000000..1bc7bf117
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_cpld/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'cpld'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java b/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java
new file mode 100644
index 000000000..3cded65a1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java
@@ -0,0 +1,261 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XStorable;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.XDocumentDataSource;
+import com.sun.star.sdb.XQueryDefinitionsSupplier;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XIsolatedConnection;
+import com.sun.star.sdbc.XStatement;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import util.DesktopTools;
+import util.utils;
+
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>::com::sun::star::accessibility::XAccessible</code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul><p>
+ * @see com.sun.star.accessibility.XAccessible
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessible
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ */
+public class ConnectionLineAccessibility extends TestCase
+{
+ XWindow xWindow = null;
+ String aFile = "";
+ XIsolatedConnection isolConnection = null;
+ XComponent QueryComponent = null;
+ String user = "";
+ String password="";
+
+ /**
+ * Creates a new DataSource and stores it.
+ * Creates a connection and using it
+ * creates two tables in database.
+ * Creates a new query and adds it to DefinitionContainer.
+ * Opens the QueryComponent.with loadComponentFromURL
+ * and gets the object with the role UNKNOWN and the implementation
+ * name that contains ConnectionLine
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ * @return
+ * @throws StatusException
+ * @see TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception
+ {
+ XInterface oObj = null;
+
+ Param.getMSF().createInstance("com.sun.star.sdb.DatabaseContext");
+ Object oDBSource = Param.getMSF().createInstance("com.sun.star.sdb.DataSource");
+ Object newQuery = Param.getMSF().createInstance("com.sun.star.sdb.QueryDefinition");
+ Param.getMSF().createInstance("com.sun.star.awt.Toolkit");
+
+ String mysqlURL = (String) Param.get("mysql.url");
+
+ if (mysqlURL == null)
+ {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'mysql.url' from ini-file"));
+ }
+
+ user = (String) Param.get("jdbc.user");
+ password = (String) Param.get("jdbc.password");
+
+ if ((user == null) || (password == null))
+ {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.user' or 'jdbc.password' from ini-file"));
+ }
+
+ PropertyValue[] info = new PropertyValue[2];
+ info[0] = new PropertyValue();
+ info[0].Name = "user";
+ info[0].Value = user;
+ info[1] = new PropertyValue();
+ info[1].Name = "password";
+ info[1].Value = password;
+
+ XPropertySet propSetDBSource = UnoRuntime.queryInterface(
+ XPropertySet.class, oDBSource);
+
+ propSetDBSource.setPropertyValue("URL", mysqlURL);
+ propSetDBSource.setPropertyValue("Info", info);
+
+ log.println("writing database file ...");
+ XDocumentDataSource xDDS = UnoRuntime.queryInterface(XDocumentDataSource.class, oDBSource);
+ XStorable store = UnoRuntime.queryInterface(XStorable.class,
+ xDDS.getDatabaseDocument());
+
+ aFile = utils.getOfficeTemp(Param.getMSF())+"ConnectionLine.odb";
+ log.println("... filename will be "+aFile);
+ store.storeAsURL(aFile,new PropertyValue[]{});
+ log.println("... done");
+
+ isolConnection = UnoRuntime.queryInterface(
+ XIsolatedConnection.class,
+ oDBSource);
+
+ final String tbl_name1 = "tst_table1";
+ final String tbl_name2 = "tst_table2";
+ final String col_name1 = "id1";
+ final String col_name2 = "id2";
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XConnection connection = isolConnection.getIsolatedConnection(user, password);
+ XStatement statement = connection.createStatement();
+ statement.executeUpdate("drop table if exists " + tbl_name1);
+ statement.executeUpdate("drop table if exists " + tbl_name2);
+ statement.executeUpdate("create table " + tbl_name1 + " (" +
+ col_name1 + " int)");
+ statement.executeUpdate("create table " + tbl_name2 + " (" +
+ col_name2 + " int)");
+
+ XQueryDefinitionsSupplier querySuppl = UnoRuntime.queryInterface(
+ XQueryDefinitionsSupplier.class,
+ oDBSource);
+
+ XNameAccess defContainer = querySuppl.getQueryDefinitions();
+
+ XPropertySet queryProp = UnoRuntime.queryInterface(
+ XPropertySet.class, newQuery);
+
+ final String query = "select * from " + tbl_name1 + ", " +
+ tbl_name2 + " where " + tbl_name1 + "." +
+ col_name1 + "=" + tbl_name2 + "." +
+ col_name2;
+ queryProp.setPropertyValue("Command", query);
+
+ XNameContainer queryContainer = UnoRuntime.queryInterface(
+ XNameContainer.class,
+ defContainer);
+
+ queryContainer.insertByName("Query1", newQuery);
+ store.store();
+ connection.close();
+
+ PropertyValue[] loadProps = new PropertyValue[3];
+ loadProps[0] = new PropertyValue();
+ loadProps[0].Name = "QueryDesignView";
+ loadProps[0].Value = Boolean.TRUE;
+
+ loadProps[1] = new PropertyValue();
+ loadProps[1].Name = "CurrentQuery";
+ loadProps[1].Value = "Query1";
+
+ loadProps[2] = new PropertyValue();
+ loadProps[2].Name = "DataSource";
+ loadProps[2].Value = oDBSource;
+
+ QueryComponent = DesktopTools.loadDoc(Param.getMSF(),".component:DB/QueryDesign",loadProps);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ xWindow = UnoRuntime.queryInterface(XModel.class, QueryComponent).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree (log,xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRoleIgnoreShowing(xRoot, AccessibleRole.UNKNOWN, "", "ConnectionLine");
+
+ log.println("ImplementationName " + util.utils.getImplName(oObj));
+
+ log.println("creating TestEnvironment");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ final XWindow queryWin = xWindow;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer()
+ {
+ public void fireEvent()
+ {
+ Rectangle rect = queryWin.getPosSize();
+ queryWin.setPosSize(rect.X, rect.Y, rect.Height-5, rect.Width-5, PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * Closes the DatasourceAdministration dialog and Query Dialog.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log)
+ {
+ try
+ {
+
+ log.println("closing QueryComponent ...");
+ DesktopTools.closeDoc(QueryComponent);
+ log.println("... done");
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object sfa = xMSF.createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ XSimpleFileAccess xSFA = UnoRuntime.queryInterface(XSimpleFileAccess.class, sfa);
+ log.println("deleting database file");
+ xSFA.kill(aFile);
+ log.println("Could delete file "+aFile+": "+!xSFA.exists(aFile));
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/DBContentLoader.java b/qadevOOo/tests/java/mod/_dbaccess/DBContentLoader.java
new file mode 100644
index 000000000..b37389759
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/DBContentLoader.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdb.ContentLoader</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::frame::FrameLoader</code></li>
+* <li> <code>com::sun::star::frame::XFrameLoader</code></li>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.frame.FrameLoader
+* @see com.sun.star.frame.XSynchronousFrameLoader
+* @see com.sun.star.lang.XInitialization
+* @see ifc.beans._XPropertySet
+* @see ifc.frame._FrameLoader
+* @see ifc.frame._XSynchronousFrameLoader
+* @see ifc.lang._XInitialization
+*/
+public class DBContentLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sdb.ContentLoader</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FrameLoader.URL"'</code> for
+ * {@link ifc.frame._XFrameLoader} </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.sdb.ContentLoader");
+ XInterface oObj = (XInterface) oInterface ;
+
+ log.println("ImplementationName " + util.utils.getImplName(oObj));
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XFrameLoader
+ tEnv.addObjRelation("FrameLoader.URL", ".component:DB/DataSourceBrowser") ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java b/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java
new file mode 100644
index 000000000..499779ebf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java
@@ -0,0 +1,254 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XStorable;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.XDocumentDataSource;
+import com.sun.star.sdb.XQueryDefinitionsSupplier;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XIsolatedConnection;
+import com.sun.star.sdbc.XStatement;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import util.DesktopTools;
+import util.utils;
+
+
+/**
+* Object implements the following interfaces :
+* <ul>
+* <li><code>::com::sun::star::accessibility::XAccessible</code></li>
+* <li><code>::com::sun::star::accessibility::XAccessibleContext
+* </code></li>
+* <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+* </code></li>
+* </ul><p>
+* @see com.sun.star.accessibility.XAccessible
+* @see com.sun.star.accessibility.XAccessibleContext
+* @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+* @see ifc.accessibility._XAccessible
+* @see ifc.accessibility._XAccessibleContext
+* @see ifc.accessibility._XAccessibleEventBroadcaster
+*/
+public class JoinViewAccessibility extends TestCase {
+ XWindow xWindow = null;
+ String aFile = "";
+ XIsolatedConnection isolConnection = null;
+ XComponent QueryComponent = null;
+ String user = "";
+ String password="";
+
+ /**
+ * Creates a new DataSource and stores it.
+ * Creates a connection and using it
+ * creates two tables in database.
+ * Creates a new query and adds it to DefinitionContainer.
+ * Opens the QueryComponent.with loadComponentFromURL
+ * and gets the object with the role UNKNOWN and the implementation
+ * name that contains ConnectionLine
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ * @return
+ * @throws StatusException
+ * @see TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment (TestParameters Param,
+ PrintWriter log) throws Exception
+ {
+ XInterface oObj = null;
+
+ Param.getMSF().createInstance("com.sun.star.sdb.DatabaseContext");
+ Object oDBSource = Param.getMSF()
+ .createInstance("com.sun.star.sdb.DataSource");
+ Object newQuery = Param.getMSF().createInstance(
+ "com.sun.star.sdb.QueryDefinition");
+ Param.getMSF().createInstance("com.sun.star.awt.Toolkit");
+
+ String mysqlURL = (String) Param.get ("mysql.url");
+
+ if (mysqlURL == null)
+ {
+ throw new StatusException (Status.failed (
+ "Couldn't get 'mysql.url' from ini-file"));
+ }
+
+ user = (String) Param.get ("jdbc.user");
+ password = (String) Param.get ("jdbc.password");
+
+ if ((user == null) || (password == null))
+ {
+ throw new StatusException (Status.failed (
+ "Couldn't get 'jdbc.user' or 'jdbc.password' from ini-file"));
+ }
+
+ PropertyValue[] info = new PropertyValue[2];
+ info[0] = new PropertyValue ();
+ info[0].Name = "user";
+ info[0].Value = user;
+ info[1] = new PropertyValue ();
+ info[1].Name = "password";
+ info[1].Value = password;
+
+ XPropertySet propSetDBSource = UnoRuntime.queryInterface (
+ XPropertySet.class, oDBSource);
+
+ propSetDBSource.setPropertyValue ("URL", mysqlURL);
+ propSetDBSource.setPropertyValue ("Info", info);
+
+ log.println ("writing database file ...");
+ XDocumentDataSource xDDS = UnoRuntime.queryInterface(XDocumentDataSource.class, oDBSource);
+ XStorable store = UnoRuntime.queryInterface(XStorable.class,
+ xDDS.getDatabaseDocument());
+ aFile = utils.getOfficeTemp (Param.getMSF ())+"JoinView.odb";
+ log.println ("... filename will be "+aFile);
+ store.storeAsURL (aFile,new PropertyValue[]{});
+ log.println ("... done");
+
+ isolConnection = UnoRuntime.queryInterface (
+ XIsolatedConnection.class,
+ oDBSource);
+
+ final String tbl_name1 = "tst_table1";
+ final String tbl_name2 = "tst_table2";
+ final String col_name1 = "id1";
+ final String col_name2 = "id2";
+
+ util.utils.waitForEventIdle(Param.getMSF());
+ XConnection connection = isolConnection.getIsolatedConnection (user, password);
+ XStatement statement = connection.createStatement ();
+ statement.executeUpdate ("drop table if exists " + tbl_name1);
+ statement.executeUpdate ("drop table if exists " + tbl_name2);
+ statement.executeUpdate ("create table " + tbl_name1 + " (" +
+ col_name1 + " int)");
+ statement.executeUpdate ("create table " + tbl_name2 + " (" +
+ col_name2 + " int)");
+
+ XQueryDefinitionsSupplier querySuppl = UnoRuntime.queryInterface (
+ XQueryDefinitionsSupplier.class,
+ oDBSource);
+
+ XNameAccess defContainer = querySuppl.getQueryDefinitions ();
+
+ XPropertySet queryProp = UnoRuntime.queryInterface (
+ XPropertySet.class, newQuery);
+
+ final String query = "select * from " + tbl_name1 + ", " +
+ tbl_name2 + " where " + tbl_name1 + "." +
+ col_name1 + "=" + tbl_name2 + "." +
+ col_name2;
+ queryProp.setPropertyValue ("Command", query);
+
+ XNameContainer queryContainer = UnoRuntime.queryInterface (
+ XNameContainer.class,
+ defContainer);
+
+ queryContainer.insertByName ("Query1", newQuery);
+ store.store ();
+ connection.close ();
+
+ PropertyValue[] loadProps = new PropertyValue[3];
+ loadProps[0] = new PropertyValue ();
+ loadProps[0].Name = "QueryDesignView";
+ loadProps[0].Value = Boolean.TRUE;
+
+ loadProps[1] = new PropertyValue ();
+ loadProps[1].Name = "CurrentQuery";
+ loadProps[1].Value = "Query1";
+
+ loadProps[2] = new PropertyValue ();
+ loadProps[2].Name = "DataSource";
+ loadProps[2].Value = oDBSource;
+
+ QueryComponent = DesktopTools.loadDoc (Param.getMSF (),".component:DB/QueryDesign",loadProps);
+
+ xWindow = UnoRuntime.queryInterface(XModel.class, QueryComponent).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject (xWindow);
+
+ AccessibilityTools.printAccessibleTree (log,xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.VIEW_PORT);
+
+ log.println("ImplementationName " + util.utils.getImplName(oObj));
+
+ log.println("creating TestEnvironment");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ final XWindow queryWin = xWindow;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle rect = queryWin.getPosSize();
+ queryWin.setPosSize(rect.X, rect.Y, rect.Height-5, rect.Width-5, PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * Closes the DatasourceAdministration dialog and Query Dialog.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try
+ {
+
+ log.println ("closing QueryComponent ...");
+ DesktopTools.closeDoc (QueryComponent);
+ log.println ("... done");
+ XMultiServiceFactory xMSF = Param.getMSF ();
+ Object sfa = xMSF.createInstance ("com.sun.star.comp.ucb.SimpleFileAccess");
+ XSimpleFileAccess xSFA = UnoRuntime.queryInterface (XSimpleFileAccess.class, sfa);
+ log.println ("deleting database file");
+ xSFA.kill (aFile);
+ log.println ("Could delete file "+aFile+": "+!xSFA.exists (aFile));
+ } catch (Exception e)
+ {
+ e.printStackTrace ();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/OCommandDefinition.java b/qadevOOo/tests/java/mod/_dbaccess/OCommandDefinition.java
new file mode 100644
index 000000000..895df264f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/OCommandDefinition.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdb.QueryDefinition</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sdb::QueryDefinition</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* This object test <b> can </b> be run in several
+* threads concurrently.
+* @see com.sun.star.sdb.QueryDefinition
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.sdb._QueryDefinition
+* @see ifc.beans._XPropertySet
+*/
+public class OCommandDefinition extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.sdb.QueryDefinition</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.sdb.QueryDefinition" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ODatabaseContext.java b/qadevOOo/tests/java/mod/_dbaccess/ODatabaseContext.java
new file mode 100644
index 000000000..24b69854b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/ODatabaseContext.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import com.sun.star.beans.PropertyValue;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.XNamingService;
+import com.sun.star.frame.XStorable;
+import com.sun.star.sdb.XDocumentDataSource;
+import util.utils;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdb.DatabaseContext</code>. <p>
+*
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::uno::XNamingService</code></li>
+* </ul>
+*
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.uno.XNamingService
+* @see com.sun.star.sdb.DatabaseContext
+* @see ifc.container._XNameAccess
+* @see ifc.container._XEnumerationAccess
+* @see ifc.container._XElementAccess
+* @see ifc.uno._XNamingService
+*/
+public class ODatabaseContext extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.sdb.DatabaseContext</code>.
+ * Needed object relations :
+ * <ul>
+ * <li> <code>'XNamingService.RegisterObject'</code> for
+ * {@link ifc.uno._XNamingService} as an
+ * instance of <code>com.sun.star.sdb.DataSource</code>
+ * service. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.sdb.DatabaseContext" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding obj relation for XNamingService
+ oInterface = xMSF.createInstance( "com.sun.star.sdb.DataSource" );
+
+ XPropertySet xDSProps = UnoRuntime.queryInterface(XPropertySet.class, oInterface) ;
+
+ xDSProps.setPropertyValue("URL", "sdbc:dbase:file:///.") ;
+
+ XDocumentDataSource xDDS = UnoRuntime.queryInterface(XDocumentDataSource.class, oInterface);
+ XStorable store = UnoRuntime.queryInterface(XStorable.class,
+ xDDS.getDatabaseDocument ());
+ String aFile = utils.getOfficeTemp (Param.getMSF ())+"DatabaseContext.odb";
+ log.println("store to '" + aFile + "'");
+ store.storeAsURL(aFile,new PropertyValue[]{});
+
+ tEnv.addObjRelation("XNamingService.RegisterObject", oInterface) ;
+
+ tEnv.addObjRelation("INSTANCE", oInterface);
+
+ tEnv.addObjRelation("XContainer.Container",
+ UnoRuntime.queryInterface(
+ XNamingService.class, oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ODatabaseSource.java b/qadevOOo/tests/java/mod/_dbaccess/ODatabaseSource.java
new file mode 100644
index 000000000..1976f5711
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/ODatabaseSource.java
@@ -0,0 +1,175 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XStorable;
+
+
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.XNamingService;
+import java.io.PrintWriter;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.utils;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.XOfficeDatabaseDocument;
+import com.sun.star.task.XInteractionHandler;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdb.DataSource</code>. <p>
+*
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sdb::XQueryDefinitionsSupplier</code></li>
+* <li> <code>com::sun::star::sdb::DataSource</code></li>
+* <li> <code>com::sun::star::sdb::XCompletedConnection</code></li>
+* <li> <code>com::sun::star::util::XFlushable</code></li>
+* <li> <code>com::sun::star::sdb::XBookmarksSupplier</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+*
+* @see com.sun.star.sdb.XQueryDefinitionsSupplier
+* @see com.sun.star.sdb.XFormDocumentsSupplier
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.sdb.DataSource
+* @see com.sun.star.sdb.XCompletedConnection
+* @see com.sun.star.util.XFlushable
+* @see com.sun.star.sdb.XReportDocumentsSupplier
+* @see ifc.sdb._XQueryDefinitionsSupplier
+* @see ifc.sdb._XFormDocumentsSupplier
+* @see ifc.beans._XPropertySet
+* @see ifc.sdb._DataSource
+* @see ifc.sdb._XCompletedConnection
+* @see ifc.util._XFlushable
+* @see ifc.sdb._XReportDocumentsSupplier
+*/
+public class ODatabaseSource extends TestCase {
+
+ private static int uniqueSuffixStat = 0 ;
+
+ private int uniqueSuffix = 0 ;
+ private XOfficeDatabaseDocument xDBDoc = null;
+
+ /**
+ * Assigns database's name unique suffix for this object depending
+ * on static field. For names differs in different object threads.
+ */
+ @Override
+ protected void initialize ( TestParameters Param, PrintWriter log) throws Exception {
+ uniqueSuffix = uniqueSuffixStat++ ;
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing no longer needed docs... ");
+ DesktopTools.closeDoc(xDBDoc);
+ }
+
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ *
+ * Creates new <code>DataSource</code> which represents DBase database
+ * located in temporary directory, and then registers it in service
+ * <code>com.sun.star.sdb.DatabaseContext</code>.
+ *
+ * Created object relations :
+ * <ul>
+ * <li> <code>'XCompletedConnection.Handler'</code> for interface test
+ * <code>XCompletedConnection</code> </li>
+ * </ul>
+ * <li> <code>'UserAndPassword'</code> for interface test
+ * <code>XIsolatedConnection</code> </li>
+ * </ul>
+ * @see com.sun.star.sdb.DatabaseContext
+ * @see com.sun.star.sdb.DataSource
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.sdb.DatabaseContext" );
+
+ XNamingService xDBContextNameServ = UnoRuntime.queryInterface(XNamingService.class, oInterface) ;
+
+ // retrieving temp directory for database
+ String tmpDatabaseUrl = utils.getOfficeTempDir(Param.getMSF());
+
+ tmpDatabaseUrl = "sdbc:dbase:file:///" + tmpDatabaseUrl ;
+
+ XInterface oDatabaseDoc = (XInterface) xMSF.createInstance
+ ("com.sun.star.sdb.OfficeDatabaseDocument") ;
+
+ if (oDatabaseDoc == null)
+ throw new StatusException("Could not get service 'com.sun.star.sdb.OfficeDatabaseDocument'", new Exception());
+
+ xDBDoc = UnoRuntime.queryInterface(
+ XOfficeDatabaseDocument.class,
+ oDatabaseDoc);
+ XInterface oObj = xDBDoc.getDataSource();
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ // Creating new DBase data source in the TEMP directory
+
+ XPropertySet xSrcProp = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+
+ xSrcProp.setPropertyValue("URL", tmpDatabaseUrl) ;
+
+ String databaseName = "NewDatabaseSource" + uniqueSuffix ;
+
+ // make sure that the DatabaseContext isn't already registered
+ try {
+ xDBContextNameServ.revokeObject(databaseName) ;
+ } catch (Exception e) {
+ log.println("Nothing to be removed - OK");
+ }
+
+ // registering source in DatabaseContext
+ XStorable store = UnoRuntime.queryInterface(XStorable.class, xDBDoc);
+ String aFile = utils.getOfficeTemp (Param.getMSF ())+"DataSource.odb";
+ store.storeAsURL(aFile,new PropertyValue[]{});
+
+ xDBContextNameServ.registerObject(databaseName, oObj) ;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding obj relation for interface XCompletedConnection
+ Object handler = Param.getMSF().createInstance
+ ("com.sun.star.sdb.InteractionHandler") ;
+
+ // dbase does not need user and password
+ tEnv.addObjRelation("UserAndPassword", new String[]{"",""}) ;
+
+ tEnv.addObjRelation("XCompletedConnection.Handler",
+ UnoRuntime.queryInterface(XInteractionHandler.class, handler)) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ODatasourceAdministrationDialog.java b/qadevOOo/tests/java/mod/_dbaccess/ODatasourceAdministrationDialog.java
new file mode 100644
index 000000000..d229d3eb9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/ODatasourceAdministrationDialog.java
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdb.DatasourceAdministrationDialog</code>. <p>
+*
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* <li> <code>com::sun::star::ui::dialogs::XExecutableDialog</code></li>
+* <li> <code>com::sun::star::sdb::DatasourceAdministrationDialog</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul> <p>
+*
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+*
+* @see com.sun.star.lang.XInitialization
+* @see com.sun.star.ui.dialogs.XExecutableDialog
+* @see com.sun.star.sdb.DatasourceAdministrationDialog
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.lang._XInitialization
+* @see ifc.ui.dialogs._XExecutableDialog
+* @see ifc.sdb._DatasourceAdministrationDialog
+* @see ifc.beans._XPropertySet
+*/
+public class ODatasourceAdministrationDialog extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sdb.DatasourceAdministrationDialog</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.sdb.DatasourceAdministrationDialog" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ODataSourceAdministrationDialog
+
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ODatasourceBrowser.java b/qadevOOo/tests/java/mod/_dbaccess/ODatasourceBrowser.java
new file mode 100644
index 000000000..1ccccf532
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/ODatasourceBrowser.java
@@ -0,0 +1,297 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.sdb.DataSourceBrowser</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * <li> <code>com::sun::star::util::XModifyBroadcaster</code></li>
+ * <li> <code>com::sun::star::awt::XTabController</code></li>
+ * <li> <code>com::sun::star::form::XFormController</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::frame::XDispatchProvider</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::frame::XController</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.container.XChild
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.util.XModifyBroadcaster
+ * @see com.sun.star.awt.XTabController
+ * @see com.sun.star.form.XFormController
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.frame.XDispatchProvider
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.frame.XController
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.container._XChild
+ * @see ifc.lang._XInitialization
+ * @see ifc.util._XModifyBroadcaster
+ * @see ifc.awt._XTabController
+ * @see ifc.form._XFormController
+ * @see ifc.container._XElementAccess
+ * @see ifc.frame._XDispatchProvider
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.frame._XController
+ * @see ifc.lang._XComponent
+ */
+public class ODatasourceBrowser extends TestCase {
+ XDesktop xDesktop;
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ System.setProperty("hideMe", "false");
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+ System.setProperty("hideMe", "true");
+
+ if (xTextDoc != null) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ *
+ * Creates a new text document disposing the old one if it was
+ * created. Using <code>Desktop</code> service get the frame
+ * of the document and with its help creates
+ * <code>DataSourceBrowser</code> dispatching the URL
+ * <code>'.component:DB/DataSourceBrowser'</code>. The
+ * component for testing is the controller of the
+ * <code>Browser</code> and it's got by searching its
+ * frame with the help of TextDocument frame, and obtaining
+ * the frame's controller. <p>
+ *
+ * <b>Note</b>: after creating the text document a short
+ * pause is needed to give a possibility to a frame to be
+ * created for the document. Else
+ * <code>Desktop.getCurrentFrame()</code> method can return
+ * <code>null</code> value. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDispatchProvider.URL'</code> for
+ * {@link ifc.frame._XDispatchProvider} </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController} : the model of
+ * the TextDocument. </li>
+ * <li> <code>'otherWindow'</code> for
+ * {@link ifc.frame._XController} : the window of
+ * the added shape. </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController} : the controller of
+ * the TextDocument. </li>
+ * <li> <code>'HasViewData'</code> for
+ * {@link ifc.frame._XController} : the
+ * <code>DataSourceBrowser</code> has no view data. </li>
+ * <li> <code>'XInitialization.args'</code> for
+ * {@link ifc.lang._XInitialization} : the arguments for
+ * the initialization</li>
+ * </ul>
+ *
+ * @see com.sun.star.frame.Desktop
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.frame.XFrame
+ * @see com.sun.star.frame.XController
+ * @see com.sun.star.frame.XDispatchProvider
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XFrame the_frame1 = xDesktop.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class, the_frame1);
+
+ XDispatch getting = null;
+
+ log.println("opening DatasourceBrowser");
+
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ XInterface oObj = the_frame2.getController();
+
+ Object[] params = new Object[3];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "CommandType";
+ param2.Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE);
+ params[1] = param2;
+
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "Command";
+ param3.Value = "biblio";
+ params[2] = param3;
+
+ XInitialization xInit = UnoRuntime.queryInterface(
+ XInitialization.class, oObj);
+ xInit.initialize(params);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "CommandButton");
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel shapeModel = aShape.getControl();
+
+ XControlAccess xCtrlAccess = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ secondController);
+ XControl xCtrl = null;
+
+ try {
+ xCtrl = xCtrlAccess.getControl(shapeModel);
+ } catch (com.sun.star.uno.Exception e) {
+ // Some exception occurs.FAILED
+ e.printStackTrace(log);
+ }
+
+ XWindow docWindow = UnoRuntime.queryInterface(XWindow.class,
+ xCtrl);
+ log.println("creating a new environment for ODatasourceBrowser object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelations for XInitialization
+ tEnv.addObjRelation("XInitialization.args", params);
+
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("Frame", the_frame1);
+ tEnv.addObjRelation("SecondModel", aModel1);
+ tEnv.addObjRelation("otherWindow", docWindow);
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("HasViewData", Boolean.FALSE);
+
+
+ //Adding relation for XDispatchProvider
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ ".uno:DataSourceBrowser/FormLetter");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class oDatasourceBrowser
diff --git a/qadevOOo/tests/java/mod/_dbaccess/OInteractionHandler.java b/qadevOOo/tests/java/mod/_dbaccess/OInteractionHandler.java
new file mode 100644
index 000000000..a5ec54f9e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/OInteractionHandler.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.task.XInteractionContinuation;
+import com.sun.star.task.XInteractionRequest;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdb.InteractionHandler</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::task::XInteractionHandler</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.task.XInteractionHandler
+* @see com.sun.star.sdb.InteractionHandler
+* @see ifc.task._XInteractionHandler
+*/
+public class OInteractionHandler extends TestCase {
+
+
+ private static class TestRequest implements XInteractionRequest {
+ public Object getRequest() {
+ return new SQLException("Test exception") ;
+ }
+
+ public XInteractionContinuation[] getContinuations() {
+ return new XInteractionContinuation[0] ;
+ }
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sdb.InteractionHandler</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XInteractionHandler.Request'</code> for
+ * {@link ifc.task._XInteractionHandler} : this relation
+ * is <code>com.sun.star.task.XInteractionRequest</code>
+ * interface implementation which depends on the component
+ * tested. In this case it emulates SQL error by returning
+ * <code>SQLException</code> object. </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ Object oInterface = Param.getMSF().createInstance(
+ "com.sun.star.sdb.InteractionHandler" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XInteractionHandler.Request", new TestRequest()) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_dbaccess/OQueryDesign.java b/qadevOOo/tests/java/mod/_dbaccess/OQueryDesign.java
new file mode 100644
index 000000000..1124d12f9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/OQueryDesign.java
@@ -0,0 +1,224 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._dbaccess;
+
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.uno.Exception;
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import util.SOfficeFactory;
+import com.sun.star.sdb.XDocumentDataSource;
+import com.sun.star.sdbc.XDataSource;
+
+public class OQueryDesign extends TestCase {
+
+ private static XDesktop xDesk;
+ private static XFrame xFrame;
+ private static final String sDataSourceName = "Bibliography";
+ private static XConnection xConn;
+ private static XTextDocument xTextDoc;
+
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesk = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(XDispatchProvider.class,xDesk);
+ XMultiServiceFactory xMSF = Param.getMSF();
+
+ // we use the first datasource
+ XNameAccess xNameAccess = UnoRuntime.queryInterface(
+ XNameAccess.class,
+ xMSF.createInstance("com.sun.star.sdb.DatabaseContext"));
+ XDataSource xDS = UnoRuntime.queryInterface(
+ XDataSource.class, xNameAccess.getByName( "Bibliography" ));
+
+ log.println("check XMultiServiceFactory");
+
+ xConn = xDS.getConnection("", "");
+
+ log.println( "opening QueryDesign" );
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/QueryDesign";
+ XDispatch getting = aProv.queryDispatch(the_url,"Query",12);
+ PropertyValue[] Args = new PropertyValue[2];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ Args[0] = param1;
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "QueryDesignView";
+ param2.Value = Boolean.FALSE;
+ Args[1] = param2;
+ param1.Name = "ActiveConnection";
+ param1.Value = xConn;
+ Args[1] = param2;
+ getting.dispatch(the_url,Args);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ Object oDBC = xMSF.createInstance( "com.sun.star.sdb.DatabaseContext" );
+
+ Object oDataSource = null;
+ XNameAccess xNA = UnoRuntime.queryInterface(XNameAccess.class, oDBC);
+ oDataSource = xNA.getByName(sDataSourceName);
+ UnoRuntime.queryInterface(XDocumentDataSource.class, oDataSource);
+
+ xFrame = DesktopTools.getCurrentFrame(xMSF);
+
+ SOfficeFactory SOF = null;
+
+ SOF = SOfficeFactory.getFactory( xMSF );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+
+ XModel xDocMod = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XFrame xTextFrame = xDocMod.getCurrentController().getFrame();
+
+ Object[] params = new Object[3];
+ param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+ param2 = new PropertyValue();
+ param2.Name = "Frame";
+ param2.Value = xTextFrame;
+ params[1] = param2;
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "QueryDesignView";
+ param3.Value = Boolean.TRUE;
+ params[2] = param3;
+
+
+ XInterface oObj = xFrame.getController();
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //Adding ObjRelations for XInitialization
+ tEnv.addObjRelation("XInitialization.args", params);
+
+ Object[] ExceptionParams = new Object[3];
+ PropertyValue ExceptionParam1 = new PropertyValue();
+ ExceptionParam1.Name = "DataSourceName";
+ ExceptionParam1.Value = "Bibliography2";
+ ExceptionParams[0] = ExceptionParam1;
+ PropertyValue ExceptionParam2 = new PropertyValue();
+ ExceptionParam2.Name = "Frame";
+ ExceptionParam2.Value = null;
+ ExceptionParams[1] = ExceptionParam2;
+ PropertyValue ExceptionParam3 = new PropertyValue();
+ ExceptionParam3.Name = "QueryDesignView";
+ ExceptionParam3.Value = Integer.valueOf(17);//Boolean.TRUE;
+ ExceptionParams[2] = ExceptionParam3;
+
+ tEnv.addObjRelation("XInitialization.ExceptionArgs", ExceptionParams);
+
+ tEnv.addObjRelation("Frame", xFrame);
+
+ tEnv.addObjRelation("XInitialization.xIni", getUninitializedObj(Param));
+
+ log.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+ private XInitialization getUninitializedObj(TestParameters Param) throws Exception {
+ // creating an object which ist not initialized
+
+ // get a model of a DataSource
+ Object oDBC = null;
+ XMultiServiceFactory xMSF;
+
+ xMSF = Param.getMSF();
+ oDBC = xMSF.createInstance( "com.sun.star.sdb.DatabaseContext" );
+
+ Object oDataSource = null;
+ XNameAccess xNA = UnoRuntime.queryInterface(XNameAccess.class, oDBC);
+ oDataSource = xNA.getByName(sDataSourceName);
+
+ XDocumentDataSource xDDS = UnoRuntime.queryInterface(XDocumentDataSource.class, oDataSource);
+ XModel xMod = UnoRuntime.queryInterface(XModel.class, xDDS.getDatabaseDocument ());
+
+ // get an instance of QueryDesign
+ Object oQueryDesign = xMSF.createInstance("com.sun.star.sdb.QueryDesign");
+
+ XController xCont = UnoRuntime.queryInterface(XController.class, oQueryDesign);
+
+ // marry them all
+ boolean bSuccess = xCont.attachModel(xMod);
+ if (!bSuccess)
+ {
+ throw new StatusException (Status.failed (
+ "Couldn't attach model"));
+ }
+
+ xMod.connectController(xCont);
+ xMod.setCurrentController(xCont);
+
+ return UnoRuntime.queryInterface(XInitialization.class, oQueryDesign);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ try {
+ xConn.close() ;
+ DesktopTools.closeDoc(xFrame);
+ DesktopTools.closeDoc(xTextDoc);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't close the connection") ;
+ e.printStackTrace(log) ;
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Connection was already closed. It's OK.") ;
+ }
+
+ }
+
+} // finish class oDatasourceBrowser
+
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java b/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java
new file mode 100644
index 000000000..6e0a758e0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/ORowSet.java
@@ -0,0 +1,608 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import ifc.sdb._XCompletedExecution;
+
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+import util.utils;
+import util.db.DataSource;
+import util.db.DataSourceDescriptor;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.CommandType;
+import com.sun.star.sdb.ParametersRequest;
+import com.sun.star.sdb.RowChangeEvent;
+import com.sun.star.sdb.XInteractionSupplyParameters;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XParameters;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.sdbc.XRowSet;
+import com.sun.star.sdbc.XRowUpdate;
+import com.sun.star.task.XInteractionAbort;
+import com.sun.star.task.XInteractionContinuation;
+import com.sun.star.task.XInteractionRequest;
+import com.sun.star.ucb.AuthenticationRequest;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.sdb.RowSet</code>. <p>
+ *
+ * The following files used by this test :
+ * <ul>
+ * <li><b> TestDB/TestDB.dbf </b> : the database file with some
+ * predefined fields described in <code>util.DBTools</code>.
+ * The copy of this file is always made in temp directory for
+ * testing purposes.</li>
+ * </ul>
+ * The following parameters in ini-file used by this test:
+ * <ul>
+ * <li><code>test.db.url</code> - URL to MySQL database.
+ * For example: <code>mysql://mercury:3306/api_current</code></li>
+ * <li><code>test.db.user</code> - user for MySQL database</li>
+ * <li><code>test.db.password</code> - password for MySQL database</li>
+ * </ul>
+ *
+ * @see com.sun.star.sdbc.RowSet
+ * @see com.sun.star.sdbcx.XRowLocate
+ * @see com.sun.star.sdbc.XResultSetUpdate
+ * @see com.sun.star.util.XCancellable
+ * @see com.sun.star.sdbc.XParameters
+ * @see com.sun.star.sdbc.XResultSetMetaDataSupplier
+ * @see com.sun.star.sdbcx.XDeleteRows
+ * @see com.sun.star.sdbc.XCloseable
+ * @see com.sun.star.sdbcx.XColumnsSupplier
+ * @see com.sun.star.sdb.XResultSetAccess
+ * @see com.sun.star.sdbc.XResultSet
+ * @see com.sun.star.sdbc.XColumnLocate
+ * @see com.sun.star.sdbc.XRowSet
+ * @see com.sun.star.sdb.RowSet
+ * @see com.sun.star.sdbc.XRowUpdate
+ * @see com.sun.star.sdb.XRowSetApproveBroadcaster
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.sdbc.XRow
+ * @see com.sun.star.sdbc.XWarningsSupplier
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.sdbcx.ResultSet
+ * @see com.sun.star.sdbc.ResultSet
+ * @see ifc.sdbc._RowSet
+ * @see ifc.sdbcx._XRowLocate
+ * @see ifc.sdbc._XResultSetUpdate
+ * @see ifc.util._XCancellable
+ * @see ifc.sdbc._XParameters
+ * @see ifc.sdbc._XResultSetMetaDataSupplier
+ * @see ifc.sdbcx._XDeleteRows
+ * @see ifc.sdbc._XCloseable
+ * @see ifc.sdbcx._XColumnsSupplier
+ * @see ifc.sdb._XResultSetAccess
+ * @see ifc.sdbc._XResultSet
+ * @see ifc.sdbc._XColumnLocate
+ * @see ifc.sdbc._XRowSet
+ * @see ifc.sdb._RowSet
+ * @see ifc.sdbc._XRowUpdate
+ * @see ifc.sdb._XRowSetApproveBroadcaster
+ * @see ifc.beans._XPropertySet
+ * @see ifc.sdbc._XRow
+ * @see ifc.sdbc._XWarningsSupplier
+ * @see ifc.lang._XComponent
+ * @see ifc.sdbcx._ResultSet
+ * @see ifc.sdbc._ResultSet
+ */
+public class ORowSet extends TestCase {
+
+ private static int uniqueSuffix = 0 ;
+ private DBTools dbTools = null ;
+ private static String origDB = null ;
+ String tableName = null;
+ DataSourceDescriptor srcInf = null;
+ boolean isMySQLDB = false;
+ protected static final String dbSourceName = "ORowSetDataSource";
+ public XConnection m_connection = null;
+ private Object m_rowSet = null;
+ private DataSource m_dataSource;
+ private String m_tableFile;
+
+ /**
+ * Initializes some class fields. Then creates DataSource, which serves
+ * as a single source for all tables created in the test.
+ * This DataSource then registered in the global
+ * <code>DatabaseContext</code> service. This data source's URL
+ * points to SOffice temp directory where tables are copied from
+ * <code>TestDocuments</code> directory on every environment
+ * creation.
+ * To create DataSource for MySQL database next parameters required
+ * in ini-file:
+ * <ul>
+ * <li><code>test.db.url</code> - URL to MySQL database.
+ * For example: <code>mysql://mercury:3306/api_current</code></li>
+ * <li><code>test.db.user</code> - user for MySQL database</li>
+ * <li><code>test.db.password</code> - password for MySQL database</li>
+ * </ul>
+ *
+ * @throws StatusException if DataSource can not be created or
+ * registered.
+ */
+ @Override
+ protected void initialize ( TestParameters Param, PrintWriter _log)
+ throws StatusException
+ {
+ XMultiServiceFactory orb = Param.getMSF();
+
+ String tmpDir = utils.getOfficeTemp( orb );
+
+ origDB = util.utils.getFullTestDocName("TestDB/testDB.dbf");
+
+ dbTools = new DBTools( orb );
+
+ // creating DataSource and registering it in DatabaseContext
+ String dbURL = (String) Param.get("test.db.url");
+ String dbUser = (String) Param.get("test.db.user");
+ String dbPassword = (String) Param.get("test.db.password");
+
+ log.println("Creating and registering DataSource ...");
+ srcInf = new DataSourceDescriptor( orb );
+ if (dbURL != null && dbUser != null && dbPassword != null)
+ {
+ isMySQLDB = true;
+ log.println("dbURL = " + dbURL);
+ log.println("dbUSER = " + dbUser);
+ log.println("dbPASSWORD = " + dbPassword);
+ //DataSource for mysql db
+ tableName = "soffice_test_table";
+ srcInf.URL = "jdbc:" + dbURL;
+ srcInf.IsPasswordRequired = Boolean.TRUE;
+ srcInf.Password = dbPassword;
+ srcInf.User = dbUser;
+ PropertyValue[] propInfo = new PropertyValue[1];
+ propInfo[0] = new PropertyValue();
+ propInfo[0].Name = "JavaDriverClass";
+ propInfo[0].Value = "org.gjt.mm.mysql.Driver";
+ srcInf.Info = propInfo;
+ }
+ else
+ {
+ srcInf.URL = "sdbc:dbase:" + DBTools.dirToUrl(tmpDir);
+ }
+ m_dataSource = srcInf.createDataSource();
+ m_dataSource.registerAs( dbSourceName, true );
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * The database (DBF) file is copied from test document directory
+ * into SOffice temp dir with unique name for each environment
+ * creation. If the file can't be copied (is not released)
+ * then another unique name is used (file name suffix incremented
+ * by 1).<p>
+ *
+ * <code>com.sun.star.sdb.RowSet</code> service created and its
+ * source is all rows from the current copy of the table. Then
+ * row set command ("select all rows from a table") is executed
+ * and cursor is positioned to the first row. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ORowSet.Connection'</code> for
+ * internal component test usage. Is used for
+ * closing connection when cleaning up environment. </li>
+ * <li> <code>'XRowSetApproveBroadcaster.ApproveChecker'</code> for
+ * {@link ifc.sdb._XRowSetApproveBroadcaster} interface
+ * implementation which made actions required </li>
+ * <li> <code>'CurrentRowData'</code> for
+ * {@link ifc.sdbc._XRow}, {@link ifc.sdbc._XRowUpdate} :
+ * exports types and values of the current row data.</li>
+ * <li> <code>'XColumnLocate.ColumnName'</code> for
+ * {@link ifc.sdbc._XColumnLocate} :
+ * the name of the first column of the table.</li>
+ * <li> <code>'XParameters.ParamValues'</code> for
+ * {@link ifc.sdbc._XParameters} :
+ * Collection of parameter types presented in the query. </li>
+ * <li> <code>'XRowUpdate.XRow'</code> for
+ * {@link ifc.sdbc._XRowUpdate} :
+ * <code>XRow</code> interface of the current component.</li>
+ * <li> <code>'XResultSetUpdate.UpdateTester'</code> for
+ * {@link ifc.sdbc._XResultSetUpdate} </li>
+ * </ul>
+ *
+ * @see com.sun.star.sdb.DatabaseContext
+ * @see com.sun.star.sdb.DataSource
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception
+ {
+ XMultiServiceFactory orb = Param.getMSF();
+ uniqueSuffix++;
+ boolean envCreatedOK = false ;
+
+ //initialize test table
+ if (isMySQLDB)
+ {
+ DBTools.DataSourceInfo legacyDescriptor = dbTools.newDataSourceInfo();
+ legacyDescriptor.Name = null;
+ legacyDescriptor.User = srcInf.User;
+ legacyDescriptor.Password = srcInf.Password;
+ legacyDescriptor.Info = srcInf.Info;
+ legacyDescriptor.URL = srcInf.URL;
+ legacyDescriptor.IsPasswordRequired = srcInf.IsPasswordRequired;
+ dbTools.initTestTableUsingJDBC(tableName, legacyDescriptor);
+ }
+ else
+ {
+ String oldF = null ;
+ String newF = null ;
+ String tempFolder = utils.getOfficeTemp( orb );
+ do
+ {
+ tableName = "ORowSet_tmp" + uniqueSuffix ;
+ oldF = utils.getFullURL(origDB);
+ newF = tempFolder + tableName + ".dbf";
+ }
+ while ( !utils.tryOverwriteFile( orb, oldF, newF ) );
+ m_tableFile = newF;
+ }
+
+ try
+ {
+ m_rowSet = orb.createInstance("com.sun.star.sdb.RowSet");
+
+ XPropertySet rowSetProps = UnoRuntime.queryInterface( XPropertySet.class, m_rowSet );
+
+ log.println("Trying to open: " + tableName);
+
+ rowSetProps.setPropertyValue("DataSourceName", dbSourceName);
+ rowSetProps.setPropertyValue("Command", tableName);
+ rowSetProps.setPropertyValue("CommandType",
+ Integer.valueOf(CommandType.TABLE));
+
+ final XRowSet rowSet = UnoRuntime.queryInterface( XRowSet.class, m_rowSet);
+ rowSet.execute();
+ m_connection = UnoRuntime.queryInterface( XConnection.class, rowSetProps.getPropertyValue("ActiveConnection") );
+
+ XResultSet xRes = UnoRuntime.queryInterface( XResultSet.class, m_rowSet );
+ xRes.first();
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( (XInterface)m_rowSet );
+
+ // Adding obj relation for XRowSetApproveBroadcaster test
+ {
+ final XResultSet resultSet = UnoRuntime.queryInterface( XResultSet.class, m_rowSet );
+ final XResultSetUpdate resultSetUpdate = UnoRuntime.queryInterface( XResultSetUpdate.class, m_rowSet );
+ final XRowUpdate rowUpdate = UnoRuntime.queryInterface(XRowUpdate.class, m_rowSet );
+ final PrintWriter logF = log ;
+ tEnv.addObjRelation( "XRowSetApproveBroadcaster.ApproveChecker",
+ new ifc.sdb._XRowSetApproveBroadcaster.RowSetApproveChecker()
+ {
+ public void moveCursor()
+ {
+ try
+ {
+ resultSet.beforeFirst();
+ resultSet.afterLast();
+ resultSet.first();
+ }
+ catch (com.sun.star.sdbc.SQLException e)
+ {
+ logF.println("### _XRowSetApproveBroadcaster.RowSetApproveChecker.moveCursor() :");
+ e.printStackTrace(logF);
+ throw new StatusException( "RowSetApproveChecker.moveCursor failed", e );
+ }
+ }
+ public RowChangeEvent changeRow()
+ {
+ try
+ {
+ resultSet.first();
+ rowUpdate.updateString(1, "ORowSetTest2");
+ resultSetUpdate.updateRow();
+ }
+ catch (com.sun.star.sdbc.SQLException e)
+ {
+ logF.println("### _XRowSetApproveBroadcaster.RowSetApproveChecker.changeRow() :");
+ e.printStackTrace(logF);
+ throw new StatusException( "RowSetApproveChecker.changeRow failed", e );
+ }
+ RowChangeEvent ev = new RowChangeEvent();
+ ev.Action = com.sun.star.sdb.RowChangeAction.UPDATE ;
+ ev.Rows = 1 ;
+
+ return ev ;
+ }
+ public void changeRowSet()
+ {
+ try
+ {
+ // since we gave the row set a parametrized statement, we need to ensure the
+ // parameter is actually filled, otherwise we would get an empty result set,
+ // which would imply some further tests failing
+ XParameters rowSetParams = UnoRuntime.queryInterface( XParameters.class, resultSet );
+ rowSetParams.setString( 1, "String2" );
+ rowSet.execute();
+ resultSet.first();
+ }
+ catch (com.sun.star.sdbc.SQLException e)
+ {
+ logF.println("### _XRowSetApproveBroadcaster.RowSetApproveChecker.changeRowSet() :");
+ e.printStackTrace(logF);
+ throw new StatusException( "RowSetApproveChecker.changeRowSet failed", e );
+ }
+ }
+ }
+ );
+ }
+ // Adding relations for XRow as a Vector with all data
+ // of current row of RowSet.
+
+ ArrayList<Object> rowData = new ArrayList<Object>();
+
+ for (int i = 0; i < DBTools.TST_TABLE_VALUES[0].length; i++) {
+ rowData.add(DBTools.TST_TABLE_VALUES[0][i]);
+ }
+
+ // here XRef must be added
+ // here XBlob must be added
+ // here XClob must be added
+ // here XArray must be added
+
+ tEnv.addObjRelation("CurrentRowData", rowData);
+
+ // Adding relation for XColumnLocate ifc test
+ tEnv.addObjRelation( "XColumnLocate.ColumnName", DBTools.TST_STRING_F );
+
+ // Adding relation for XCompletedExecution
+ tEnv.addObjRelation( "InteractionHandlerChecker", new InteractionHandlerImpl() );
+ String sqlCommand = isMySQLDB
+ ? "SELECT Column0 FROM soffice_test_table WHERE ( ( Column0 = :param1 ) )"
+ : "SELECT \"_TEXT\" FROM \"" + tableName + "\" WHERE ( ( \"_TEXT\" = :param1 ) )";
+ rowSetProps.setPropertyValue( "DataSourceName", dbSourceName );
+ rowSetProps.setPropertyValue( "Command", sqlCommand );
+ rowSetProps.setPropertyValue( "CommandType", Integer.valueOf(CommandType.COMMAND) );
+
+ // Adding relation for XParameters ifc test
+ tEnv.addObjRelation( "XParameters.ParamValues", new ArrayList<String>() );
+
+ // Adding relation for XRowUpdate
+ final XRow row = UnoRuntime.queryInterface( XRow.class, m_rowSet );
+ tEnv.addObjRelation("XRowUpdate.XRow", row);
+
+ // Adding relation for XResultSetUpdate
+ {
+ final XResultSet resultSet = UnoRuntime.queryInterface( XResultSet.class, m_rowSet );
+ final XRowUpdate rowUpdate = UnoRuntime.queryInterface( XRowUpdate.class, m_rowSet );
+
+ tEnv.addObjRelation("XResultSetUpdate.UpdateTester",
+ new ifc.sdbc._XResultSetUpdate.UpdateTester()
+ {
+ String lastUpdate = null ;
+
+ public int rowCount() throws SQLException
+ {
+ int prevPos = resultSet.getRow();
+ resultSet.last();
+ int count = resultSet.getRow();
+ resultSet.absolute(prevPos);
+
+ return count ;
+ }
+
+ public void update() throws SQLException
+ {
+ lastUpdate = row.getString(1);
+ lastUpdate += "_" ;
+ rowUpdate.updateString(1, lastUpdate);
+ }
+
+ public boolean wasUpdated() throws SQLException
+ {
+ String getStr = row.getString(1);
+ return lastUpdate.equals(getStr);
+ }
+
+ public int currentRow() throws SQLException
+ {
+ return resultSet.getRow();
+ }
+ }
+ );
+ }
+
+ envCreatedOK = true ;
+ return tEnv;
+
+ }
+ finally
+ {
+ if (!envCreatedOK)
+ {
+ try
+ {
+ m_connection.close();
+ }
+ catch(Exception ex)
+ {
+ System.out.println("caught exception: " + ex);
+ }
+ }
+ }
+
+ } // finish method getTestEnvironment
+
+ /**
+ * Closes connection of <code>RowSet</code> instance created.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log)
+ {
+ String doing = null;
+ try
+ {
+ doing = "revoking data source registration";
+ log.println( doing );
+ m_dataSource.revokeRegistration();
+
+ doing = "closing database document";
+ log.println( doing );
+ XModel databaseDocModel = UnoRuntime.queryInterface( XModel.class,
+ m_dataSource.getDatabaseDocument().getDatabaseDocument() );
+ String documentFile = databaseDocModel.getURL();
+
+ XCloseable closeModel = UnoRuntime.queryInterface( XCloseable.class,
+ m_dataSource.getDatabaseDocument().getDatabaseDocument() );
+ closeModel.close( true );
+
+ if ( m_rowSet != null )
+ {
+ doing = "disposing row set";
+ log.println( doing );
+ XComponent rowSetComponent = UnoRuntime.queryInterface( XComponent.class, m_rowSet );
+ rowSetComponent.dispose();
+ }
+
+ try
+ {
+ doing = "closing connection";
+ log.println( doing );
+ m_connection.close();
+ }
+ catch (com.sun.star.lang.DisposedException e)
+ {
+ log.println( "already closed - okay." );
+ }
+
+ doing = "deleting database file (" + documentFile + ")";
+ log.println( doing );
+ impl_deleteFile( documentFile );
+
+ if ( m_tableFile != null )
+ {
+ doing = "deleting dBase table file (" + m_tableFile + ")";
+ log.println( doing );
+ impl_deleteFile( m_tableFile );
+ }
+ }
+ catch (com.sun.star.uno.Exception e)
+ {
+ log.println( "error: ");
+ e.printStackTrace(log);
+ }
+ }
+
+ private final void impl_deleteFile( final String _file )
+ {
+ java.io.File file = new java.io.File( _file );
+
+ boolean bDeleteOk = file.delete();
+ if (!bDeleteOk && file.exists())
+ file.deleteOnExit();
+ }
+
+ /**
+ * Implementation of interface _XCompletedExecution.CheckInteractionHandler
+ * for the XCompletedExecution test
+ * @see ifc.sdb._XCompletedExecution
+ */
+ private static class InteractionHandlerImpl implements _XCompletedExecution.CheckInteractionHandler {
+
+ private boolean handlerWasUsed = false;
+ private PrintWriter log;
+
+ InteractionHandlerImpl() throws UnsupportedEncodingException {
+ log = new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"));
+ }
+
+ public boolean checkInteractionHandler() {
+ return handlerWasUsed;
+ }
+
+ public void handle(XInteractionRequest xInteractionRequest) {
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: handle called.");
+ boolean abort = false;
+
+ Object o = xInteractionRequest.getRequest();
+ if (o instanceof ParametersRequest) {
+ }
+ else if (o instanceof AuthenticationRequest) {
+ log.println("### The request in XCompletedExecution is of type 'AuthenticationRequest'");
+ log.println("### This is not implemented in ORowSet.InteractionHandlerImpl test -> abort.");
+ abort = true;
+ }
+ else {
+ log.println("### Unknown request:" + o.toString());
+ log.println("### This is not implemented in ORowSet.InteractionHandlerImpl test -> abort.");
+ abort = true;
+ }
+
+ XInteractionContinuation[]xCont = xInteractionRequest.getContinuations();
+ XInteractionSupplyParameters xParamCallback = null;
+ for(int i=0; i<xCont.length; i++) {
+ if (abort) {
+ XInteractionAbort xAbort = null;
+ xAbort = UnoRuntime.queryInterface(XInteractionAbort.class, xCont[i]);
+ if (xAbort != null)
+ xAbort.select();
+ return;
+ }
+ else {
+ xParamCallback = UnoRuntime.queryInterface(XInteractionSupplyParameters.class, xCont[i]);
+ if (xParamCallback != null)
+ break;
+ }
+ }
+ if (xParamCallback != null) {
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: supplying parameters.");
+ handlerWasUsed = true;
+ PropertyValue[] prop = new PropertyValue[1];
+ prop[0] = new PropertyValue();
+ prop[0].Name = "param1";
+ prop[0].Value = "Hi.";
+
+ xParamCallback.setParameters(prop);
+ xParamCallback.select();
+ }
+ else { // we should never reach this: abort has to be true first.
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: Got no " +
+ "'XInteractionSupplyParameters' and no 'XInteractionAbort'.");
+ }
+ }
+
+ public void setLog(PrintWriter log) {
+ this.log = log;
+ }
+
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/OSQLMessageDialog.java b/qadevOOo/tests/java/mod/_dbaccess/OSQLMessageDialog.java
new file mode 100644
index 000000000..2fe02240c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/OSQLMessageDialog.java
@@ -0,0 +1,127 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.sdb.ErrorMessageDialog</code>.
+ * <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * <li> <code>com::sun::star::sdb::ErrorMessageDialog</code></li>
+ * <li> <code>com::sun::star::ui::dialogs::XExecutableDialog</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.sdb.ErrorMessageDialog
+ * @see com.sun.star.ui.dialogs.XExecutableDialog
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.sdb._ErrorMessageDialog
+ * @see ifc.ui.dialogs._XExecutableDialog
+ * @see ifc.beans._XPropertySet
+ */
+public class OSQLMessageDialog extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ *
+ * Creates an instance of the service
+ * <code>com.sun.star.sdb.ErrorMessageDialog</code>. Object relations
+ * created :
+ * <ul>
+ * <li> <code>'ERR1', 'ERR2'</code> for {@link ifc.sdb._ErrorMessageDialog}</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ Object err1 = null;
+ Object err2 = null;
+
+ oInterface = Param.getMSF().createInstance(
+ "com.sun.star.sdb.ErrorMessageDialog");
+
+ err1 = new com.sun.star.sdbc.SQLException("err1");
+ err2 = new com.sun.star.sdbc.SQLException("err2");
+
+ oObj = (XInterface) oInterface;
+
+ // create XWindow for Object relations...
+ com.sun.star.awt.XToolkit xToolkit = UnoRuntime.queryInterface(
+ com.sun.star.awt.XToolkit.class,
+ Param.getMSF().createInstance("com.sun.star.awt.Toolkit"));
+
+ // Describe the properties of the container window.
+ com.sun.star.awt.WindowDescriptor aDescriptor = new com.sun.star.awt.WindowDescriptor();
+
+ aDescriptor.Type = com.sun.star.awt.WindowClass.TOP;
+ aDescriptor.WindowServiceName = "window";
+ aDescriptor.ParentIndex = -1;
+ aDescriptor.Parent = null;
+ aDescriptor.Bounds = new com.sun.star.awt.Rectangle(0, 0, 0, 0);
+
+ aDescriptor.WindowAttributes = com.sun.star.awt.WindowAttribute.BORDER
+ | com.sun.star.awt.WindowAttribute.MOVEABLE
+ | com.sun.star.awt.WindowAttribute.SIZEABLE
+ | com.sun.star.awt.WindowAttribute.CLOSEABLE;
+
+ com.sun.star.awt.XWindowPeer xPeer = xToolkit.createWindow(aDescriptor);
+
+ com.sun.star.awt.XWindow xWindow = UnoRuntime.queryInterface(
+ com.sun.star.awt.XWindow.class, xPeer);
+
+ log.println(" creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("add ObjectRelations err1 and err2 for 'ErrorMessageDialog'");
+ tEnv.addObjRelation("ERR1", err1);
+ tEnv.addObjRelation("ERR2", err2);
+ tEnv.addObjRelation("ERR_XWindow", xWindow);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ @Override public void disposeTestEnvironment(
+ TestEnvironment tEnv, TestParameters tParam)
+ {
+ UnoRuntime.queryInterface(
+ com.sun.star.lang.XComponent.class,
+ (com.sun.star.awt.XWindow) tEnv.getObjRelation("ERR_XWindow"))
+ .dispose();
+ super.disposeTestEnvironment(tEnv, tParam);
+ }
+} // finish class OSQLMessageDialog
+
diff --git a/qadevOOo/tests/java/mod/_dbaccess/OSingleSelectQueryComposer.java b/qadevOOo/tests/java/mod/_dbaccess/OSingleSelectQueryComposer.java
new file mode 100644
index 000000000..272688f8e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/OSingleSelectQueryComposer.java
@@ -0,0 +1,245 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.CommandType;
+import com.sun.star.sdb.XSingleSelectQueryAnalyzer;
+import com.sun.star.sdb.XSingleSelectQueryComposer;
+import com.sun.star.sdbc.XDataSource;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.sdbcx.XColumnsSupplier;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.sdb.DataSource</code>.
+ * <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::sdbc::RowSet</code></li>
+ * <li> <code>com::sun::star::sdbcx::XRowLocate</code></li>
+ * <li> <code>com::sun::star::sdbc::XResultSetUpdate</code></li>
+ * <li> <code>com::sun::star::util::XCancellable</code></li>
+ * <li> <code>com::sun::star::sdbc::XParameters</code></li>
+ * <li> <code>com::sun::star::sdbc::XResultSetMetaDataSupplier</code></li>
+ * <li> <code>com::sun::star::sdbcx::XDeleteRows</code></li>
+ * <li> <code>com::sun::star::sdbc::XCloseable</code></li>
+ * <li> <code>com::sun::star::sdbcx::XColumnsSupplier</code></li>
+ * <li> <code>com::sun::star::sdb::XResultSetAccess</code></li>
+ * <li> <code>com::sun::star::sdbc::XResultSet</code></li>
+ * <li> <code>com::sun::star::sdbc::XColumnLocate</code></li>
+ * <li> <code>com::sun::star::sdbc::XRowSet</code></li>
+ * <li> <code>com::sun::star::sdb::RowSet</code></li>
+ * <li> <code>com::sun::star::sdbc::XRowUpdate</code></li>
+ * <li> <code>com::sun::star::sdb::XRowSetApproveBroadcaster</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::sdbc::XRow</code></li>
+ * <li> <code>com::sun::star::sdbc::XWarningsSupplier</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::sdbcx::ResultSet</code></li>
+ * <li> <code>com::sun::star::sdbc::ResultSet</code></li>
+ * </ul>
+ * <p>
+ * The following files used by this test :
+ * <ul>
+ * <li><b> TestDB/TestDB.dbf </b> : the database file with some predefined
+ * fields described in <code>util.DBTools</code>. The copy of this file is
+ * always made in temp directory for testing purposes.</li>
+ * </ul>
+ * <p>
+ * The following parameters in ini-file used by this test:
+ * <ul>
+ * <li><code>test.db.url</code> - URL to MySQL database. For example:
+ * <code>mysql://mercury:3306/api_current</code></li>
+ * <li><code>test.db.user</code> - user for MySQL database</li>
+ * <li><code>test.db.password</code> - password for MySQL database</li>
+ * </ul>
+ * <p>
+ *
+ * @see com.sun.star.sdbc.RowSet
+ * @see com.sun.star.sdbcx.XRowLocate
+ * @see com.sun.star.sdbc.XResultSetUpdate
+ * @see com.sun.star.util.XCancellable
+ * @see com.sun.star.sdbc.XParameters
+ * @see com.sun.star.sdbc.XResultSetMetaDataSupplier
+ * @see com.sun.star.sdbcx.XDeleteRows
+ * @see com.sun.star.sdbc.XCloseable
+ * @see com.sun.star.sdbcx.XColumnsSupplier
+ * @see com.sun.star.sdb.XResultSetAccess
+ * @see com.sun.star.sdbc.XResultSet
+ * @see com.sun.star.sdbc.XColumnLocate
+ * @see com.sun.star.sdbc.XRowSet
+ * @see com.sun.star.sdb.RowSet
+ * @see com.sun.star.sdbc.XRowUpdate
+ * @see com.sun.star.sdb.XRowSetApproveBroadcaster
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.sdbc.XRow
+ * @see com.sun.star.sdbc.XWarningsSupplier
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.sdbcx.ResultSet
+ * @see com.sun.star.sdbc.ResultSet
+ * @see ifc.sdbc._RowSet
+ * @see ifc.sdbcx._XRowLocate
+ * @see ifc.sdbc._XResultSetUpdate
+ * @see ifc.util._XCancellable
+ * @see ifc.sdbc._XParameters
+ * @see ifc.sdbc._XResultSetMetaDataSupplier
+ * @see ifc.sdbcx._XDeleteRows
+ * @see ifc.sdbc._XCloseable
+ * @see ifc.sdbcx._XColumnsSupplier
+ * @see ifc.sdb._XResultSetAccess
+ * @see ifc.sdbc._XResultSet
+ * @see ifc.sdbc._XColumnLocate
+ * @see ifc.sdbc._XRowSet
+ * @see ifc.sdb._RowSet
+ * @see ifc.sdbc._XRowUpdate
+ * @see ifc.sdb._XRowSetApproveBroadcaster
+ * @see ifc.beans._XPropertySet
+ * @see ifc.sdbc._XRow
+ * @see ifc.sdbc._XWarningsSupplier
+ * @see ifc.lang._XComponent
+ * @see ifc.sdbcx._ResultSet
+ * @see ifc.sdbc._ResultSet
+ */
+public class OSingleSelectQueryComposer extends TestCase {
+
+ protected static final String dbSourceName = "OSingleSelectQueryComposerDataSource";
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ *
+ * Object relations created :
+ * <ul>SingleSelectQueryAnalyzer
+
+ * <li> <code>'xComposer'</code> for
+ * {@link ifc.sdb._XSingleSelectQueryAnalyzer} interface
+ * <li> <code>'xQueryAna'</code> for
+ * {@link ifc.sdb._XSingleSelectQueryComposer} interface
+ * <li> <code>'xProp'</code> for
+ * {@link ifc.sdb._XSingleSelectQueryComposer} interface
+ * <li> <code>'colName'</code> for
+ * {@link ifc.sdb._XSingleSelectQueryComposer} interface
+ * <li> <code>'xResultSet'</code> for
+ * {@link ifc.sdb._XSingleSelectQueryComposer} interface
+ * </ul>
+ *
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ XMultiServiceFactory xMSF = null;
+ xMSF = Param.getMSF();
+
+ XNameAccess xNameAccess = UnoRuntime.queryInterface(XNameAccess.class,
+ xMSF.createInstance("com.sun.star.sdb.DatabaseContext"));
+ // we use the first datasource
+ XDataSource xDS = UnoRuntime.queryInterface(XDataSource.class,
+ xNameAccess.getByName("Bibliography"));
+
+ log.println("check XMultiServiceFactory");
+ XMultiServiceFactory xConn = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, xDS.getConnection("", ""));
+
+ log.println("check getAvailableServiceNames");
+ String[] sServiceNames = xConn.getAvailableServiceNames();
+ if (!sServiceNames[0]
+ .equals("com.sun.star.sdb.SingleSelectQueryComposer")) {
+ log.println("Service 'SingleSelectQueryComposer' not supported");
+ }
+
+ oInterface = xConn.createInstance(sServiceNames[0]);
+ Object oRowSet = xMSF.createInstance("com.sun.star.sdb.RowSet");
+
+ XPropertySet xSetProp = UnoRuntime.queryInterface(XPropertySet.class,
+ oRowSet);
+
+ xSetProp.setPropertyValue("DataSourceName", "Bibliography");
+ xSetProp.setPropertyValue("Command", "biblio");
+ xSetProp.setPropertyValue("CommandType",
+ Integer.valueOf(CommandType.TABLE));
+
+ com.sun.star.sdbc.XRowSet xORowSet = UnoRuntime.queryInterface(
+ com.sun.star.sdbc.XRowSet.class, oRowSet);
+
+ xORowSet.execute();
+
+ XColumnsSupplier xColSup = UnoRuntime.queryInterface(
+ XColumnsSupplier.class, oRowSet);
+
+ XNameAccess xCols = xColSup.getColumns();
+
+ XPropertySet xCol = (XPropertySet) AnyConverter.toObject(new Type(
+ XPropertySet.class),
+ xCols.getByName(xCols.getElementNames()[0]));
+
+ XSingleSelectQueryAnalyzer xQueryAna = UnoRuntime.queryInterface(
+ XSingleSelectQueryAnalyzer.class, oInterface);
+
+ // XSingleSelectQueryComposer
+ XSingleSelectQueryComposer xComposer = UnoRuntime.queryInterface(
+ XSingleSelectQueryComposer.class, xQueryAna);
+ xQueryAna.setQuery("SELECT * FROM \"biblio\"");
+
+ oObj = (XInterface) oInterface;
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ log.println(" creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // for XSingleSelectQueryAnalyzer
+ tEnv.addObjRelation("xComposer", xComposer);
+
+ // for XSingleSelectQueryComposer
+ tEnv.addObjRelation("xQueryAna", xQueryAna);
+
+ tEnv.addObjRelation("xProp", xCol);
+ tEnv.addObjRelation("colName", xCols.getElementNames()[0]);
+
+ XResultSet xResultSet = UnoRuntime.queryInterface(XResultSet.class,
+ oRowSet);
+ tEnv.addObjRelation("xResultSet", xResultSet);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+ /**
+ * Closes connection of <code>RowSet</code> instance created.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java b/qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java
new file mode 100644
index 000000000..dafdd9eaf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java
@@ -0,0 +1,426 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.form.XBoundComponent;
+import com.sun.star.form.XGridColumnFactory;
+import com.sun.star.form.XLoadable;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+* Test for object which represents the control of the Grid model. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::util::XModifyBroadcaster</code></li>
+* <li> <code>com::sun::star::form::XGridFieldDataSupplier</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::form::XGrid</code></li>
+* <li> <code>com::sun::star::awt::XControl</code></li>
+* <li> <code>com::sun::star::util::XModeSelector</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::awt::XWindow</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::frame::XDispatch</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::frame::XDispatchProviderInterception</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::awt::XView</code></li>
+* <li> <code>com::sun::star::container::XContainer</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.util.XModifyBroadcaster
+* @see com.sun.star.form.XGridFieldDataSupplier
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.form.XGrid
+* @see com.sun.star.awt.XControl
+* @see com.sun.star.util.XModeSelector
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.awt.XWindow
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.frame.XDispatch
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.frame.XDispatchProviderInterception
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.awt.XView
+* @see com.sun.star.container.XContainer
+* @see ifc.util._XModifyBroadcaster
+* @see ifc.form._XGridFieldDataSupplier
+* @see ifc.view._XSelectionSupplier
+* @see ifc.form._XGrid
+* @see ifc.awt._XControl
+* @see ifc.util._XModeSelector
+* @see ifc.container._XElementAccess
+* @see ifc.awt._XWindow
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.frame._XDispatch
+* @see ifc.container._XEnumerationAccess
+* @see ifc.form._XBoundComponent
+* @see ifc.frame._XDispatchProviderInterception
+* @see ifc.container._XIndexAccess
+* @see ifc.lang._XComponent
+* @see ifc.awt._XView
+* @see ifc.container._XContainer
+*/
+public class SbaXGridControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ //closing the appearing dialog before disposing the document
+ XInterface toolkit = null;
+
+ try {
+ toolkit = (XInterface) tParam.getMSF()
+ .createInstance("com.sun.star.awt.Toolkit");
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't get toolkit");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't get toolkit", e);
+ }
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ Object atw = tk.getActiveTopWindow();
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ atw);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XInterface button = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON);
+
+ XAccessibleAction action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, button);
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iob) {
+ log.println("couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close dialog");
+ }
+
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * For object creation first a
+ * <code>com.sun.star.form.component.GridControl<code> instance
+ * is added to the <code>ControlShape</code>. Then this model's
+ * control is retrieved.
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} test : <code>XGraphics</code>
+ * object different that belong to the object tested.</li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} </li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} </li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} for switching focus.</li>
+ * <li> <code>'XDispatch.URL'</code> for
+ * {@link ifc.frame._XDispatch} the url which moves
+ * DB cursor to the next row (".uno:FormSlots/moveToNext").</li>
+ * <li> <code>'XContainer.Container'</code> for
+ * {@link ifc.container._XContainer} as the component created
+ * doesn't support <code>XContainer</code> itself, but
+ * it is supported by its model. So this model is passed.</li>
+ * <li> <code>'INSTANCE'</code> for
+ * {@link ifc.container._XContainer} the instance to be
+ * inserted into collection. Is a column instance.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XPropertySet aControl = null;
+ XPropertySet aControl2 = null;
+ XPropertySet aControl3 = null;
+ XPropertySet aControl4 = null;
+ XGridColumnFactory columns = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = createGrid(xTextDoc, 3000, 4500, 15000, 10000);
+
+ XControlModel the_Model = aShape.getControl();
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XLoadable formLoader = FormTools.bindForm(xTextDoc);
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ columns = UnoRuntime.queryInterface(
+ XGridColumnFactory.class, the_Model);
+ aControl = columns.createColumn("TextField");
+ aControl.setPropertyValue("DataField", "Identifier");
+ aControl.setPropertyValue("Label", "Identifier");
+ aControl2 = columns.createColumn("TextField");
+ aControl2.setPropertyValue("DataField", "Publisher");
+ aControl2.setPropertyValue("Label", "Publisher");
+ aControl3 = columns.createColumn("TextField");
+ aControl3.setPropertyValue("DataField", "Author");
+ aControl3.setPropertyValue("Label", "Author");
+ aControl4 = columns.createColumn("TextField");
+ aControl4.setPropertyValue("DataField", "Title");
+ aControl4.setPropertyValue("Label", "Title");
+
+ XNameContainer aContainer = UnoRuntime.queryInterface(
+ XNameContainer.class, the_Model);
+
+ aContainer.insertByName("First", aControl);
+ aContainer.insertByName("Second", aControl2);
+
+ //now get the OGridControl
+ oObj = the_access.getControl(the_Model);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+
+ // creating another window
+ aShape = FormTools.createControlShape(xTextDoc, 3000, 4500, 15000,
+ 10000, "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ the_Model = aShape.getControl();
+
+
+ //Try to query XControlAccess
+ the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the TextControl
+ XWindow win = null;
+ Object cntrl = null;
+
+ cntrl = the_access.getControl(the_Model);
+ win = UnoRuntime.queryInterface(XWindow.class, cntrl);
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Relations for XSelectionSupplier
+ tEnv.addObjRelation("Selections",
+ new Object[] {
+ new Object[] { Integer.valueOf(0) }, new Object[] { Integer.valueOf(1) }
+ });
+ tEnv.addObjRelation("Comparer",
+ new Comparator<Integer>() {
+ public int compare(Integer o1, Integer o2) {
+ return o1.compareTo(o2);
+ }
+ });
+
+
+ //Relation for XContainer
+ tEnv.addObjRelation("XContainer.Container", aContainer);
+ tEnv.addObjRelation("INSTANCE", aControl3);
+ tEnv.addObjRelation("INSTANCE2", aControl4);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+
+ // Adding relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow", win);
+
+ // Adding relation for XDispatch
+ URL url = new URL();
+ url.Complete = ".uno:FormSlots/moveToNext";
+
+
+ //url.Complete = ".uno:GridSlots/RowHeight";
+ //url.Complete = ".uno:GridSlots/RowHeight" ;
+ tEnv.addObjRelation("XDispatch.URL", url);
+
+ log.println("ImplName: " + utils.getImplName(oObj));
+
+ FormTools.switchDesignOf(Param.getMSF(), xTextDoc);
+
+ // adding relation for XUpdateBroadcaster
+ final XInterface ctrl = oObj;
+ final XLoadable formLoaderF = formLoader;
+ final XPropertySet ps = UnoRuntime.queryInterface(
+ XPropertySet.class, aControl2);
+ tEnv.addObjRelation("XUpdateBroadcaster.Checker",
+ new ifc.form._XUpdateBroadcaster.UpdateChecker() {
+ private String lastText = "";
+
+ public void update() throws com.sun.star.uno.Exception {
+ if (!formLoaderF.isLoaded()) {
+ formLoaderF.load();
+ }
+
+ lastText = "_" + ps.getPropertyValue("Text");
+ ps.setPropertyValue("Text", lastText);
+ }
+
+ public void commit() throws com.sun.star.sdbc.SQLException {
+ XBoundComponent bound = UnoRuntime.queryInterface(
+ XBoundComponent.class, ctrl);
+ XResultSetUpdate update = UnoRuntime.queryInterface(
+ XResultSetUpdate.class,
+ formLoaderF);
+
+ bound.commit();
+ update.updateRow();
+ }
+
+ public boolean wasCommited() throws com.sun.star.uno.Exception {
+ String getS = (String) ps.getPropertyValue("Text");
+
+ return lastText.equals(getS);
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ public static XControlShape createGrid(XComponent oDoc, int height,
+ int width, int x, int y) throws Exception {
+ Size size = new Size();
+ Point position = new Point();
+ XControlShape oCShape = null;
+ XControlModel aControl = null;
+
+ //get MSF
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ oDoc);
+
+ Object oInt = oDocMSF.createInstance(
+ "com.sun.star.drawing.ControlShape");
+ Object aCon = oDocMSF.createInstance(
+ "com.sun.star.form.component.GridControl");
+ XPropertySet model_props = UnoRuntime.queryInterface(
+ XPropertySet.class, aCon);
+ model_props.setPropertyValue("DefaultControl",
+ "com.sun.star.form.control.InteractionGridControl");
+ aControl = UnoRuntime.queryInterface(
+ XControlModel.class, aCon);
+ oCShape = UnoRuntime.queryInterface(
+ XControlShape.class, oInt);
+ size.Height = height;
+ size.Width = width;
+ position.X = x;
+ position.Y = y;
+ oCShape.setSize(size);
+ oCShape.setPosition(position);
+
+ oCShape.setControl(aControl);
+
+ return oCShape;
+ } // finish createGrid
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java b/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java
new file mode 100644
index 000000000..384edb85b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java
@@ -0,0 +1,267 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._dbaccess;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XStorable;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.XDocumentDataSource;
+import com.sun.star.sdb.XQueryDefinitionsSupplier;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XIsolatedConnection;
+import com.sun.star.sdbc.XStatement;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import util.DesktopTools;
+import util.utils;
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>::com::sun::star::accessibility::XAccessible</code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * <p>
+ *
+ * @see com.sun.star.accessibility.XAccessible
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessible
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ */
+public class TableWindowAccessibility extends TestCase {
+ XWindow xWindow = null;
+ String aFile = "";
+ XIsolatedConnection isolConnection = null;
+ XComponent QueryComponent = null;
+ String user = "";
+ String password = "";
+
+ /**
+ * Creates a new DataSource and stores it. Creates a connection and using it
+ * creates two tables in database. Creates a new query and adds it to
+ * DefinitionContainer. Opens the QueryComponent.with loadComponentFromURL
+ * and gets the object with the role PANEL and the implementation name that
+ * contains TabelViewAccessibility
+ *
+ * @param Param
+ * test parameters
+ * @param log
+ * writer to log information while testing
+ * @return
+ * @throws StatusException
+ * @see TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ Param.getMSF().createInstance("com.sun.star.sdb.DatabaseContext");
+ Object oDBSource = Param.getMSF()
+ .createInstance("com.sun.star.sdb.DataSource");
+ Object newQuery = Param.getMSF().createInstance(
+ "com.sun.star.sdb.QueryDefinition");
+ Param.getMSF().createInstance("com.sun.star.awt.Toolkit");
+
+ String mysqlURL = (String) Param.get("mysql.url");
+
+ if (mysqlURL == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get 'mysql.url' from ini-file"));
+ }
+
+ user = (String) Param.get("jdbc.user");
+ password = (String) Param.get("jdbc.password");
+
+ if ((user == null) || (password == null)) {
+ throw new StatusException(
+ Status.failed("Couldn't get 'jdbc.user' or 'jdbc.password' from ini-file"));
+ }
+
+ PropertyValue[] info = new PropertyValue[2];
+ info[0] = new PropertyValue();
+ info[0].Name = "user";
+ info[0].Value = user;
+ info[1] = new PropertyValue();
+ info[1].Name = "password";
+ info[1].Value = password;
+
+ XPropertySet propSetDBSource = UnoRuntime.queryInterface(
+ XPropertySet.class, oDBSource);
+
+ propSetDBSource.setPropertyValue("URL", mysqlURL);
+ propSetDBSource.setPropertyValue("Info", info);
+
+ log.println("writing database file ...");
+ XDocumentDataSource xDDS = UnoRuntime.queryInterface(
+ XDocumentDataSource.class, oDBSource);
+ XStorable store = UnoRuntime.queryInterface(XStorable.class,
+ xDDS.getDatabaseDocument());
+ aFile = utils.getOfficeTemp(Param.getMSF()) + "TableWindow.odb";
+ log.println("... filename will be " + aFile);
+ store.storeAsURL(aFile, new PropertyValue[] {});
+ log.println("... done");
+
+ isolConnection = UnoRuntime.queryInterface(XIsolatedConnection.class,
+ oDBSource);
+
+ final String tbl_name1 = "tst_table1";
+ final String tbl_name2 = "tst_table2";
+ final String col_name1 = "id1";
+ final String col_name2 = "id2";
+
+ util.utils.waitForEventIdle(Param.getMSF());
+ XConnection connection = isolConnection.getIsolatedConnection(user, password);
+ XStatement statement = connection.createStatement();
+ statement.executeUpdate("drop table if exists " + tbl_name1);
+ statement.executeUpdate("drop table if exists " + tbl_name2);
+ statement.executeUpdate("create table " + tbl_name1 + " ("
+ + col_name1 + " int)");
+ statement.executeUpdate("create table " + tbl_name2 + " ("
+ + col_name2 + " int)");
+
+ XQueryDefinitionsSupplier querySuppl = UnoRuntime.queryInterface(
+ XQueryDefinitionsSupplier.class, oDBSource);
+
+ XNameAccess defContainer = querySuppl.getQueryDefinitions();
+
+ XPropertySet queryProp = UnoRuntime.queryInterface(XPropertySet.class,
+ newQuery);
+
+ final String query = "select * from " + tbl_name1 + ", " + tbl_name2
+ + " where " + tbl_name1 + "." + col_name1 + "=" + tbl_name2
+ + "." + col_name2;
+ queryProp.setPropertyValue("Command", query);
+
+ XNameContainer queryContainer = UnoRuntime.queryInterface(
+ XNameContainer.class, defContainer);
+
+ queryContainer.insertByName("Query1", newQuery);
+ store.store();
+ connection.close();
+
+ PropertyValue[] loadProps = new PropertyValue[3];
+ loadProps[0] = new PropertyValue();
+ loadProps[0].Name = "QueryDesignView";
+ loadProps[0].Value = Boolean.TRUE;
+
+ loadProps[1] = new PropertyValue();
+ loadProps[1].Name = "CurrentQuery";
+ loadProps[1].Value = "Query1";
+
+ loadProps[2] = new PropertyValue();
+ loadProps[2].Name = "DataSource";
+ loadProps[2].Value = oDBSource;
+
+ QueryComponent = DesktopTools.loadDoc(Param.getMSF(),
+ ".component:DB/QueryDesign", loadProps);
+
+ xWindow = UnoRuntime.queryInterface(XModel.class, QueryComponent)
+ .getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot,
+ Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PANEL, "", "TableWindowAccessibility");
+
+ log.println("ImplementationName " + util.utils.getImplName(oObj));
+
+ log.println("creating TestEnvironment ... done");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XAccessibleComponent accComp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+
+ final Point point = accComp.getLocationOnScreen();
+
+ tEnv.addObjRelation(
+ "EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Robot rob = new Robot();
+ rob.mouseMove(point.X + 2, point.Y + 7);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ rob.mouseMove(point.X + 400, point.Y);
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ System.out.println("desired child doesn't exist");
+ }
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * Closes all open documents.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try {
+
+ log.println("closing QueryComponent ...");
+ DesktopTools.closeDoc(QueryComponent);
+ log.println("... done");
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object sfa = xMSF
+ .createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ XSimpleFileAccess xSFA = UnoRuntime.queryInterface(
+ XSimpleFileAccess.class, sfa);
+ log.println("deleting database file");
+ xSFA.kill(aFile);
+ log.println("Could delete file " + aFile + ": "
+ + !xSFA.exists(aFile));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_dbaccess/package.html b/qadevOOo/tests/java/mod/_dbaccess/package.html
new file mode 100644
index 000000000..d6411c05e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbaccess/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'dbaccess'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_dbpool/OConnectionPool.java b/qadevOOo/tests/java/mod/_dbpool/OConnectionPool.java
new file mode 100644
index 000000000..5e0d6517d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dbpool/OConnectionPool.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dbpool;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sdbc.ConnectionPool</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sdbc::XDriverManager</code></li>
+* </ul>
+* @see com.sun.star.sdbc.XDriverManager
+* @see ifc.sdbc._XDriverManager
+*/
+public class OConnectionPool extends TestCase {
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = null;
+
+ oObj = (XInterface)
+ xMSF.createInstance("com.sun.star.sdbc.ConnectionPool");
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //adding relations for XDriverManager
+ String dbaseURL = (String) Param.get("dbase.url");
+ if (dbaseURL == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get parameter 'dbase.url'"));
+ }
+
+ tEnv.addObjRelation("SDBC.URL", "sdbc:dbase:" + dbaseURL);
+
+ String jdbcURL = (String) Param.get("jdbc.url");
+ if (jdbcURL == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get parameter 'jdbc.url'"));
+ }
+
+ tEnv.addObjRelation("JDBC.URL", "jdbc:" + jdbcURL);
+
+ String jdbcUser = (String) Param.get("jdbc.user");
+ if (jdbcUser == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get parameter 'jdbc.user'"));
+ }
+
+ String jdbcPassword = (String) Param.get("jdbc.password");
+ if (jdbcPassword == null) {
+ throw new StatusException(
+ Status.failed("Couldn't get parameter 'jdbc.password'"));
+ }
+
+ PropertyValue[] jdbcInfo = new PropertyValue[3];
+ jdbcInfo[0] = new PropertyValue();
+ jdbcInfo[0].Name = "user";
+ jdbcInfo[0].Value = jdbcUser;
+ jdbcInfo[1] = new PropertyValue();
+ jdbcInfo[1].Name = "password";
+ jdbcInfo[1].Value = jdbcPassword;
+ jdbcInfo[2] = new PropertyValue();
+ jdbcInfo[2].Name = "JavaDriverClass";
+ jdbcInfo[2].Value = DBTools.TST_JDBC_DRIVER;
+
+ tEnv.addObjRelation("JDBC.INFO", jdbcInfo);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_defreg/NestedRegistry.java b/qadevOOo/tests/java/mod/_defreg/NestedRegistry.java
new file mode 100644
index 000000000..a571c7e2c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_defreg/NestedRegistry.java
@@ -0,0 +1,201 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._defreg;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.RegistryTools;
+import util.utils;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.registry.NestedRegistry</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::registry::XSimpleRegistry</code></li>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> XSimpleRegistry.rdb </b> : Registry file created before. </li>
+* <li><b> XSimpleRegistry_open#.rdb </b> : Temporary registry file as copy of
+* <b> XSimpleRegistry.rdb </b> in the SOffice temp directory.
+* ('#' - is an ordinary number) </li>
+* <li><b> XSimpleRegistry_merge#.rdb </b> : Temporary registry file as copy of
+* <b> XSimpleRegistry.rdb </b> in the SOffice temp directory.
+* ('#' - is an ordinary number) </li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.registry.XSimpleRegistry
+* @see com.sun.star.lang.XInitialization
+* @see ifc.registry._XSimpleRegistry
+* @see ifc.lang._XInitialization
+*/
+public class NestedRegistry extends TestCase {
+
+ protected static int uniq = 0 ;
+ XSimpleRegistry reg1;
+ XSimpleRegistry reg2;
+
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam ) {
+ try {
+ reg1.destroy();
+ reg2.destroy();
+ }
+ catch (com.sun.star.registry.InvalidRegistryException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+
+ /**
+ * Creates a temporary copy of file, which is deleted when VM exits.
+ * @param src Source file path.
+ * @param dst Destination file path.
+ * @throws java.io.IOException If any problems occur during copying.
+ */
+ protected void copyFile(String src, String dst, PrintWriter log)
+ throws java.io.IOException {
+ log.println("Copy File "+src+" to "+dst);
+ File srcF = new File(src) ;
+ File dstF = new File(dst) ;
+
+ if (dstF.exists()) {
+ boolean bDeleteOk = dstF.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+
+ boolean bCreateOk = dstF.createNewFile();
+ if (!bCreateOk) {
+ System.out.println("create failed");
+ }
+
+ dstF.deleteOnExit() ;
+
+ FileInputStream fIn = new FileInputStream(srcF) ;
+ FileOutputStream fOut = new FileOutputStream(dstF) ;
+
+ byte[] buf = new byte[1024] ;
+ int bytesRead = 0 ;
+ while ((bytesRead = fIn.read(buf)) > 0) {
+ fOut.write(buf, 0, bytesRead) ;
+ }
+
+ fIn.close() ;
+ fOut.close() ;
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two temporary copies of registry file created before, opens
+ * them, and creates service <code>com.sun.star.comp.stoc.NestedRegistry</code>
+ * with these two registries. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'NR'</code> for {@link ifc.registry._XSimpleRegistry} :
+ * Just informs interface test that <code>NestedRegistry</code>
+ * service is tested. If this relation exists, then some methods
+ * are not supported. The relation is a <code>String</code> with
+ * object name.</li>
+ * <li> <code>'XSimpleRegistry.open'</code> for
+ * {@link ifc.registry._XSimpleRegistry}
+ * </li>
+ * <li> <code>'XSimpleRegistry.destroy'</code> for
+ * {@link ifc.registry._XSimpleRegistry}
+ * </li>
+ * <li> <code>'XSimpleRegistry.merge'</code> for
+ * {@link ifc.registry._XSimpleRegistry}
+ * </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ final String tmpDir = utils.getOfficeTempDirSys(Param.getMSF()) ;
+ final String openF = tmpDir + "XSimpleRegistry_open" + uniq + ".rdb" ;
+ final String destroyF = tmpDir
+ + "XSimpleRegistry_destroy" + uniq + ".rdb" ;
+ final String mergeF = tmpDir + "XSimpleRegistry_merge" + uniq + ".rdb" ;
+ uniq++ ;
+
+ log.println("creating copies of the registry for XSimpleRegistry");
+ String source = utils.getFullTestDocName("XSimpleRegistry.rdb");
+ copyFile(source, openF, log) ;
+ copyFile(source, mergeF, log) ;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ reg1 = RegistryTools.
+ createRegistryService(xMSF) ;
+ reg1.open(mergeF, false, true) ;
+ reg2 = RegistryTools.
+ createRegistryService(xMSF) ;
+ reg2.open(openF, false, true) ;
+ XSimpleRegistry[] arg = new XSimpleRegistry[2];
+ arg[0]=reg1;
+ arg[1]=reg2;
+ oInterface = xMSF.createInstanceWithArguments
+ ( "com.sun.star.comp.stoc.NestedRegistry", arg );
+ }
+ catch( Exception e ) {
+ log.println("Introspection Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+
+
+ log.println( " creating a new environment for Introspection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("NR","NestedRegistry");
+
+ tEnv.addObjRelation("XSimpleRegistry.open", openF) ;
+ tEnv.addObjRelation("XSimpleRegistry.merge", mergeF) ;
+ tEnv.addObjRelation("XSimpleRegistry.destroy", destroyF) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+
+ }
+
+} // finish class NestedRegistry
+
diff --git a/qadevOOo/tests/java/mod/_defreg/package.html b/qadevOOo/tests/java/mod/_defreg/package.html
new file mode 100644
index 000000000..bee4740a1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_defreg/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'defreg'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_dtrans/generic.java b/qadevOOo/tests/java/mod/_dtrans/generic.java
new file mode 100644
index 000000000..9a61fe39a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dtrans/generic.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dtrans;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.datatransfer.generic</code>.
+ * <p>
+ */
+public class generic extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.datatransfer.generic</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = (XInterface) xMSF
+ .createInstance("com.sun.star.datatransfer.clipboard.GenericClipboard");
+
+ if (oObj == null) {
+ log.println("[ERROR!] System type is *nix, unable to create object...");
+ }
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: " + Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_dynamicloader/Dynamic.java b/qadevOOo/tests/java/mod/_dynamicloader/Dynamic.java
new file mode 100644
index 000000000..f022f0762
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_dynamicloader/Dynamic.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._dynamicloader;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.loader.Dynamic</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::loader::XImplementationLoader</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.loader.XImplementationLoader
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.loader.Dynamic
+* @see ifc.loader._XImplementationLoader
+* @see ifc.lang._XServiceInfo
+*/
+public class Dynamic extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service
+ * <code>com.sun.star.loader.Dynamic</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.loader.Dynamic" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relations for XImplementationLoader
+
+ String loader = "com.sun.star.loader.SharedLibrary";
+ tEnv.addObjRelation("ImplementationLoader", loader) ;
+
+ String url = "servicename=com.sun.star.loader.SharedLibrary,link=mylink";
+ tEnv.addObjRelation("ImplementationUrl", url) ;
+
+ tEnv.addObjRelation("ImplementationName", "com.sun.star.io.Pipe") ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_file/calc/ODriver.java b/qadevOOo/tests/java/mod/_file/calc/ODriver.java
new file mode 100644
index 000000000..8d07e6f03
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_file/calc/ODriver.java
@@ -0,0 +1,95 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._file.calc;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Here <code>com.sun.star.sdbc.Driver</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.sdbc.Driver
+* @see com.sun.star.sdbc.XDriver
+* @see com.sun.star.sdbcx.XCreateCatalog
+* @see com.sun.star.sdbcx.XDropCatalog
+* @see ifc.sdbc._XDriver
+* @see ifc.sdbcx._XCreateCatalog
+* @see ifc.sdbcx._XDropCatalog
+*/
+public class ODriver extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sdbc.Driver</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDriver.URL'</code> for {@link ifc.sdbc._XDriver}:
+ * is the URL of the Spreadsheet document to which to connect.
+ * The URL is obtained from the parameter <code>calc.url</code></li>
+ * <li> <code>'XDriver.UNSUITABLE_URL'</code> for
+ * {@link ifc.sdbc._XDriver}:
+ * the wrong kind of URL to connect using given driver.
+ * The URL is obtained from the parameter <code>jdbc.url</code></li>
+ * <li> <code>'XDriver.INFO'</code> for {@link ifc.sdbc._XDriver}:
+ * a list of arbitrary string tag/value pairs as connection arguments
+ * </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.sdbc.calc.ODriver");
+
+ log.println("creating a new environment for calc.ODriver object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding relation for sdbc.XDriver
+ String calcURL = (String) Param.get("calc.url");
+ if (calcURL == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'calc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.URL", "sdbc:calc:" + calcURL);
+
+ PropertyValue[] info = new PropertyValue[0];
+ tEnv.addObjRelation("XDriver.INFO", info);
+
+ String jdbcUrl = (String) Param.get("jdbc.url");
+ if (jdbcUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.UNSUITABLE_URL", "jdbc:" + jdbcUrl);
+
+ tEnv.addObjRelation("NoBadURL", "TRUE");
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_file/dbase/ODriver.java b/qadevOOo/tests/java/mod/_file/dbase/ODriver.java
new file mode 100644
index 000000000..659b6e9a4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_file/dbase/ODriver.java
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._file.dbase;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+
+/**
+* Here <code>com.sun.star.sdbc.Driver</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.sdbc.Driver
+* @see com.sun.star.sdbc.XDriver
+* @see com.sun.star.sdbcx.XCreateCatalog
+* @see com.sun.star.sdbcx.XDropCatalog
+* @see ifc.sdbc._XDriver
+* @see ifc.sdbcx._XCreateCatalog
+* @see ifc.sdbcx._XDropCatalog
+*/
+public class ODriver extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sdbc.Driver</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDriver.URL'</code> for {@link ifc.sdbc._XDriver}:
+ * is the URL of the database to which to connect.
+ * The URL is obtained from the parameter <code>dbase.url</code></li>
+ * <li> <code>'XDriver.UNSUITABLE_URL'</code> for
+ * {@link ifc.sdbc._XDriver}:
+ * the wrong kind of URL to connect using given driver.
+ * The URL is obtained from the parameter <code>jdbc.url</code></li>
+ * <li> <code>'XDriver.INFO'</code> for {@link ifc.sdbc._XDriver}:
+ * a list of arbitrary string tag/value pairs as connection arguments
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.sdbc.dbase.ODriver");
+
+ log.println("creating a new environment for dbase.ODriver object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding relation for sdbc.XDriver
+ String dBaseURL = (String) Param.get("dbase.url");
+ if (dBaseURL == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'dbase.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.URL", "sdbc:dbase:" + dBaseURL);
+
+ PropertyValue[] info = new PropertyValue[0];
+ tEnv.addObjRelation("XDriver.INFO", info);
+
+ String jdbcUrl = (String) Param.get("jdbc.url");
+ if (jdbcUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.UNSUITABLE_URL", "jdbc:" + jdbcUrl);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_file/flat/ODriver.java b/qadevOOo/tests/java/mod/_file/flat/ODriver.java
new file mode 100644
index 000000000..7fac2ae03
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_file/flat/ODriver.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._file.flat;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+
+/**
+* Here <code>com.sun.star.sdbc.Driver</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.sdbc.Driver
+* @see com.sun.star.sdbc.XDriver
+* @see com.sun.star.sdbcx.XCreateCatalog
+* @see com.sun.star.sdbcx.XDropCatalog
+* @see ifc.sdbc._XDriver
+* @see ifc.sdbcx._XCreateCatalog
+* @see ifc.sdbcx._XDropCatalog
+*/
+public class ODriver extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sdbc.Driver</code>. <p>
+ * Object relations created :
+ * <li> <code>'XDriver.URL'</code> for {@link ifc.sdbc._XDriver}:
+ * is the URL of the database to which to connect.
+ * The URL is obtained from the parameter <code>flat.url</code></li>
+ * <li> <code>'XDriver.UNSUITABLE_URL'</code> for
+ * {@link ifc.sdbc._XDriver}:
+ * the wrong kind of URL to connect using given driver.
+ * The URL is obtained from the parameter <code>jdbc.url</code></li>
+ * <li> <code>'XDriver.INFO'</code> for {@link ifc.sdbc._XDriver}:
+ * a list of arbitrary string tag/value pairs as connection arguments
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.sdbc.flat.ODriver");
+
+ log.println("creating a new environment for flat.ODriver object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding relation for sdbc.XDriver
+ String flatURL = (String) Param.get("flat.url");
+ if (flatURL == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'flat.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.URL", "sdbc:flat:" + flatURL);
+
+ PropertyValue[] info = new PropertyValue[0];
+ tEnv.addObjRelation("XDriver.INFO", info);
+
+ String jdbcUrl = (String) Param.get("jdbc.url");
+ if (jdbcUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.UNSUITABLE_URL", "jdbc:" + jdbcUrl);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_fileacc/SimpleFileAccess.java b/qadevOOo/tests/java/mod/_fileacc/SimpleFileAccess.java
new file mode 100644
index 000000000..2abff7ee6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fileacc/SimpleFileAccess.java
@@ -0,0 +1,69 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fileacc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.SimpleFileAccess</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::ucb.XSimpleFileAccess</code></li>
+* </ul>
+* This object test <b> can </b> be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XSimpleFileAccess
+* @see com.sun.star.ucb.SimpleFileAccess
+* @see ifc.ucb._XSimpleFileAccess
+*/
+public class SimpleFileAccess extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.ucb.SimpleFileAccess</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ("com.sun.star.comp.ucb.SimpleFileAccess");
+ Object oIH = xMSF.createInstance("com.sun.star.sdb.InteractionHandler");
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for CoreReflection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("InteractionHandler", oIH);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SimpleFileAccess
+
diff --git a/qadevOOo/tests/java/mod/_fileacc/package.html b/qadevOOo/tests/java/mod/_fileacc/package.html
new file mode 100644
index 000000000..d590b8399
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fileacc/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'fileacc'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_fop/FolderPicker.java b/qadevOOo/tests/java/mod/_fop/FolderPicker.java
new file mode 100644
index 000000000..3405319e2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fop/FolderPicker.java
@@ -0,0 +1,80 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fop;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.fop.FolderPicker</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ui::XExecutableDialog</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::ui::XFolderPickerNotifier</code></li>
+* <li> <code>com::sun::star::ui::XFolderPicker</code></li>
+* <li> <code>com::sun::star::lang::XTypeProvider</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ui.XExecutableDialog
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.ui.XFolderPickerNotifier
+* @see com.sun.star.ui.XFolderPicker
+* @see com.sun.star.lang.XTypeProvider
+* @see com.sun.star.ui.FolderPicker
+* @see ifc.ui.dialogs._XExecutableDialog
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.ui._XFolderPickerNotifier
+* @see ifc.ui.dialogs._XFolderPicker
+* @see ifc.lang._XTypeProvider
+*/
+public class FolderPicker extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.fop.FolderPicker</code>. <p>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.ui.dialogs.FolderPicker" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class BreakIterator
+
diff --git a/qadevOOo/tests/java/mod/_forms/GenericModelTest.java b/qadevOOo/tests/java/mod/_forms/GenericModelTest.java
new file mode 100644
index 000000000..c5ffe1ee5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/GenericModelTest.java
@@ -0,0 +1,526 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+import util.FormTools;
+import util.WriterTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.form.XBoundComponent;
+import com.sun.star.form.XForm;
+import com.sun.star.form.XLoadable;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.sdb.XDocumentDataSource;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import java.util.ArrayList;
+import lib.Status;
+import util.utils;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.DateField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::awt::UnoControlDateFieldModel</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::form::component::DateField</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TestDB </b> (directory) : directory with test database </li>
+* <li><b> TestDB/TestDB.dbf </b> : table file. See
+* {@link util.DBTools DBTools} class for more information.</li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.awt.UnoControlDateFieldModel
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.form.component.DateField
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.io._XPersistObject
+* @see ifc.awt._UnoControlDateFieldModel
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.form.component._DateField
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class GenericModelTest extends TestCase {
+ private XTextDocument m_xTextDoc;
+ private Object m_dbSrc = null;
+ /**
+ * This is the name of the Data Base which the test uses: "APITestDatabase"
+ */
+ private static final String m_dbSourceName = "APITestDatabase";
+ private static final String m_TestDB = "TestDB";
+ private DBTools m_dbTools = null;
+
+ private boolean m_ConnectionClosed = false;
+
+ /**
+ * describes the kind of the shape which should be created.
+ * Example: m_kindOfshape=DateFilled
+ */
+ protected String m_kindOfControl = null;
+
+ /**
+ * If your object needs some special property values you can specify them with this
+ * <CODE>ArrayList</CODE>. You have to add a <CODE>NamedValue</CODE> to this list.
+ * Example:
+ * NamedValue myProp = new NamedValue();
+ * myProp.Name = "Test";
+ * myProp.Value = "My special Value";
+ * m_propertiesToSet.add(myProp);
+ */
+ protected ArrayList<NamedValue> m_propertiesToSet = new ArrayList<NamedValue>();
+
+ /**
+ * This variable contains the name of the property which should be changed while
+ * interface <CODE>com::sun::star::form::XUpdateBroadcaster</CODE> is tested. The
+ * interface test needs the <CODE>ObjectRelation</CODE>
+ * "XUpdateBroadcaster.Checker" which is a <CODE>ifc.form._XUpdateBroadcaster.UpdateChecker</CODE>.
+ * @see ifc.form._XUpdateBroadcaster.UpdateChecker
+ * @see ifc.form._XUpdateBroadcaster
+ */
+ protected String m_ChangePropertyName = null;
+ /**
+ * This variable contains the value the property should be set while
+ * interface <CODE>com::sun::star::form::XUpdateBroadcaster</CODE> is tested.
+ * The interface test needs the <CODE>ObjectRelation</CODE>
+ * "XUpdateBroadcaster.Checker" which is a <CODE>ifc.form._XUpdateBroadcaster.UpdateChecker</CODE>.
+ * Normally the <CODE>Checker</CODE> uses <CODE>util.ValueChanger</CODE> to change
+ * the value of the property. If the current of this property is NULL the
+ * <CODE>ValueChanger</CODE> is unable to change the value. In this case the value
+ * of this variable was used.
+ */
+ protected Object m_ChangePropertyValue = null;
+
+ /**
+ * This variable contains the implementation name of the object.
+ */
+ protected String m_ObjectName = null;
+
+ /**
+ * For local implementations of <CODE>Checker</CODE> this variable contains the
+ * <CODE>FormLoader</CODE>
+ */
+ protected XLoadable m_XFormLoader = null;
+ /**
+ * For local implementations of <CODE>Checker</CODE> this variable contains the
+ * <CODE>XPropertySet</CODE>
+ */
+ protected XPropertySet m_XPS = null;
+ /**
+ * For local implementations of <CODE>Checker</CODE> this variable contains the
+ * <CODE>Control</CODE>
+ */
+ protected XInterface m_XCtrl = null;
+ /**
+ * The interface test of <CODE>ifc.form._DataWareControlModel</CODE> expects an
+ * object relation <CODE>'LC'</CODE>. This is a <CODE>XControlModel</CODE> of a shape.
+ * This variable contains the kind of shape to create for the interface test,
+ * f.e. "FixedText"
+ * @see ifc.form._DataAwareControlModel
+ */
+ protected String m_LCShape_Type = null;
+
+ /**
+ * If this variable is true some more debug info was logged. It was set by the parameter variable
+ * <code>debug_is_active</code>
+ */
+ private boolean debug = false;
+
+ /**
+ * Creates Writer document where controls are placed.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ m_xTextDoc = WriterTools.createTextDoc(tParam.getMSF());
+ m_ConnectionClosed = false;
+ debug = tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE);
+ m_propertiesToSet.clear();
+ }
+
+ /**
+ * close the connection
+ * close the data source
+ * close the document
+ * revoke the data source
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println("closing connection...");
+
+ // some interface tests call cleanup to reset the environment. If such
+ // a test is the last one cleanup was called twice. The second call
+ // causes then nasty exceptions...
+ if (m_ConnectionClosed) return;
+
+ try {
+ XIndexAccess forms = UnoRuntime.queryInterface( XIndexAccess.class,
+ FormTools.getForms( WriterTools.getDrawPage( m_xTextDoc ) ) );
+ XForm myForm = (XForm) AnyConverter.toObject(new Type(XForm.class),
+ forms.getByIndex(0));
+
+ if (debug){
+ if (myForm == null){
+ log.println("ERROR: could not get 'Standard' from drawpage!");
+ }
+ log.println("the draw page contains following elements:");
+ String[] elements = FormTools.getForms(WriterTools.getDrawPage(m_xTextDoc)).getElementNames();
+ for (int i = 0; i< elements.length; i++){
+ log.println("Element[" + i + "] :" + elements[i]);
+ }
+
+ }
+
+ XPropertySet xSetProp = UnoRuntime.queryInterface( XPropertySet.class, myForm );
+ XConnection connection = UnoRuntime.queryInterface( XConnection.class, xSetProp.getPropertyValue( "ActiveConnection" ) );
+ if ( connection == null )
+ {
+ if ( debug )
+ log.println("ERROR: could not get property 'ActiveConnection' from the XForm");
+ }
+ else
+ {
+ connection.close();
+ }
+ } catch (Exception e) {
+ log.println("ERROR: Can't close the connection: " + e.toString());
+ e.printStackTrace( log );
+ }
+
+ log.println("closing data source...");
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, m_dbSrc);
+ if ( closer == null )
+ {
+ XDocumentDataSource dataSource = UnoRuntime.queryInterface(
+ XDocumentDataSource.class, m_dbSrc);
+ if ( dataSource != null )
+ closer = UnoRuntime.queryInterface(
+ XCloseable.class, dataSource.getDatabaseDocument() );
+ }
+ if (debug && closer==null){
+ log.println("ERROR: couldn't get 'XCloseable' from DataSource");
+ }
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("ERROR: couldn't close data source: " + e.toString());
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("ERROR: couldn't close data source: " + e.toString());
+ } catch (Exception e) {
+ log.println("ERROR: couldn't close data source: " + e.toString());
+ }
+
+ log.println("disposing data source...");
+ try {
+ XComponent dataSourceComp = UnoRuntime.queryInterface(
+ XComponent.class, m_dbSrc);
+ dataSourceComp.dispose();
+ }
+ catch (Exception e) {
+ log.println("couldn't dispose the data source");
+ }
+
+ log.println("closing document...");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, m_xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("ERROR: couldn't close document: " + e.toString());
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("ERROR: couldn't close document: " + e.toString());
+ } catch (Exception e) {
+ log.println("ERROR: couldn't close document: " + e.toString());
+ }
+
+ log.println("revoking data source...");
+ try {
+ m_dbTools.revokeDB(m_dbSourceName);
+ } catch (com.sun.star.container.NoSuchElementException e){
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("ERROR: Error while object test cleaning up: " + e.toString());
+ }
+
+ m_ConnectionClosed = true;
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * First <code>TestDB</code> database is registered.
+ * Creates DateField in the Form, then binds it to TestDB
+ * database and returns Field's control. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} : name of service which is
+ * represented by this object. </li>
+ * <li> <code>'LC'</code> for {@link ifc.form._DataAwareControlModel}.
+ * Specifies the value for LabelControl property. It is
+ * <code>FixedText</code> component added to the document.</li>
+ * <li> <code>'FL'</code> for
+ * {@link ifc.form._DataAwareControlModel} interface.
+ * Specifies XLoadable implementation which connects form to
+ * the data source.</li>
+ * <li> <code>'XUpdateBroadcaster.Checker'</code> : <code>
+ * _XUpdateBroadcaster.UpdateChecker</code> interface implementation
+ * which can update, commit data and check if the data was successfully
+ * committed.</li>
+ * <li> <code>'DataAwareControlModel.NewFieldName'</code> : for
+ * <code>com.sun.star.form.DataAwareControlModel</code> service
+ * which contains new name of the field ('_DATE') to bind control to.
+ * </li>
+ * <li> <code>'XFastPropertySet.ExcludeProps'</code> : for
+ * <code>com.sun.star.beans.XFastPropertySet</code> interface
+ * the property FormatKey can have only restricted set of values.
+ * </li>
+ * </ul>
+ * @see ifc.form._XUpdateBroadcaster
+ * @param Param the test parameter
+ * @param log the log writer
+ * @return a test environment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XControlShape aShape = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+
+ log.println("adding control shape '" + m_kindOfControl + "'");
+ aShape = FormTools.createControlShape(m_xTextDoc, 3000,
+ 4500, 15000, 10000,
+ m_kindOfControl);
+
+ WriterTools.getDrawPage(m_xTextDoc).add(aShape);
+ oObj = aShape.getControl();
+
+ log.println("Implementation name: " + util.utils.getImplName(oObj));
+
+ String sourceTestDB = utils.getFullURL(utils.getFullTestDocName("TestDB/testDB.dbf"));
+ String destTestDB = utils.getOfficeTemp(xMSF);
+ destTestDB = utils.getFullURL(destTestDB + "testDB.dbf");
+
+ log.println("copy '"+sourceTestDB + "' -> '" + destTestDB + "'");
+ utils.copyFile(xMSF, sourceTestDB, destTestDB);
+
+ m_dbTools = new DBTools( xMSF );
+ String tmpDir = utils.getOfficeTemp(xMSF);
+
+ DBTools.DataSourceInfo srcInf = m_dbTools.newDataSourceInfo();
+ srcInf.URL = "sdbc:dbase:" + DBTools.dirToUrl(tmpDir);
+ log.println("data source: " + srcInf.URL);
+
+ m_dbSrc = srcInf.getDataSourceService();
+ m_dbTools.reRegisterDB(m_dbSourceName, m_dbSrc);
+
+ m_XFormLoader = FormTools.bindForm(m_xTextDoc, m_dbSourceName,
+ m_TestDB);
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", m_ObjectName);
+
+ log.println("adding shape '" + m_LCShape_Type +"' for DataAwareControlModel test");
+ aShape = FormTools.createControlShape(m_xTextDoc, 6000, 4500, 15000,
+ 10000, m_LCShape_Type);
+ WriterTools.getDrawPage(m_xTextDoc).add(aShape);
+
+ m_XPS = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+
+ int i = 0;
+ NamedValue prop = null;
+ for (i = 0; i < m_propertiesToSet.size(); i++){
+ prop = m_propertiesToSet.get(i);
+
+ log.println("setting property: '"+prop.Name+"' to value '"+prop.Value.toString()+"'");
+
+ m_XPS.setPropertyValue(prop.Name, prop.Value);
+ }
+
+ // added LabelControl for 'DataAwareControlModel'
+ tEnv.addObjRelation("LC", aShape.getControl());
+
+ // added FormLoader for 'DataAwareControlModel'
+ tEnv.addObjRelation("FL", m_XFormLoader);
+
+ // adding relation for XUpdateBroadcaster
+ m_XCtrl = oObj;
+
+ tEnv.addObjRelation("XUpdateBroadcaster.Checker",
+ new Checker(m_XFormLoader, m_XPS, m_XCtrl, m_ChangePropertyName, m_ChangePropertyValue));
+
+ // adding relation for DataAwareControlModel service
+ tEnv.addObjRelation("DataAwareControlModel.NewFieldName",
+ DBTools.TST_DATE_F);
+
+ //adding ObjRelation for XPersistObject
+ tEnv.addObjRelation("PSEUDOPERSISTENT", Boolean.TRUE);
+
+ // adding relation for XFastPropertySet
+ java.util.HashSet<String> exclude = new java.util.HashSet<String>();
+ exclude.add("FormatKey");
+ tEnv.addObjRelation("XFastPropertySet.ExcludeProps", exclude);
+
+ PropertyValue propVal = new PropertyValue();
+ propVal.Name = "HelpText";
+ propVal.Value = "Text since XPropertyAccess";
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", propVal);
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "HelpText");
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+ private static class Checker implements ifc.form._XUpdateBroadcaster.UpdateChecker {
+ private Object lastValue = null;
+ private XLoadable formLoaderF = null;
+ private XPropertySet ps = null;
+ private XInterface ctrl = null;
+ private String ChangePropertyName = null;
+ Object ChangePropertyValue = null;
+
+ public Checker(XLoadable xl, XPropertySet ps, XInterface ctrl, String ChangePropertyName, Object ChangePropertyValue) {
+ formLoaderF = xl;
+ this.ps = ps;
+ this.ctrl = ctrl;
+ this.ChangePropertyName=ChangePropertyName;
+ this.ChangePropertyValue=ChangePropertyValue;
+ }
+
+ public void update() throws com.sun.star.uno.Exception {
+ if (!formLoaderF.isLoaded()) {
+ formLoaderF.load();
+ }
+
+ lastValue = util.ValueChanger.changePValue(ps.getPropertyValue(ChangePropertyName));
+
+ if (lastValue == null){
+
+ if (ChangePropertyValue != null){
+
+ lastValue = ChangePropertyValue;
+
+ } else {
+
+ String msg = "The initial value of the property '" + ChangePropertyName + "' is NULL\n";
+ msg += "The member variable 'm_ChangePropertyValue' is NULL\n";
+ msg += "Could not change Property.";
+
+ throw new StatusException(Status.failed(msg));
+ }
+ }
+ ps.setPropertyValue(ChangePropertyName, lastValue);
+ }
+
+ public void commit() throws com.sun.star.sdbc.SQLException {
+ XBoundComponent bound = UnoRuntime.queryInterface(
+ XBoundComponent.class, ctrl);
+ XResultSetUpdate update = UnoRuntime.queryInterface(
+ XResultSetUpdate.class,
+ formLoaderF);
+
+ bound.commit();
+ update.updateRow();
+ }
+
+ public boolean wasCommited() throws com.sun.star.uno.Exception {
+ formLoaderF.reload();
+
+ Object newValue = ps.getPropertyValue(ChangePropertyName);
+
+ return (newValue != null) && (util.ValueComparer.equalValue(lastValue, newValue));
+ }
+ }
+} // finish class GenericModelTest
diff --git a/qadevOOo/tests/java/mod/_forms/OButtonControl.java b/qadevOOo/tests/java/mod/_forms/OButtonControl.java
new file mode 100644
index 000000000..82f905931
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OButtonControl.java
@@ -0,0 +1,202 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.CommandButton</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::form::XApproveActionBroadcaster</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XButton</code></li>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.form.XApproveActionBroadcaster
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XButton
+ * @see com.sun.star.awt.XView
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XWindow
+ * @see ifc.form._XApproveActionBroadcaster
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XButton
+ * @see ifc.awt._XView
+ */
+public class OButtonControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.CommandButton</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "CommandButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OButtonControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OButtonControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OButtonControl
diff --git a/qadevOOo/tests/java/mod/_forms/OButtonModel.java b/qadevOOo/tests/java/mod/_forms/OButtonModel.java
new file mode 100644
index 000000000..c54b24184
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OButtonModel.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._forms;
+
+import java.io.PrintWriter;
+import lib.TestParameters;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.com.sun.star.form.component.CommandButton</code>.
+ * <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * <li> <code>com::sun::star::form::FormControlModel</code></li>
+ * <li> <code>com::sun::star::form::XImageProducerSupplier</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::awt::UnoControlButtonModel</code></li>
+ * <li> <code>com::sun::star::form::component::CommandButton</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.container.XChild
+ * @see com.sun.star.form
+ * @see com.sun.star.form.XImageProducerSupplier
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.awt.UnoControlButtonModel
+ * @see com.sun.star.form.component.CommandButton
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.io._XPersistObject
+ * @see ifc.container._XChild
+ * @see ifc.form._FormControlModel
+ * @see ifc.form._XImageProducerSupplier
+ * @see ifc.form._FormComponent
+ * @see ifc.beans._XPropertySet
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XPropertyState
+ * @see ifc.awt._UnoControlButtonModel
+ * @see ifc.form.component._CommandButton
+ * @see ifc.container._XNamed
+ * @see ifc.beans._XMultiPropertySet
+ * @see ifc.lang._XComponent
+ */
+public class OButtonModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="CommandButton";
+ * super.m_ObjectName = "com.sun.star.form.component.CommandButton";
+ * super.m_LCShape_Type = "CommandButton";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="CommandButton";
+
+ super.m_ObjectName = "stardiv.one.form.component.CommandButton";
+
+ super.m_LCShape_Type = "CommandButton";
+
+ }
+
+
+} // finish class OButtonModelold
diff --git a/qadevOOo/tests/java/mod/_forms/OCheckBoxControl.java b/qadevOOo/tests/java/mod/_forms/OCheckBoxControl.java
new file mode 100644
index 000000000..f95a2340d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OCheckBoxControl.java
@@ -0,0 +1,214 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XCheckBox;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.CheckBox</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XItemListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::awt::XCheckBox</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XItemListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.awt.XCheckBox
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XItemListener
+ * @see ifc.awt._XWindow
+ * @see ifc.awt._XCheckBox
+ * @see ifc.lang._XComponent
+ * @see ifc.lang._XEventListener
+ */
+public class OCheckBoxControl extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize ( TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.CheckBox</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * <li> <code>'TestItemListener'</code> for
+ * {@link ifc.awt._XItemListener} : listener implementation is
+ * registered here and passed as relation. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(
+ xTextDoc,3000,4500,15000,10000,"CheckBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(
+ xTextDoc,3000,4500,5000,10000,"TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,xTextDoc.getCurrentController());
+
+ //now get the OButtonControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200,200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println( "creating a new environment for OCheckBoxControl object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS",aGraphic);
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT",xTextDoc);
+ tEnv.addObjRelation("WINPEER",the_win);
+ tEnv.addObjRelation("TOOLKIT",the_kit);
+ tEnv.addObjRelation("MODEL",the_Model);
+
+ // Adding relation for XItemListener
+ ifc.awt._XItemListener.TestItemListener listener =
+ new ifc.awt._XItemListener.TestItemListener() ;
+ XCheckBox box = UnoRuntime.queryInterface
+ (XCheckBox.class, oObj) ;
+ box.addItemListener(listener) ;
+ tEnv.addObjRelation("TestItemListener", listener) ;
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow",forObjRel);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class OButtonControl
+
+
diff --git a/qadevOOo/tests/java/mod/_forms/OCheckBoxModel.java b/qadevOOo/tests/java/mod/_forms/OCheckBoxModel.java
new file mode 100644
index 000000000..edec240f9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OCheckBoxModel.java
@@ -0,0 +1,121 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.CheckBox</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::form::component::CheckBox</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::awt::UnoControlCheckBoxModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+*
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.form.component.CheckBox
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.awt.UnoControlCheckBoxModel
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.beans._XFastPropertySet
+* @see ifc.io._XPersistObject
+* @see ifc.form._XReset
+* @see ifc.form._FormComponent
+* @see ifc.form.component._CheckBox
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._DataAwareControlModel
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.awt._UnoControlCheckBoxModel
+* @see ifc.container._XNamed
+* @see ifc.form._XBoundComponent
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class OCheckBoxModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="CheckBox";
+ * super.m_ObjectName = "stardiv.one.form.component.CheckBox";
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl= "CheckBox";
+
+ super.m_ObjectName = "stardiv.one.form.component.CheckBox";
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OCheckBoxModel
+
diff --git a/qadevOOo/tests/java/mod/_forms/OComboBoxControl.java b/qadevOOo/tests/java/mod/_forms/OComboBoxControl.java
new file mode 100644
index 000000000..1b5fe16d6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OComboBoxControl.java
@@ -0,0 +1,223 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.ComboBox</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XComboBox</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XComboBox
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XComboBox
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class OComboBoxControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.ComboBox</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "ComboBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OButtonControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OComboBoxControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OButtonControl
diff --git a/qadevOOo/tests/java/mod/_forms/OComboBoxModel.java b/qadevOOo/tests/java/mod/_forms/OComboBoxModel.java
new file mode 100644
index 000000000..963e996ed
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OComboBoxModel.java
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+
+import util.DBTools;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.ComboBox</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::awt::UnoControlComboBoxModel</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::form::component::DatabaseComboBox</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::component::ComboBox</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.awt.UnoControlComboBoxModel
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.form.component.DatabaseComboBox
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.component.ComboBox
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.beans._XFastPropertySet
+* @see ifc.io._XPersistObject
+* @see ifc.form._XReset
+* @see ifc.form._FormComponent
+* @see ifc.awt._UnoControlComboBoxModel
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.form.component._DatabaseComboBox
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.form._XBoundComponent
+* @see ifc.form.component._ComboBox
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class OComboBoxModel extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Text";
+ * super.m_kindOfControl="ComboBox";
+ * super.m_ObjectName = "stardiv.one.form.component.ComboBox";
+ *
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_STRING_F;
+ * super.m_propertiesToSet.add(DataField);
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "Text";
+
+ super.m_kindOfControl="ComboBox";
+
+ super.m_ObjectName = "stardiv.one.form.component.ComboBox";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_STRING_F;
+ super.m_propertiesToSet.add(DataField);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OComboBoxModel
diff --git a/qadevOOo/tests/java/mod/_forms/OCurrencyControl.java b/qadevOOo/tests/java/mod/_forms/OCurrencyControl.java
new file mode 100644
index 000000000..571401aba
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OCurrencyControl.java
@@ -0,0 +1,230 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.CurrencyField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::awt::XCurrencyField</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.awt.XCurrencyField
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.awt._XCurrencyField
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class OCurrencyControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.CurrencyField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * <li> <code>'XTextComponent.onlyNumbers'</code> for
+ * {@link ifc.awt._XTextComponent} : as the currency field
+ * can have only numeric values the relation must be specified. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "CurrencyField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OCurrencyControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OCurrencyControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+
+ // Adding relation for XTextComponent
+ tEnv.addObjRelation("XTextComponent.onlyNumbers", new Object());
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OCurrencyControl
diff --git a/qadevOOo/tests/java/mod/_forms/OCurrencyModel.java b/qadevOOo/tests/java/mod/_forms/OCurrencyModel.java
new file mode 100644
index 000000000..fed0b5d57
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OCurrencyModel.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.CurrencyField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::awt::UnoControlCurrencyFieldModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* <li> <code>com::sun::star::form::component::CurrencyField</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.awt.UnoControlCurrencyFieldModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see com.sun.star.form.component.CurrencyField
+* @see ifc.io._XPersistObject
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.awt._UnoControlCurrencyFieldModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+* @see ifc.form.component._CurrencyField
+*/
+public class OCurrencyModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Value";
+ * super.m_kindOfControl="CurrencyField";
+ * super.m_ObjectName = "stardiv.one.form.component.CurrencyField";
+ * NamedValue myProp = new NamedValue();
+ * myProp.Name = "DataField";
+ * myProp.Value = "Identifier";
+ * super.m_propertiesToSet.add(myProp);
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ObjectName = "stardiv.one.form.component.CurrencyField";
+
+ super.m_kindOfControl="CurrencyField";
+
+ NamedValue myProp = new NamedValue();
+ myProp.Name = "DataField";
+ myProp.Value = "Identifier";
+ super.m_propertiesToSet.add(myProp);
+
+ super.m_ChangePropertyName = "Value";
+ super.m_ChangePropertyValue = new Double(0);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OCurrencyModel
diff --git a/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java b/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java
new file mode 100644
index 000000000..0683ab01c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ODatabaseForm.java
@@ -0,0 +1,863 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import ifc.form._XDatabaseParameterBroadcaster;
+import ifc.sdb._XCompletedExecution;
+
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+import util.DrawTools;
+import util.FormTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.container.XNamed;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.form.DatabaseParameterEvent;
+import com.sun.star.form.XForm;
+import com.sun.star.form.XLoadable;
+import com.sun.star.lang.EventObject;
+import com.sun.star.sdb.CommandType;
+import com.sun.star.sdb.ParametersRequest;
+import com.sun.star.sdb.RowChangeEvent;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.sdbc.XRow;
+import com.sun.star.sdbc.XRowSet;
+import com.sun.star.sdbc.XRowUpdate;
+import com.sun.star.task.XInteractionRequest;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.Date;
+import com.sun.star.util.DateTime;
+import com.sun.star.util.Time;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.form.component.DatabaseForm</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::script::XEventAttacherManager</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::sdbcx::ResultSet</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * <li> <code>com::sun::star::sdbc::XResultSetUpdate</code></li>
+ * <li> <code>com::sun::star::sdb::XResultSetAccess</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::form::component::DataForm</code></li>
+ * <li> <code>com::sun::star::sdbc::XResultSetMetaDataSupplier</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::sdbcx::XDeleteRows</code></li>
+ * <li> <code>com::sun::star::sdb::RowSet</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::sdbc::XRowSet</code></li>
+ * <li> <code>com::sun::star::sdbc::XRowUpdate</code></li>
+ * <li> <code>com::sun::star::form::XLoadable</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::container::XIndexReplace</code></li>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::container::XNameReplace</code></li>
+ * <li> <code>com::sun::star::container::XIndexContainer</code></li>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::sdbc::XParameters</code></li>
+ * <li> <code>com::sun::star::util::XCancellable</code></li>
+ * <li> <code>com::sun::star::form::XReset</code></li>
+ * <li> <code>com::sun::star::sdbc::XCloseable</code></li>
+ * <li> <code>com::sun::star::sdbcx::XColumnsSupplier</code></li>
+ * <li> <code>com::sun::star::sdb::XRowSetApproveBroadcaster</code></li>
+ * <li> <code>com::sun::star::sdbc::ResultSet</code></li>
+ * <li> <code>com::sun::star::sdbc::XResultSet</code></li>
+ * <li> <code>com::sun::star::sdbc::XRow</code></li>
+ * <li> <code>com::sun::star::sdbc::XColumnLocate</code></li>
+ * <li> <code>com::sun::star::awt::XTabControllerModel</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::form::XSubmit</code></li>
+ * <li> <code>com::sun::star::form::component::HTMLForm</code></li>
+ * <li> <code>com::sun::star::sdbcx::XRowLocate</code></li>
+ * <li> <code>com::sun::star::sdbc::XWarningsSupplier</code></li>
+ * <li> <code>com::sun::star::container::XNameContainer</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::sdbc::RowSet</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * The following parameters in ini-file used by this test:
+ * <ul>
+ * <li><code>test.db.url</code> - URL to MySQL database.
+ * For example: <code>mysql://mercury:3306/api_current</code></li>
+ * <li><code>test.db.user</code> - user for MySQL database</li>
+ * <li><code>test.db.password</code> - password for MySQL database</li>
+ * </ul><p>
+ *
+ * @see com.sun.star.script.XEventAttacherManager
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.sdbcx.ResultSet
+ * @see com.sun.star.container.XChild
+ * @see com.sun.star.sdbc.XResultSetUpdate
+ * @see com.sun.star.sdb.XResultSetAccess
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.form.component.DataForm
+ * @see com.sun.star.sdbc.XResultSetMetaDataSupplier
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.sdbcx.XDeleteRows
+ * @see com.sun.star.sdb.RowSet
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.sdbc.XRowSet
+ * @see com.sun.star.sdbc.XRowUpdate
+ * @see com.sun.star.form.XLoadable
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.container.XIndexReplace
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.container.XNameReplace
+ * @see com.sun.star.container.XIndexContainer
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.sdbc.XParameters
+ * @see com.sun.star.util.XCancellable
+ * @see com.sun.star.form.XReset
+ * @see com.sun.star.sdbc.XCloseable
+ * @see com.sun.star.sdbcx.XColumnsSupplier
+ * @see com.sun.star.sdb.XRowSetApproveBroadcaster
+ * @see com.sun.star.sdbc.ResultSet
+ * @see com.sun.star.sdbc.XResultSet
+ * @see com.sun.star.sdbc.XRow
+ * @see com.sun.star.sdbc.XColumnLocate
+ * @see com.sun.star.awt.XTabControllerModel
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.form.XSubmit
+ * @see com.sun.star.form.component.HTMLForm
+ * @see com.sun.star.sdbcx.XRowLocate
+ * @see com.sun.star.sdbc.XWarningsSupplier
+ * @see com.sun.star.container.XNameContainer
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.sdbc.RowSet
+ * @see ifc.script._XEventAttacherManager
+ * @see ifc.container._XElementAccess
+ * @see ifc.sdbcx._ResultSet
+ * @see ifc.container._XChild
+ * @see ifc.sdbc._XResultSetUpdate
+ * @see ifc.sdb._XResultSetAccess
+ * @see ifc.form._FormComponent
+ * @see ifc.form.component._DataForm
+ * @see ifc.sdbc._XResultSetMetaDataSupplier
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.sdbcx._XDeleteRows
+ * @see ifc.sdb._RowSet
+ * @see ifc.lang._XComponent
+ * @see ifc.sdbc._XRowSet
+ * @see ifc.sdbc._XRowUpdate
+ * @see ifc.form._XLoadable
+ * @see ifc.container._XNamed
+ * @see ifc.container._XIndexReplace
+ * @see ifc.io._XPersistObject
+ * @see ifc.container._XNameReplace
+ * @see ifc.container._XIndexContainer
+ * @see ifc.container._XNameAccess
+ * @see ifc.sdbc._XParameters
+ * @see ifc.util._XCancellable
+ * @see ifc.form._XReset
+ * @see ifc.sdbc._XCloseable
+ * @see ifc.sdbcx._XColumnsSupplier
+ * @see ifc.sdb._XRowSetApproveBroadcaster
+ * @see ifc.sdbc._ResultSet
+ * @see ifc.sdbc._XResultSet
+ * @see ifc.sdbc._XRow
+ * @see ifc.sdbc._XColumnLocate
+ * @see ifc.awt._XTabControllerModel
+ * @see ifc.container._XIndexAccess
+ * @see ifc.form._XSubmit
+ * @see ifc.form.component._HTMLForm
+ * @see ifc.sdbcx._XRowLocate
+ * @see ifc.sdbc._XWarningsSupplier
+ * @see ifc.container._XNameContainer
+ * @see ifc.beans._XPropertyAccess
+ * @see ifc.beans._XPropertyContainer
+ * @see ifc.beans._XPropertySet
+ * @see ifc.sdbc._RowSet
+ */
+public class ODatabaseForm extends TestCase {
+ protected static final String dbSourceName = "ODatabaseFormDataSource";
+ private static int uniqueSuffix = 0;
+ private static String origDB = null;
+ private static String tmpDir = null;
+ protected XTextDocument xTextDoc = null;
+ private DBTools dbTools = null;
+ String tableName = null;
+ DBTools.DataSourceInfo srcInf = null;
+ boolean isMySQLDB = false;
+ protected XConnection conn = null;
+ private Object dbSrc = null;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ tmpDir = utils.getOfficeTemp(tParam.getMSF());
+
+ origDB = util.utils.getFullTestDocName("TestDB/testDB.dbf");
+
+ dbTools = new DBTools( tParam.getMSF() );
+
+ // creating DataSource and registering it in DatabaseContext
+ String dbURL = (String) tParam.get("test.db.url");
+ String dbUser = (String) tParam.get("test.db.user");
+ String dbPassword = (String) tParam.get("test.db.password");
+
+ log.println("Creating and registering DataSource ...");
+ srcInf = dbTools.newDataSourceInfo();
+
+ if ((dbURL != null) && (dbUser != null) && (dbPassword != null)) {
+ isMySQLDB = true;
+ log.println("dbURL = " + dbURL);
+ log.println("dbUSER = " + dbUser);
+ log.println("dbPASSWORD = " + dbPassword);
+
+ //DataSource for mysql db
+ try {
+ tableName = "soffice_test_table";
+ srcInf.URL = "jdbc:" + dbURL;
+ srcInf.IsPasswordRequired = Boolean.TRUE;
+ srcInf.Password = dbPassword;
+ srcInf.User = dbUser;
+
+ PropertyValue[] propInfo = new PropertyValue[1];
+ propInfo[0] = new PropertyValue();
+ propInfo[0].Name = "JavaDriverClass";
+ propInfo[0].Value = "util.dddriver.Driver";
+ srcInf.Info = propInfo;
+
+ dbSrc = srcInf.getDataSourceService();
+ dbTools.reRegisterDB(dbSourceName, dbSrc);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error while object test initialization :");
+ e.printStackTrace(log);
+ throw new StatusException("Error while object test" +
+ " initialization", e);
+ }
+ } else {
+ //DataSource for sdbc db
+ try {
+ String myDbUrl = "sdbc:dbase:" + DBTools.dirToUrl(tmpDir);
+ srcInf.URL = myDbUrl;
+
+ log.println("try to register '"+myDbUrl+"' as '"+dbSourceName+"'");
+
+ dbSrc = srcInf.getDataSourceService();
+ dbTools.reRegisterDB(dbSourceName, dbSrc);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error while object test initialization :");
+ e.printStackTrace(log);
+ throw new StatusException(
+ "Error while object test initialization", e);
+ }
+
+ String oldF = null;
+ String newF = null;
+
+ do {
+ tableName = "ODatabaseForm_tmp" + uniqueSuffix;
+ oldF = utils.getFullURL(origDB);
+ newF = utils.getOfficeTemp(tParam.getMSF()) + tableName +
+ ".dbf";
+ } while (!utils.tryOverwriteFile(tParam.getMSF(), oldF, newF) &&
+ (uniqueSuffix++ < 50));
+ }
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ if (xTextDoc != null) {
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+
+ log.println("Existing document disposed");
+ }
+
+ log.println("creating a text document");
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+
+ //initialize test table
+ if (isMySQLDB) {
+ dbTools.initTestTableUsingJDBC(tableName, srcInf);
+ }
+
+ XInterface oObj = null;
+ XShapes oShapes = null;
+ XInterface oInstance = null;
+ XConnection connection = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ XNameContainer forms = FormTools.getForms(WriterTools.getDrawPage(
+ xTextDoc));
+
+ try {
+ String[] formNames = forms.getElementNames();
+
+ for (int i = 0; i < formNames.length; i++) {
+ log.println("Removing form '" + formNames[i] + "' ...");
+ forms.removeByName(formNames[i]);
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ e.printStackTrace(log);
+ }
+
+ String[] formNames = forms.getElementNames();
+ FormTools.insertForm(xTextDoc, forms, "MyForm");
+ formNames = forms.getElementNames();
+
+ XLoadable formLoader = null;
+
+ formLoader = FormTools.bindForm(xTextDoc, "MyForm", dbSourceName,
+ tableName);
+
+
+ // DEBUG
+ log.println("Forms before adding controls : ");
+ formNames = forms.getElementNames();
+
+ for (int i = 0; i < formNames.length; i++) {
+ log.println(" '" + formNames[i] + "'");
+ }
+
+ XControlShape shape1 = null;
+ XControlShape shape2 = null;
+
+ try {
+
+ log.println("Elements in the 'MyForm' :");
+
+ XIndexAccess formElements1 = UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ forms.getByName("MyForm"));
+
+ for (int i = 0; i < formElements1.getCount(); i++) {
+ XNamed elemName = UnoRuntime.queryInterface(
+ XNamed.class,
+ formElements1.getByIndex(i));
+ log.println(" '" + elemName.getName() + "'");
+ }
+
+
+ // END DEBUG
+ //put something on the drawpage
+ log.println("inserting some ControlShapes");
+ oShapes = DrawTools.getShapes(WriterTools.getDrawPage(xTextDoc));
+ shape1 = FormTools.createControlShape(xTextDoc, 3000, 4500, 15000,
+ 1000, "CommandButton");
+ shape2 = FormTools.createControlShape(xTextDoc, 5000, 3500, 7500,
+ 5000, "TextField");
+
+ XControlShape shape3 = FormTools.createControlShape(xTextDoc, 2000,
+ 1500, 1000,
+ 1000,
+ "CheckBox");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ }
+
+ log.println("Forms after adding controls : ");
+ formNames = forms.getElementNames();
+
+ for (int i = 0; i < formNames.length; i++) {
+ log.println(" '" + formNames[i] + "'");
+ }
+
+ try {
+ log.println("Elements in the 'MyForm' :");
+
+ XIndexAccess formElements1 = UnoRuntime.queryInterface(
+ XIndexAccess.class,
+ forms.getByName("MyForm"));
+
+ for (int i = 0; i < formElements1.getCount(); i++) {
+ XNamed elemName = UnoRuntime.queryInterface(
+ XNamed.class,
+ formElements1.getByIndex(i));
+ log.println(" '" + elemName.getName() + "'");
+ }
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ }
+
+ formLoader.load();
+
+ try {
+ Object temp1 = FormTools.getForms( WriterTools.getDrawPage(xTextDoc) ).getByName("MyForm");
+ oObj = (XForm) AnyConverter.toObject(new Type(XForm.class), temp1);
+
+ XPropertySet xSetProp = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ connection = (XConnection) AnyConverter.toObject(
+ new Type(XConnection.class),
+ xSetProp.getPropertyValue("ActiveConnection"));
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't get Form");
+ e.printStackTrace(log);
+ }
+
+
+ // get a control
+ oInstance = FormTools.createControl(xTextDoc, "TextField");
+
+ log.println("creating a new environment for drawpage object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ // adding relation for closing connection while environment disposing.
+ this.conn = connection;
+
+ // adding relation for XSubmit
+ XControlModel the_Model = shape2.getControl();
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+ XControl cntrl = null;
+
+ //now get the OEditControl
+ cntrl = the_access.getControl(the_Model);
+ log.println(cntrl.getClass().getName());
+
+ XResultSet the_set = UnoRuntime.queryInterface(
+ XResultSet.class, oObj);
+
+ the_set.first();
+
+ tEnv.addObjRelation("Model1", shape1.getControl());
+ tEnv.addObjRelation("Model2", shape2.getControl());
+
+
+ // adding an object for XNameReplace testing
+ log.println("adding oInstance as obj relation to environment");
+ tEnv.addObjRelation("INSTANCE", oInstance);
+
+
+ // INDEX : _XNameContainer
+ log.println("adding INDEX as obj relation to environment");
+ tEnv.addObjRelation("INDEX", "0");
+
+
+ // INDEX : _XNameReplace
+ log.println("adding NameReplaceIndex as obj relation to environment");
+ tEnv.addObjRelation("XNameReplaceINDEX", "2");
+
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println("adding INSTANCEn as obj relation to environment");
+
+ String tc = (String) Param.get("THRCNT");
+ int THRCNT = 1;
+
+ if (tc != null) {
+ THRCNT = Integer.parseInt(tc);
+ }
+
+ for (int n = 1; n < (2 * (THRCNT + 1)); n++) {
+ log.println("adding INSTANCE" + n +
+ " as obj relation to environment");
+ tEnv.addObjRelation("INSTANCE" + n,
+ FormTools.createControl(xTextDoc, "CheckBox"));
+ }
+
+
+ // adding relation for XNameContainer
+ tEnv.addObjRelation("XNameContainer.AllowDuplicateNames", new Object());
+
+
+ // adding relation for XPersistObject
+ tEnv.addObjRelation("OBJNAME", "stardiv.one.form.component.Form");
+
+ // Adding obj relation for XRowSetApproveBroadcaster test
+ final XResultSet xResSet = UnoRuntime.queryInterface(
+ XResultSet.class, oObj);
+ final XResultSetUpdate xResSetUpdate = UnoRuntime.queryInterface(
+ XResultSetUpdate.class,
+ oObj);
+ final XRowSet xRowSet = UnoRuntime.queryInterface(
+ XRowSet.class, oObj);
+ final PrintWriter logF = log;
+ tEnv.addObjRelation("XRowSetApproveBroadcaster.ApproveChecker",
+ new ifc.sdb._XRowSetApproveBroadcaster.RowSetApproveChecker() {
+ public void moveCursor() {
+ try {
+ xResSet.beforeFirst();
+ xResSet.afterLast();
+ } catch (com.sun.star.sdbc.SQLException e) {
+ logF.println("### _XRowSetApproveBroadcaster." + "RowSetApproveChecker.moveCursor() :");
+ e.printStackTrace(logF);
+ }
+ }
+
+ public RowChangeEvent changeRow() {
+ try {
+ xResSet.first();
+
+ XRowUpdate row = UnoRuntime.queryInterface(
+ XRowUpdate.class, xResSet);
+ row.updateString(1, "1");
+ xResSetUpdate.updateRow();
+ } catch (com.sun.star.sdbc.SQLException e) {
+ logF.println("### _XRowSetApproveBroadcaster." + "RowSetApproveChecker.changeRow() :");
+ e.printStackTrace(logF);
+ }
+
+ RowChangeEvent ev = new RowChangeEvent();
+ ev.Action = com.sun.star.sdb.RowChangeAction.UPDATE;
+ ev.Rows = 1;
+
+ return ev;
+ }
+
+ public void changeRowSet() {
+ try {
+ xRowSet.execute();
+ } catch (com.sun.star.sdbc.SQLException e) {
+ logF.println("### _XRowSetApproveBroadcaster." + "RowSetApproveChecker.changeRowSet() :");
+ e.printStackTrace(logF);
+ }
+ }
+ });
+
+
+ // Adding relation for XColumnLocate test
+ tEnv.addObjRelation("XColumnLocate.ColumnName", DBTools.TST_STRING_F);
+
+ // Adding relation for XParameters ifc test
+ ArrayList<Object> params = new ArrayList<Object>();
+
+
+ /***** statement parameter types and their initial
+ values must be added here as relation. */
+ params.add("SAU99") ;
+ params.add(Boolean.FALSE) ;
+ params.add(Byte.valueOf((byte) 123)) ;
+ params.add(Short.valueOf((short) 234)) ;
+ params.add(Integer.valueOf(12345)) ;
+ params.add(Long.valueOf(23456)) ;
+ params.add(new Float(1.234)) ;
+ params.add(new Double(2.345)) ;
+ params.add(new byte[] {1, 2, 3}) ;
+ Date d = new Date();
+ d.Day = 26; d.Month = 1; d.Year = 2001;
+ params.add(d) ;
+ Time t = new Time();
+ t.Hours = 1; t.NanoSeconds = 123456789; t.Minutes = 25; t.Seconds = 14;
+ params.add(t) ;
+ DateTime dt = new DateTime();
+ dt.Day = 26; dt.Month = 1; dt.Year = 2001; dt.Hours = 1;
+ dt.NanoSeconds = 123456789; dt.Minutes = 25; dt.Seconds = 14;
+ params.add(dt) ;
+ tEnv.addObjRelation("XParameters.ParamValues", params);
+
+ // Adding relation for XCompletedExecution
+ tEnv.addObjRelation("InteractionHandlerChecker", new InteractionHandlerImpl());
+
+ // Adding for XWarningSupplier
+ tEnv.addObjRelation("CheckWarningsSupplier", Boolean.valueOf(isMySQLDB));
+
+ // Adding relation for XDatabaseParameterBroadcaster
+ tEnv.addObjRelation("ParameterListenerChecker", new ODatabaseForm.ParameterListenerImpl());
+ XPropertySet xSetProp = UnoRuntime.queryInterface
+ (XPropertySet.class, oObj) ;
+ try {
+ xSetProp.setPropertyValue("DataSourceName", dbSourceName) ;
+ if(isMySQLDB) {
+ xSetProp.setPropertyValue("Command", "SELECT Column0 FROM soffice_test_table WHERE ( ( Column0 = :param1 ) )");
+ }
+ else {
+ xSetProp.setPropertyValue("Command", "SELECT \"_TEXT\" FROM \"ODatabaseForm_tmp0\" WHERE ( ( \"_TEXT\" = :param1 ) )");
+ }
+
+ xSetProp.setPropertyValue("CommandType",
+ Integer.valueOf(CommandType.COMMAND)) ;
+ }
+ catch(Exception e) {
+ }
+
+ // Adding relation for XResultSetUpdate
+ final XRowUpdate xRowUpdate = UnoRuntime.queryInterface(
+ XRowUpdate.class, oObj);
+ final XRow xRow = UnoRuntime.queryInterface(XRow.class, oObj);
+
+ tEnv.addObjRelation("XResultSetUpdate.UpdateTester",
+ new ifc.sdbc._XResultSetUpdate.UpdateTester() {
+ String lastUpdate = null;
+
+ public int rowCount() throws SQLException {
+ int prevPos = xResSet.getRow();
+ xResSet.last();
+
+ int count = xResSet.getRow();
+ xResSet.absolute(prevPos);
+
+ return count;
+ }
+
+ public void update() throws SQLException {
+ lastUpdate = xRow.getString(1);
+ lastUpdate += "_";
+ xRowUpdate.updateString(1, lastUpdate);
+ }
+
+ public boolean wasUpdated() throws SQLException {
+ String getStr = xRow.getString(1);
+
+ return lastUpdate.equals(getStr);
+ }
+
+ public int currentRow() throws SQLException {
+ return xResSet.getRow();
+ }
+ });
+
+ // Adding relations for XRow as a Vector with all data
+ // of current row of RowSet.
+
+ ArrayList<Object> rowData = new ArrayList<Object>();
+
+ for (int i = 0; i < DBTools.TST_TABLE_VALUES[0].length; i++) {
+ rowData.add(DBTools.TST_TABLE_VALUES[0][i]);
+ }
+
+ tEnv.addObjRelation("CurrentRowData", rowData);
+
+ // Adding relation for XRowUpdate
+ XRow row = UnoRuntime.queryInterface(XRow.class, oObj);
+ tEnv.addObjRelation("XRowUpdate.XRow", row);
+
+
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "Cycle");
+
+ PropertyValue propVal = new PropertyValue();
+ propVal.Name = "Name";
+ propVal.Value = "Text since XPropertyAccess";
+
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", propVal);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * Closes connection of <code>RowSet</code> instance created.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("closing connection...");
+ try {
+ conn.close();
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't close the connection");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Connection was already closed. It's OK.");
+ }
+
+
+ log.println("closing data source...");
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, dbSrc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close data source");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close data source");
+ }
+
+
+ log.println("closing document...");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+
+ log.println("revoking data source...");
+ try {
+ dbTools.revokeDB(dbSourceName);
+ } catch (com.sun.star.container.NoSuchElementException e){
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error while object test cleaning up :");
+ e.printStackTrace(log);
+ throw new StatusException("Error while object test cleaning up", e);
+ }
+ }
+
+ /**
+ * Implementation of interface _XDatabaseParameterBroadcaster.CheckParameterListener
+ * for the XDatabaseParameterBroadcaster test
+ * @see ifc.form._XDatabaseParameterBroadcaster
+ */
+ private static class ParameterListenerImpl implements _XDatabaseParameterBroadcaster.CheckParameterListener {
+ private boolean listenerWasCalled = false;
+
+ private PrintWriter log;
+
+ ParameterListenerImpl() throws UnsupportedEncodingException {
+ log = new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"));
+ }
+
+ /**
+ * Return true, if the listener was called, false otherwise.
+ * @return True, if any other method of the listener was called.
+ */
+ public boolean checkListener() {
+ return listenerWasCalled;
+ }
+
+ /**
+ * Take the DataBaseParameterEvent and fill it with a meaningful value.
+ * @param e The database parameter that will be filled with a value.
+ * @return True, if the value could be filled.
+ */
+ public boolean approveParameter(DatabaseParameterEvent e) {
+ log.println("### ParameterListenerImpl: approve called.");
+ XIndexAccess params = e.Parameters;
+ int count = params.getCount();
+ try {
+ for(int i=0; i<count; i++) {
+ log.println("### _XDatabaseParameterBroadcaster.ParameterListenerImpl: Parameter "+i+": "+params.getByIndex(i));
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, params.getByIndex(i));
+ log.println("### _XDatabaseParameterBroadcaster.ParameterListenerImpl: Parameter Name: '"+xProp.getPropertyValue("Name") + "' is set to Value '1'");
+ xProp.setPropertyValue("Value", Integer.valueOf(1));
+ listenerWasCalled = true;
+ }
+ }
+ catch(Exception eI) {
+ log.println("### _XDatabaseParameterBroadcaster.ParameterListenerImpl: Exception!");
+ eI.printStackTrace(log);
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Dummy implementation. Do nothing, just log
+ * @param o Ignore.
+ */
+ public void disposing(EventObject o) {
+ log.println("### _XDatabaseParameterBroadcaster.ParameterListenerImpl: disposing");
+ }
+
+ /**
+ * Set a log writer, so messages go to log instead of Standard.out
+ * @param log The log messages get printed to.
+ */
+ public void setLog(PrintWriter log) {
+ this.log = log;
+ }
+
+ }
+
+
+ /**
+ * Implementation of interface _XCompletedExecution.CheckInteractionHandler
+ * for the XCompletedExecution test
+ * @see ifc.sdb._XCompletedExecution
+ */
+ private static class InteractionHandlerImpl implements _XCompletedExecution.CheckInteractionHandler {
+ private boolean handlerWasUsed = false;
+ private PrintWriter log;
+
+ InteractionHandlerImpl() throws UnsupportedEncodingException {
+ log = new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"));
+ }
+
+ public boolean checkInteractionHandler() {
+ return handlerWasUsed;
+ }
+
+ public void handle(XInteractionRequest xInteractionRequest) {
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: handle called.");
+ handlerWasUsed = true;
+
+ Object o = xInteractionRequest.getRequest();
+ ParametersRequest req = (ParametersRequest)o;
+ XIndexAccess params = req.Parameters;
+ int count = params.getCount();
+ try {
+ for(int i=0; i<count; i++) {
+ params.getByIndex(i);
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: Parameter "+i+": "+params.getByIndex(i));
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, params.getByIndex(i));
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: Parameter Name: '"+xProp.getPropertyValue("Name") + "' is set to Value '1'");
+ xProp.setPropertyValue("Value", Integer.valueOf(1));
+ handlerWasUsed = true;
+ }
+ }
+ catch(Exception eI) {
+ log.println("### _XCompletedExecution.InteractionHandlerImpl: Exception!");
+ eI.printStackTrace(log);
+ }
+ }
+
+ public void setLog(PrintWriter log) {
+ this.log = log;
+ }
+
+ }
+} // finish class ODatabaseForm
diff --git a/qadevOOo/tests/java/mod/_forms/ODateControl.java b/qadevOOo/tests/java/mod/_forms/ODateControl.java
new file mode 100644
index 000000000..7d4dfc9e4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ODateControl.java
@@ -0,0 +1,222 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.DateField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XDateField</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XDateField
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XDateField
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class ODateControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.DateField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "DateField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the ODateControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for ODateControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ anotherCtrl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class ODateControl
diff --git a/qadevOOo/tests/java/mod/_forms/ODateModel.java b/qadevOOo/tests/java/mod/_forms/ODateModel.java
new file mode 100644
index 000000000..0d4c75800
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ODateModel.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+import util.DBTools;
+
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.DateField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::awt::UnoControlDateFieldModel</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::form::component::DateField</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TestDB </b> (directory) : directory with test database </li>
+* <li><b> TestDB/TestDB.dbf </b> : table file. See
+* {@link util.DBTools DBTools} class for more information.</li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.awt.UnoControlDateFieldModel
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.form.component.DateField
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.io._XPersistObject
+* @see ifc.awt._UnoControlDateFieldModel
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.form.component._DateField
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class ODateModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Date";
+ * super.m_kindOfControl="DateField";
+ * super.m_ObjectName = "stardiv.one.form.component.DateField";
+ *
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_DATE_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * NamedValue Date = new NamedValue();
+ * Date.Name = "Date";
+ * Date.Value = Integer.valueOf(DBTools.TST_DATE);
+ * super.m_propertiesToSet.add(Date);
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "Date";
+
+ super.m_kindOfControl="DateField";
+
+ super.m_ObjectName = "stardiv.one.form.component.DateField";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_DATE_F;
+ super.m_propertiesToSet.add(DataField);
+
+ NamedValue Date = new NamedValue();
+ Date.Name = "Date";
+ Date.Value = new com.sun.star.util.Date();
+ super.m_propertiesToSet.add(Date);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class ODateModel
diff --git a/qadevOOo/tests/java/mod/_forms/OEditControl.java b/qadevOOo/tests/java/mod/_forms/OEditControl.java
new file mode 100644
index 000000000..ae231ace5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OEditControl.java
@@ -0,0 +1,240 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.TextField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::form::XChangeBroadcaster</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.form.XChangeBroadcaster
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XTextListener
+ * @see ifc.form._XChangeBroadcaster
+ * @see ifc.awt._XWindow
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class OEditControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.TextField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * <li> <code>'Win1'</code> for
+ * {@link ifc.form._XChangeBroadcaster} : the window (controller)
+ * of the tested component. </li>
+ * <li> <code>'Win2'</code> for
+ * {@link ifc.form._XChangeBroadcaster} : the window (controller)
+ * of another component. </li>
+ * <li> <code>'CONTROL'</code> for
+ * {@link ifc.form._XChangeBroadcaster} : the controller
+ * of another component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XControl aControl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OEditControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OEditControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // relations for XChangeBroadcaster
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("Win1",
+ UnoRuntime.queryInterface(XWindow.class,
+ oObj));
+ tEnv.addObjRelation("Win2", forObjRel);
+ tEnv.addObjRelation("CONTROL", aControl);
+
+
+ // relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OEditControl
diff --git a/qadevOOo/tests/java/mod/_forms/OEditModel.java b/qadevOOo/tests/java/mod/_forms/OEditModel.java
new file mode 100644
index 000000000..b672cbd9c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OEditModel.java
@@ -0,0 +1,142 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+import util.DBTools;
+
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.TextField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::component::TextField</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::awt::UnoControlEditModel</code></li>
+* <li> <code>com::sun::star::form::component::DatabaseTextField</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TestDB </b> (directory) : directory with test database </li>
+* <li><b> TestDB/TestDB.dbf </b> : table file. See
+* {@link util.DBTools DBTools} class for more information.</li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.component.TextField
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.awt.UnoControlEditModel
+* @see com.sun.star.form.component.DatabaseTextField
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.io._XPersistObject
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form.component._TextField
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.awt._UnoControlEditModel
+* @see ifc.form.component._DatabaseTextField
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class OEditModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * <super.m_ChangePropertyName</CODE> = "Text";
+ * super.m_kindOfControl</CODE>="TextField";
+ * super.m_ObjectName</CODE> = "Edit";
+ * NamedValue myProp = new NamedValue();
+ * myProp.Name = "DataField";
+ * myProp.Value = DBTools.TST_STRING_F;
+ * super.m_propertiesToSet.add(myProp);
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="TextField";
+
+ super.m_ObjectName = "stardiv.one.form.component.Edit";
+
+ NamedValue myProp = new NamedValue();
+ myProp.Name = "DataField";
+ myProp.Value = DBTools.TST_STRING_F;
+ super.m_propertiesToSet.add(myProp);
+
+ super.m_LCShape_Type = "FixedText";
+
+ super.m_ChangePropertyName = "Text";
+ }
+
+} // finish class OEditModel
diff --git a/qadevOOo/tests/java/mod/_forms/OFileControlModel.java b/qadevOOo/tests/java/mod/_forms/OFileControlModel.java
new file mode 100644
index 000000000..994e62123
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OFileControlModel.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.form.component.FileControl</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * <li> <code>com::sun::star::form::FormControlModel</code></li>
+ * <li> <code>com::sun::star::awt::UnoControlFileControlModel</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::form::component::FileControl</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.container.XChild
+ * @see com.sun.star.form
+ * @see com.sun.star.awt.UnoControlFileControlModel
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.form.component.FileControl
+ * @see ifc.io._XPersistObject
+ * @see ifc.container._XChild
+ * @see ifc.form._FormControlModel
+ * @see ifc.awt._UnoControlFileControlModel
+ * @see ifc.form._FormComponent
+ * @see ifc.beans._XPropertySet
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XPropertyState
+ * @see ifc.container._XNamed
+ * @see ifc.beans._XMultiPropertySet
+ * @see ifc.lang._XComponent
+ * @see ifc.form.component._FileControl
+ */
+public class OFileControlModel extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Draw document where controls are placed.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Draw document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xDrawDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates FileControl in the Form. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} : name of service which is
+ * represented by this object. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ //get FileControlModel
+ String objName = "FileControl";
+
+ XControlShape aShape = null;
+
+ Size size = new Size();
+ Point position = new Point();
+ XControlModel aControl = null;
+
+ //get MSF
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ xDrawDoc);
+
+ Object oInt = oDocMSF.createInstance(
+ "com.sun.star.drawing.ControlShape");
+ Object aCon = oDocMSF.createInstance(
+ "com.sun.star.form.component." + objName);
+ aControl = UnoRuntime.queryInterface(
+ XControlModel.class, aCon);
+ aShape = UnoRuntime.queryInterface(
+ XControlShape.class, oInt);
+ size.Height = 1500;
+ size.Width = 3000;
+ position.X = 1000;
+ position.Y = 1000;
+ aShape.setSize(size);
+ aShape.setPosition(position);
+
+ aShape.setControl(aControl);
+
+ DrawTools.getDrawPage(xDrawDoc, 0).add(aShape);
+ oObj = aShape.getControl();
+
+ log.println("creating a new environment for drawpage object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.one.form.component." +
+ objName);
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "HelpText";
+ prop.Value = "new Help Text since XPropertyAccess";
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", prop);
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "HelpText");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OFileControlModel
diff --git a/qadevOOo/tests/java/mod/_forms/OFixedTextModel.java b/qadevOOo/tests/java/mod/_forms/OFixedTextModel.java
new file mode 100644
index 000000000..2b8469144
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OFixedTextModel.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.FixedText</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::awt::UnoControlFixedTextModel</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.container.XChild
+* @see com.sun.star.form
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.awt.UnoControlFixedTextModel
+* @see com.sun.star.lang.XComponent
+* @see ifc.io._XPersistObject
+* @see ifc.container._XChild
+* @see ifc.form._FormControlModel
+* @see ifc.form._FormComponent
+* @see ifc.beans._XPropertySet
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XPropertyState
+* @see ifc.container._XNamed
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.awt._UnoControlFixedTextModel
+* @see ifc.lang._XComponent
+*/
+
+public class OFixedTextModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="CommandButton";
+ * super.m_ObjectName = "com.sun.star.form.component.CommandButton";
+ * super.m_LCShape_Type = "CommandButton";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="FixedText";
+
+ super.m_ObjectName = "stardiv.one.form.component.FixedText";
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OFixedTextModel
diff --git a/qadevOOo/tests/java/mod/_forms/OFormattedControl.java b/qadevOOo/tests/java/mod/_forms/OFormattedControl.java
new file mode 100644
index 000000000..11793b31d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OFormattedControl.java
@@ -0,0 +1,219 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.FormattedField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class OFormattedControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.FormattedField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "FormattedField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OFormattedControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OFormattedControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ anotherCtrl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OFormattedControl
diff --git a/qadevOOo/tests/java/mod/_forms/OFormattedFieldWrapper.java b/qadevOOo/tests/java/mod/_forms/OFormattedFieldWrapper.java
new file mode 100644
index 000000000..4a5334044
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OFormattedFieldWrapper.java
@@ -0,0 +1,135 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+
+import util.DBTools;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.form.component.FormattedField</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::form::XReset</code></li>
+ * <li> <code>com::sun::star::form::XBoundComponent</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+ * <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+ * <li> <code>com::sun::star::form::component::DatabaseFormattedField</code></li>
+ * <li> <code>com::sun::star::form::FormControlModel</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::form::XLoadListener</code></li>
+ * <li> <code>com::sun::star::awt::UnoControlFormattedFieldModel</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.form.XReset
+ * @see com.sun.star.form.XBoundComponent
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see com.sun.star.form.DataAwareControlModel
+ * @see com.sun.star.form.XUpdateBroadcaster
+ * @see com.sun.star.form.component.DatabaseFormattedField
+ * @see com.sun.star.form
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.lang.XEventListener
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.form.XLoadListener
+ * @see com.sun.star.awt.UnoControlFormattedFieldModel
+ * @see com.sun.star.container.XChild
+ * @see ifc.io._XPersistObject
+ * @see ifc.form._XReset
+ * @see ifc.form._XBoundComponent
+ * @see ifc.form._FormComponent
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XMultiPropertySet
+ * @see ifc.form._DataAwareControlModel
+ * @see ifc.form._XUpdateBroadcaster
+ * @see ifc.form.component._DatabaseFormattedField
+ * @see ifc.form._FormControlModel
+ * @see ifc.beans._XPropertyState
+ * @see ifc.container._XNamed
+ * @see ifc.lang._XComponent
+ * @see ifc.lang._XEventListener
+ * @see ifc.beans._XPropertyAccess
+ * @see ifc.beans._XPropertyContainer
+ * @see ifc.beans._XPropertySet
+ * @see ifc.form._XLoadListener
+ * @see ifc.awt._UnoControlFormattedFieldModel
+ * @see ifc.container._XChild
+ */
+public class OFormattedFieldWrapper extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ ' super.m_ChangePropertyName = "Text";
+ * super.m_kindOfControl="DatabaseImageControl";
+ * super.m_ObjectName = "stardiv.one.form.component.DatabaseImageControl";
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_BINARY_STREAM_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "Text";
+
+ super.m_kindOfControl="DatabaseFormattedField";
+
+ super.m_ObjectName = "stardiv.one.form.component.Edit";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_STRING_F;
+ super.m_propertiesToSet.add(DataField);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OFormattedFieldWrapper
diff --git a/qadevOOo/tests/java/mod/_forms/OFormsCollection.java b/qadevOOo/tests/java/mod/_forms/OFormsCollection.java
new file mode 100644
index 000000000..00bc2e21b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OFormsCollection.java
@@ -0,0 +1,179 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.FormTools;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.Forms</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNameReplace</code></li>
+* <li> <code>com::sun::star::container::XIndexReplace</code></li>
+* <li> <code>com::sun::star::container::XNameContainer</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::container::XIndexContainer</code></li>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* </ul>
+*
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+*
+* @see com.sun.star.container.XNameReplace
+* @see com.sun.star.container.XIndexReplace
+* @see com.sun.star.container.XNameContainer
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.container.XIndexContainer
+* @see com.sun.star.container.XNameAccess
+* @see ifc.container._XNameReplace
+* @see ifc.container._XIndexReplace
+* @see ifc.container._XNameContainer
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.container._XEnumerationAccess
+* @see ifc.container._XIndexContainer
+* @see ifc.container._XNameAccess
+*/
+public class OFormsCollection extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a draw document");
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * Disposes drawing document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xDrawDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Adds some controls to the 'Standard' form of a draw page,
+ * then adds an empty form to a collection of forms. Then
+ * returns the collection as a test object. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'INSTANCE1' ... 'INSTANCEN'</code> for
+ * <code>XNameReplace, XNameContainer, XIndexReplace,
+ * XIndexContainer </code> : objects to be inserted
+ * or replaced with in interface tests. Number of relations
+ * depends on number of interface test threads. For each
+ * thread there must be an individual element. </li>
+ * <li> <code>'XNameContainer.AllowDuplicateNames'</code> :
+ * if this relation exists then container elements can have duplicate
+ * names. In case of forms' collection forms can have equal names.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws com.sun.star.uno.Exception
+ {
+ XInterface oObj = null;
+ XDrawPage oDP = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ oDP = DrawTools.getDrawPage(xDrawDoc, 0);
+
+ (DrawTools.getShapes(oDP))
+ .add(FormTools.createControlShape(xDrawDoc, 2000, 1500, 1000, 1000,
+ "CheckBox"));
+ (DrawTools.getShapes(oDP))
+ .add(FormTools.createControlShape(xDrawDoc, 3000, 4500, 15000,
+ 1000, "CommandButton"));
+ (DrawTools.getShapes(oDP))
+ .add(FormTools.createControlShape(xDrawDoc, 5000, 3500, 7500, 5000,
+ "TextField"));
+
+ oObj = FormTools.getForms(oDP);
+ FormTools.insertForm(xDrawDoc, (XNameContainer) oObj, "SecondForm");
+
+ log.println("creating a new environment for drawpage object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println("adding INSTANCEn as obj relation to environment");
+
+ XComponent xComp = UnoRuntime.queryInterface(
+ XComponent.class, xDrawDoc);
+ int THRCNT = 1;
+ if (Param.get("THRCNT")!= null) {
+ THRCNT = Integer.parseInt((String) Param.get("THRCNT"));
+ }
+
+ for (int n = 1; n < (THRCNT + 1); n++) {
+ log.println("adding INSTANCE" + n +
+ " as obj relation to environment");
+ tEnv.addObjRelation("INSTANCE" + n,
+ FormTools.createControl(xComp, "Form"));
+ }
+
+
+ // adding indicator that this collection can have duplicate
+ // elements with the same names for XNameContainer test.
+ tEnv.addObjRelation("XNameContainer.AllowDuplicateNames", new Object());
+
+ tEnv.addObjRelation("INSTANCE", FormTools.createControl(xComp, "Form"));
+ tEnv.addObjRelation("INSTANCE2",
+ FormTools.createControl(xComp, "Form"));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OFormsCollection
diff --git a/qadevOOo/tests/java/mod/_forms/OGridControlModel.java b/qadevOOo/tests/java/mod/_forms/OGridControlModel.java
new file mode 100644
index 000000000..b440f24ce
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OGridControlModel.java
@@ -0,0 +1,347 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.container.XNamed;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.form.XGridColumnFactory;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.GridControl</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::container::XNameReplace</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::script::XEventAttacherManager</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::form::component::GridControl</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XIndexReplace</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XNameContainer</code></li>
+* <li> <code>com::sun::star::form::XGridColumnFactory</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XIndexContainer</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* <li> <code>com::sun::star::container::XContainer</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+*
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.container.XNameReplace
+* @see com.sun.star.form.XReset
+* @see com.sun.star.script.XEventAttacherManager
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.form.component.GridControl
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XIndexReplace
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XNameContainer
+* @see com.sun.star.form.XGridColumnFactory
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XIndexContainer
+* @see com.sun.star.container.XChild
+* @see com.sun.star.container.XContainer
+* @see ifc.io._XPersistObject
+* @see ifc.container._XNameReplace
+* @see ifc.form._XReset
+* @see ifc.script._XEventAttacherManager
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.container._XElementAccess
+* @see ifc.form.component._GridControl
+* @see ifc.view._XSelectionSupplier
+* @see ifc.container._XEnumerationAccess
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XIndexReplace
+* @see ifc.container._XNamed
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XNameContainer
+* @see ifc.form._XGridColumnFactory
+* @see ifc.lang._XComponent
+* @see ifc.container._XNameAccess
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XIndexContainer
+* @see ifc.container._XChild
+* @see ifc.container._XContainer
+*/
+
+public class OGridControlModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="CommandButton";
+ * super.m_ObjectName = "com.sun.star.form.component.CommandButton";
+ * super.m_LCShape_Type = "CommandButton";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="GridControl";
+
+ super.m_ObjectName = "stardiv.one.form.component.Grid";
+
+ super.m_LCShape_Type = "GridControl";
+
+ }
+
+
+ /**
+ * calls <CODE>createTestEnvironment()</CODE> from its super class
+ * @param Param the test parameter
+ * @param log the log writer
+ * @return lib.TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ TestEnvironment tEnv = super.createTestEnvironment(Param, log);
+
+ XInterface oObj = tEnv.getTestObject();
+
+ XPropertySet aControl = null;
+ XPropertySet aControl2 = null;
+ XPropertySet aControl3 = null;
+ XPropertySet aControl4 = null;
+ XPropertySet aControl5 = null;
+
+ XGridColumnFactory columns = UnoRuntime.queryInterface(
+ XGridColumnFactory.class, oObj);
+ aControl = columns.createColumn("TextField");
+ aControl2 = columns.createColumn("DateField");
+ aControl3 = columns.createColumn("TextField");
+ aControl4 = columns.createColumn("TextField");
+ aControl5 = columns.createColumn("TextField");
+
+ XNameContainer aContainer = UnoRuntime.queryInterface(
+ XNameContainer.class, oObj);
+
+ aContainer.insertByName("First", aControl);
+ aContainer.insertByName("Second", aControl2);
+
+ //Relations for XSelectionSupplier
+ tEnv.addObjRelation("Selections", new Object[] { aControl, aControl2 });
+
+ // adding relation for XNameContainer
+ tEnv.addObjRelation("XNameContainer.AllowDuplicateNames", new Object());
+
+
+ // adding relation for XContainer
+ tEnv.addObjRelation("INSTANCE", aControl3);
+ tEnv.addObjRelation("INSTANCE1", aControl4);
+ tEnv.addObjRelation("INSTANCE2", aControl5);
+
+
+ tEnv.addObjRelation("Comparer",
+ new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XNamed named1 = UnoRuntime.queryInterface(
+ XNamed.class, o1);
+ XNamed named2 = UnoRuntime.queryInterface(
+ XNamed.class, o2);
+
+ if (named1.getName().equals(named2.getName())) {
+ return 0;
+ }
+
+ return -1;
+ }
+ });
+
+
+ return tEnv;
+ }
+
+} // finish class OButtonModelold
+
+
+class OGridControlModelold extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes drawing document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xDrawDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * <code>GridControl</code> component created and added to the draw
+ * page. Then two columns are created and added to the grid.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'INSTANCE1' ... 'INSTANCEN'</code> for
+ * <code>XNameReplace, XNameContainer, XIndexReplace,
+ * XIndexContainer </code> : objects to be inserted
+ * or replaced with in interface tests. Number of relations
+ * depends on number of interface test threads. For each
+ * thread there must be an individual element. </li>
+ * <li> <code>'XNameContainer.AllowDuplicateNames'</code> :
+ * if this relation exists then container elements can have duplicate
+ * names. <code>GridControl</code> can have.</li>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} : name of service which is
+ * represented by this object. </li>
+ * <li> <code>'INSTANCE'</code> for
+ * {@link ifc.container._XContainer} : a column instance. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XInterface oInstance = null;
+ XPropertySet aControl = null;
+ XPropertySet aControl2 = null;
+ XPropertySet aControl3 = null;
+ XPropertySet aControl4 = null;
+ XGridColumnFactory columns = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ XControlShape shape = FormTools.insertControlShape(xDrawDoc, 5000,
+ 7000, 2000, 2000,
+ "GridControl");
+ oObj = shape.getControl();
+
+ log.println("creating a new environment for drawpage object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ columns = UnoRuntime.queryInterface(
+ XGridColumnFactory.class, oObj);
+ aControl = columns.createColumn("TextField");
+ aControl2 = columns.createColumn("DateField");
+ aControl3 = columns.createColumn("TextField");
+ aControl4 = columns.createColumn("TextField");
+ columns.createColumn("TextField");
+
+ XNameContainer aContainer = UnoRuntime.queryInterface(
+ XNameContainer.class, oObj);
+
+ aContainer.insertByName("First", aControl);
+ aContainer.insertByName("Second", aControl2);
+
+ //Relations for XSelectionSupplier
+ tEnv.addObjRelation("Selections", new Object[] { aControl, aControl2 });
+
+ // COMPARER
+
+ int THRCNT = 1;
+ String count = (String)Param.get("THRCNT");
+ if (count != null)
+ THRCNT = Integer.parseInt(count);
+
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println("adding INSTANCEn as obj relation to environment");
+
+ for (int n = 1; n < (3 * THRCNT + 1); n++) {
+ log.println("adding INSTANCE" + n +
+ " as obj relation to environment");
+ oInstance = columns.createColumn("TextField");
+ tEnv.addObjRelation("INSTANCE" + n, oInstance);
+ }
+
+
+ // adding relation for XNameContainer
+ tEnv.addObjRelation("XNameContainer.AllowDuplicateNames", new Object());
+
+ // adding relation for XContainer
+ tEnv.addObjRelation("INSTANCE", aControl3);
+ tEnv.addObjRelation("INSTANCE2", aControl4);
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OGridControlModel
diff --git a/qadevOOo/tests/java/mod/_forms/OGroupBoxControl.java b/qadevOOo/tests/java/mod/_forms/OGroupBoxControl.java
new file mode 100644
index 000000000..dea7c0058
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OGroupBoxControl.java
@@ -0,0 +1,193 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.GroupBox</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XView
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XWindow
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XView
+ */
+public class OGroupBoxControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.GroupBox</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 5000,
+ 7000, 2000, 2000,
+ "GroupBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OGroupBoxControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OGroupBoxControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+
+ // Adding relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow",
+ UnoRuntime.queryInterface(XWindow.class,
+ anotherCtrl));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OGroupBoxControl
diff --git a/qadevOOo/tests/java/mod/_forms/OGroupBoxModel.java b/qadevOOo/tests/java/mod/_forms/OGroupBoxModel.java
new file mode 100644
index 000000000..dcc810bd6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OGroupBoxModel.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.form.component.GroupBox</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::UnoControlGroupBoxModel</code></li>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * <li> <code>com::sun::star::form::FormControlModel</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.awt.UnoControlGroupBoxModel
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.container.XChild
+ * @see com.sun.star.form
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.beans.XPropertyAccess
+ * @see com.sun.star.beans.XPropertyContainer
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.awt._UnoControlGroupBoxModel
+ * @see ifc.io._XPersistObject
+ * @see ifc.container._XChild
+ * @see ifc.form._FormControlModel
+ * @see ifc.form._FormComponent
+ * @see ifc.beans._XPropertySet
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XPropertyState
+ * @see ifc.container._XNamed
+ * @see ifc.beans._XMultiPropertySet
+ * @see ifc.lang._XComponent
+ */
+public class OGroupBoxModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * <super.m_ChangePropertyName</CODE> = "Text";
+ * super.m_kindOfControl</CODE>="GroupBox";
+ * super.m_ObjectName</CODE> = "GroupBox";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="GroupBox";
+
+ super.m_ObjectName = "stardiv.one.form.component.GroupBox";
+
+ super.m_LCShape_Type = "FixedText";
+
+ super.m_ChangePropertyName = "Text";
+ }
+
+} // finish class OGroupBoxModel
diff --git a/qadevOOo/tests/java/mod/_forms/OHiddenModel.java b/qadevOOo/tests/java/mod/_forms/OHiddenModel.java
new file mode 100644
index 000000000..388447f50
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OHiddenModel.java
@@ -0,0 +1,175 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.PropertyValue;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.FormTools;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.form.component.HiddenControl</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * <li> <code>com::sun::star::form::FormControlModel</code></li>
+ * <li> <code>com::sun::star::form::component::HiddenControl</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.container.XChild
+ * @see com.sun.star.form
+ * @see com.sun.star.form.component.HiddenControl
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.io._XPersistObject
+ * @see ifc.container._XChild
+ * @see ifc.form._FormControlModel
+ * @see ifc.form.component._HiddenControl
+ * @see ifc.form._FormComponent
+ * @see ifc.beans._XPropertySet
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XPropertyState
+ * @see ifc.container._XNamed
+ * @see ifc.beans._XMultiPropertySet
+ * @see ifc.lang._XComponent
+ */
+public class OHiddenModel extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes drawing document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xDrawDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates hidden component, then adds Form into draw page,
+ * and inserts the component into Form components' collection.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} : name of service which is
+ * represented by this object. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+ String objName = "HiddenControl";
+ XInterface ctrl = SOF.createControl(xDrawDoc, objName);
+
+ XDrawPage oDP = DrawTools.getDrawPage(xDrawDoc, 0);
+
+ XNameContainer nc = FormTools.getForms(oDP);
+ FormTools.insertForm(xDrawDoc, nc, "OHiddenModelForm");
+
+ Object frm = nc.getByName("OHiddenModelForm");
+
+ XNameContainer frmNC = UnoRuntime.queryInterface(
+ XNameContainer.class, frm);
+
+ frmNC.insertByName("OHiddenModel", ctrl);
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),
+ frmNC.getByName("OHiddenModel"));
+
+ log.println("creating a new environment for drawpage object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ util.dbg.getSuppServices(oObj);
+
+ log.println("adding DrawDocument as obj relation to environment");
+ tEnv.addObjRelation("OBJNAME", "stardiv.one.form.component.Hidden");
+
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "Name";
+ prop.Value = "new Text since XPropertyAccess";
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", prop);
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "Name");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OHiddenModel
diff --git a/qadevOOo/tests/java/mod/_forms/OImageButtonControl.java b/qadevOOo/tests/java/mod/_forms/OImageButtonControl.java
new file mode 100644
index 000000000..1f55ac59e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OImageButtonControl.java
@@ -0,0 +1,198 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.ImageButton</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::form::XApproveActionBroadcaster</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.form.XApproveActionBroadcaster
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XView
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XWindow
+ * @see ifc.form._XApproveActionBroadcaster
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XView
+ */
+public class OImageButtonControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.ImageButton</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "ImageButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OImageButtonControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for OImageButtonControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ anotherCtrl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OImageButtonControl
diff --git a/qadevOOo/tests/java/mod/_forms/OImageButtonModel.java b/qadevOOo/tests/java/mod/_forms/OImageButtonModel.java
new file mode 100644
index 000000000..0c93ba70f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OImageButtonModel.java
@@ -0,0 +1,103 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.ImageButton</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* <li> <code>com::sun::star::awt::UnoControlImageControlModel</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::form::XImageProducerSupplier</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::component::ImageButton</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.container.XChild
+* @see com.sun.star.awt.UnoControlImageControlModel
+* @see com.sun.star.form
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.form.XImageProducerSupplier
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form.component.ImageButton
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.lang.XComponent
+* @see ifc.io._XPersistObject
+* @see ifc.container._XChild
+* @see ifc.awt._UnoControlImageControlModel
+* @see ifc.form._FormControlModel
+* @see ifc.form._FormComponent
+* @see ifc.form._XImageProducerSupplier
+* @see ifc.beans._XPropertySet
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XPropertyState
+* @see ifc.form.component._ImageButton
+* @see ifc.container._XNamed
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.lang._XComponent
+*/
+
+public class OImageButtonModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="ImageButton";
+ * super.m_ObjectName = "stardiv.one.form.component.ImageButton";
+ * super.m_LCShape_Type = "ImageButton";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="ImageButton";
+
+ super.m_ObjectName = "stardiv.one.form.component.ImageButton";
+
+ super.m_LCShape_Type = "ImageButton";
+
+ }
+
+} // finish class OImageButtonModel
diff --git a/qadevOOo/tests/java/mod/_forms/OImageControlControl.java b/qadevOOo/tests/java/mod/_forms/OImageControlControl.java
new file mode 100644
index 000000000..d859264e1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OImageControlControl.java
@@ -0,0 +1,199 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.DatabaseImageControl</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XView
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XWindow
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XView
+ */
+public class OImageControlControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.DatabaseImageControl</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShapeWithDefaultControl(
+ xTextDoc, 3000, 4500, 15000, 10000,
+ "DatabaseImageControl");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OImageControlControl
+ oObj = the_access.getControl(the_Model);
+ the_win = the_access.getControl(the_Model).getPeer();
+ aControl = the_access.getControl(the_Model2);
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for OImageControlControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OImageControlControl
diff --git a/qadevOOo/tests/java/mod/_forms/OImageControlModel.java b/qadevOOo/tests/java/mod/_forms/OImageControlModel.java
new file mode 100644
index 000000000..174bcd54d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OImageControlModel.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+import util.DBTools;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.DatabaseImageControl</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::form::XImageProducerSupplier</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::awt::UnoControlImageControlModel</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code>
+* <b>(currently nonavailable)</b></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::form::component::DatabaseImageControl</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+*
+* @see com.sun.star.form.XImageProducerSupplier
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.awt.UnoControlImageControlModel
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.form.component.DatabaseImageControl
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.form._XImageProducerSupplier
+* @see ifc.io._XPersistObject
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.awt._UnoControlImageControlModel
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.form.component._DatabaseImageControl
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class OImageControlModel extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="DatabaseImageControl";
+ * super.m_ObjectName = "stardiv.one.form.component.DatabaseImageControl";
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_BINARY_STREAM_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl= "DatabaseImageControl";
+
+ super.m_ObjectName = "stardiv.one.form.component.ImageControl";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_BINARY_STREAM_F;
+ super.m_propertiesToSet.add(DataField);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OImageControlModel
diff --git a/qadevOOo/tests/java/mod/_forms/OListBoxControl.java b/qadevOOo/tests/java/mod/_forms/OListBoxControl.java
new file mode 100644
index 000000000..03dac5b1a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OListBoxControl.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XListBox;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+public class OListBoxControl extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize ( TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null ;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(
+ xTextDoc,3000,4500,15000,10000,"ListBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(
+ xTextDoc,3000,4500,5000,10000,"TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,xTextDoc.getCurrentController());
+
+ //now get the OListBoxControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200,200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println( "creating a new environment for OListBoxControl object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS",aGraphic);
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT",xTextDoc);
+ tEnv.addObjRelation("WINPEER",the_win);
+ tEnv.addObjRelation("TOOLKIT",the_kit);
+ tEnv.addObjRelation("MODEL",the_Model);
+
+ // Adding relation for XItemListener
+ ifc.awt._XItemListener.TestItemListener listener =
+ new ifc.awt._XItemListener.TestItemListener() ;
+ final XListBox box = UnoRuntime.queryInterface(XListBox.class, oObj) ;
+ box.addItemListener(listener) ;
+ tEnv.addObjRelation("TestItemListener", listener) ;
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class, anotherCtrl);
+
+ XWindow objWin = UnoRuntime.queryInterface(XWindow.class, oObj);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow",forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape",aShape);
+
+ tEnv.addObjRelation("Win1",objWin);
+ tEnv.addObjRelation("Win2",forObjRel);
+
+ tEnv.addObjRelation("CONTROL",anotherCtrl);
+
+ // adding relation for XChangeBroadcaster
+ box.addItem("Item1", (short) 0);
+ box.addItem("Item2", (short) 1);
+
+ tEnv.addObjRelation("XChangeBroadcaster.Changer",
+ new ifc.form._XChangeBroadcaster.Changer() {
+ public void change(){
+ box.addItem("Item1", (short) 0);
+ box.addItem("Item2", (short) 1);
+ box.selectItemPos((short) 0, true);
+ box.selectItemPos((short) 1, true);
+ }
+ }
+ );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class OListBoxControl
+
diff --git a/qadevOOo/tests/java/mod/_forms/OListBoxModel.java b/qadevOOo/tests/java/mod/_forms/OListBoxModel.java
new file mode 100644
index 000000000..f829da701
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OListBoxModel.java
@@ -0,0 +1,217 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.form.XBoundComponent;
+import com.sun.star.form.XLoadable;
+
+
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.form._XUpdateBroadcaster.UpdateChecker;
+import java.io.PrintWriter;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.DatabaseListBox</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::awt::UnoControlListBoxModel</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::form::component::ListBox</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::form::component::DatabaseListBox</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.awt.UnoControlListBoxModel
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.form.component.ListBox
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.form.component.DatabaseListBox
+* @see com.sun.star.container.XChild
+* @see ifc.io._XPersistObject
+* @see ifc.awt._UnoControlListBoxModel
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.form.component._ListBox
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.form.component._DatabaseListBox
+* @see ifc.container._XChild
+*/
+public class OListBoxModel extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Date";
+ * super.m_kindOfControl="DateField";
+ * super.m_ObjectName = "stardiv.one.form.component.DateField";
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_DATE_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * NamedValue ListSource = new NamedValue();
+ * ListSource.Name = "ListSource";
+ * ListSource.Value = new String[] {
+ * "OListBoxModel1", "OListBoxModel2", "OListBoxModel3"};
+ * super.m_propertiesToSet.add(ListSource);
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "SelectedItems";
+
+ super.m_kindOfControl="ListBox";
+
+ super.m_ObjectName = "stardiv.one.form.component.ListBox";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_STRING_F;
+ super.m_propertiesToSet.add(DataField);
+
+ NamedValue ListSource = new NamedValue();
+ ListSource.Name = "ListSource";
+ ListSource.Value = new String[] {
+ "OListBoxModel1", "OListBoxModel2", "OListBoxModel3"};
+ super.m_propertiesToSet.add(ListSource);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+ /**
+ * calls <CODE>createTestEnvironment()</CODE> from its super class
+ * This test uses not the generic implementation of <CODE>checker()</CODE> of its
+ * super class. This tests uses its own implementation of <CODE>checker()</CODE>
+ * to test <CODE>com::sun::star::form::XUpdateBroadcaster</CODE>
+ * @param Param the test parameter
+ * @param log the log writer
+ * @return lib.TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ TestEnvironment tEnv = super.createTestEnvironment(Param, log);
+
+ tEnv.addObjRelation("XUpdateBroadcaster.Checker",
+ new Checker(m_XFormLoader, m_XPS, m_XCtrl, m_ChangePropertyName));
+ return tEnv;
+ }
+
+ private static class Checker implements UpdateChecker {
+ private short lastItem = (short) 0;
+ private XLoadable formLoaderF = null;
+ private XPropertySet ps = null;
+ private XInterface ctrl = null;
+ private String ChangePropertyName = null;
+
+ public Checker(XLoadable xl, XPropertySet ps, XInterface ctrl, String ChangePropertyName) {
+ formLoaderF = xl;
+ this.ps = ps;
+ this.ctrl = ctrl;
+ this.ChangePropertyName=ChangePropertyName;
+ }
+
+ public void update() throws com.sun.star.uno.Exception {
+ if (!formLoaderF.isLoaded()) {
+ formLoaderF.load();
+ }
+ lastItem = (short) (1 - lastItem);
+ ps.setPropertyValue(ChangePropertyName, new short[] { lastItem });
+ }
+
+ public void commit() throws SQLException {
+ XBoundComponent bound = UnoRuntime.queryInterface(
+ XBoundComponent.class, ctrl);
+ XResultSetUpdate update = UnoRuntime.queryInterface(
+ XResultSetUpdate.class,
+ formLoaderF);
+
+ bound.commit();
+ update.updateRow();
+ }
+
+ public boolean wasCommited() throws com.sun.star.uno.Exception {
+ formLoaderF.reload();
+
+ short[] getS = (short[]) ps.getPropertyValue(ChangePropertyName);
+
+ return (getS.length > 0) && (lastItem == getS[0]);
+ }
+ }
+
+} // finish class OListBoxModel
diff --git a/qadevOOo/tests/java/mod/_forms/ONavigationBarControl.java b/qadevOOo/tests/java/mod/_forms/ONavigationBarControl.java
new file mode 100644
index 000000000..cec4696cd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ONavigationBarControl.java
@@ -0,0 +1,159 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+import util.DesktopTools;
+
+public class ONavigationBarControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.CommandButton</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "NavigationToolBar");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OButtonControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for ONavigationBarControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class ONavigationBarControl
diff --git a/qadevOOo/tests/java/mod/_forms/ONavigationBarModel.java b/qadevOOo/tests/java/mod/_forms/ONavigationBarModel.java
new file mode 100644
index 000000000..030a9b011
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ONavigationBarModel.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._forms;
+
+import java.io.PrintWriter;
+import lib.TestParameters;
+
+public class ONavigationBarModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_kindOfControl="NavigationToolBar";
+ * super.m_ObjectName = "om.sun.star.form.component.NavigationToolBar";
+ * super.m_LCShape_Type = "NavigationToolBar";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_kindOfControl="NavigationToolBar";
+
+ super.m_ObjectName = "com.sun.star.form.component.NavigationToolBar";
+
+ super.m_LCShape_Type = "NavigationToolBar";
+
+ }
+
+} // finish class ONavigationBarModel
+
diff --git a/qadevOOo/tests/java/mod/_forms/ONumericControl.java b/qadevOOo/tests/java/mod/_forms/ONumericControl.java
new file mode 100644
index 000000000..843e5c8a9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ONumericControl.java
@@ -0,0 +1,224 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.NumericField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XNumericField</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XNumericField
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XNumericField
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class ONumericControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.NumericField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "NumericField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the ONumericControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for ONumericControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ anotherCtrl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ tEnv.addObjRelation("XTextComponent.onlyNumbers", Boolean.TRUE);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class ONumericControl
diff --git a/qadevOOo/tests/java/mod/_forms/ONumericModel.java b/qadevOOo/tests/java/mod/_forms/ONumericModel.java
new file mode 100644
index 000000000..23f26b0e5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ONumericModel.java
@@ -0,0 +1,133 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+import util.DBTools;
+
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.for.component.NumericField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::component::NumericField</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::awt::UnoControlNumericFieldModel</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form.component.NumericField
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.awt.UnoControlNumericFieldModel
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.io._XPersistObject
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form.component._NumericField
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.awt._UnoControlNumericFieldModel
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class ONumericModel extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Time";
+ * super.m_kindOfControl="TimeField";
+ * super.m_ObjectName = "stardiv.one.form.component.TimeField";
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_INT_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "Value";
+
+ super.m_kindOfControl="NumericField";
+
+ super.m_ObjectName = "stardiv.one.form.component.NumericField";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_DOUBLE_F;
+ super.m_propertiesToSet.add(DataField);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class ONumericModel
diff --git a/qadevOOo/tests/java/mod/_forms/OPatternControl.java b/qadevOOo/tests/java/mod/_forms/OPatternControl.java
new file mode 100644
index 000000000..4c67dabd9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OPatternControl.java
@@ -0,0 +1,222 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.PatternField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::awt::XPatternField</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.awt.XPatternField
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.awt._XPatternField
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class OPatternControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.PatternField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object anotherCtrl = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "PatternField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OPatternControl
+ oObj = the_access.getControl(the_Model);
+ anotherCtrl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OPatternControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // Adding relation for XWindow
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ anotherCtrl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OPatternControl
diff --git a/qadevOOo/tests/java/mod/_forms/OPatternModel.java b/qadevOOo/tests/java/mod/_forms/OPatternModel.java
new file mode 100644
index 000000000..0bec8f499
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OPatternModel.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestParameters;
+import util.DBTools;
+
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.form.component.PatternField</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::io::XPersistObject</code></li>
+ * <li> <code>com::sun::star::form::XReset</code></li>
+ * <li> <code>com::sun::star::form::XBoundComponent</code></li>
+ * <li> <code>com::sun::star::form::FormComponent</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * <li> <code>com::sun::star::form::component::PatternField</code></li>
+ * <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+ * <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+ * <li> <code>com::sun::star::awt::UnoControlPatternFieldModel</code></li>
+ * <li> <code>com::sun::star::form::component::DatabasePatternField</code></li>
+ * <li> <code>com::sun::star::form::FormControlModel</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::form::XLoadListener</code></li>
+ * <li> <code>com::sun::star::container::XChild</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.io.XPersistObject
+ * @see com.sun.star.form.XReset
+ * @see com.sun.star.form.XBoundComponent
+ * @see com.sun.star.form.FormComponent
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see com.sun.star.form.component.PatternField
+ * @see com.sun.star.form.DataAwareControlModel
+ * @see com.sun.star.form.XUpdateBroadcaster
+ * @see com.sun.star.awt.UnoControlPatternFieldModel
+ * @see com.sun.star.form.component.DatabasePatternField
+ * @see com.sun.star.form
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.lang.XEventListener
+ * @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.form.XLoadListener
+ * @see com.sun.star.container.XChild
+ * @see ifc.io._XPersistObject
+ * @see ifc.form._XReset
+ * @see ifc.form._XBoundComponent
+ * @see ifc.form._FormComponent
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XMultiPropertySet
+ * @see ifc.form.component._PatternField
+ * @see ifc.form._DataAwareControlModel
+ * @see ifc.form._XUpdateBroadcaster
+ * @see ifc.awt._UnoControlPatternFieldModel
+ * @see ifc.form.component._DatabasePatternField
+ * @see ifc.form._FormControlModel
+ * @see ifc.beans._XPropertyState
+ * @see ifc.container._XNamed
+ * @see ifc.lang._XComponent
+ * @see ifc.lang._XEventListener
+ * @see ifc.beans._XPropertySet
+ * @see ifc.form._XLoadListener
+ * @see ifc.container._XChild
+ */
+public class OPatternModel extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Text";
+ * super.m_kindOfControl="PatternField";
+ * super.m_ObjectName = "stardiv.one.form.component.PatternField";
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_STRING_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "Text";
+
+ super.m_kindOfControl="PatternField";
+
+ super.m_ObjectName = "stardiv.one.form.component.PatternField";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_STRING_F;
+ super.m_propertiesToSet.add(DataField);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+} // finish class OPatternModel
diff --git a/qadevOOo/tests/java/mod/_forms/ORadioButtonControl.java b/qadevOOo/tests/java/mod/_forms/ORadioButtonControl.java
new file mode 100644
index 000000000..0fd3ce626
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ORadioButtonControl.java
@@ -0,0 +1,201 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.RadioButton</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XRadioButton</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XRadioButton
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XView
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XWindow
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XRadioButton
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XView
+ */
+public class ORadioButtonControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.RadioButton</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "RadioButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the ORadioButtonControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for ORadioButtonControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class ORadioButtonControl
diff --git a/qadevOOo/tests/java/mod/_forms/ORadioButtonModel.java b/qadevOOo/tests/java/mod/_forms/ORadioButtonModel.java
new file mode 100644
index 000000000..d65c07064
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/ORadioButtonModel.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.PropertyValue;
+import java.io.PrintWriter;
+
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.RadioButton</code>. <p>
+*
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::component::RadioButton</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::awt::UnoControlRadioButtonModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.component.RadioButton
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.awt.UnoControlRadioButtonModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.io._XPersistObject
+* @see ifc.form.component._RadioButton
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.awt._UnoControlRadioButtonModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class ORadioButtonModel extends GenericModelTest {
+
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName</CODE> = "State";
+ * super.m_kindOfControl</CODE>="RadioButton";
+ * super.m_ObjectName</CODE> = "RadioButton";
+ * NamedValue myProp = new NamedValue();
+ * myProp.Name = "DataField";
+ * myProp.Value = DBTools.TST_STRING_F;
+ * super.m_propertiesToSet.add(myProp);
+ * super.m_LCShape_Type = "GroupBox";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+ super.m_ChangePropertyName = "State";
+
+ super.m_kindOfControl="RadioButton";
+
+ super.m_ObjectName = "stardiv.one.form.component.RadioButton";
+
+ NamedValue myProp = new NamedValue();
+ myProp.Name = "DataField";
+ myProp.Value = DBTools.TST_STRING_F;
+ super.m_propertiesToSet.add(myProp);
+
+ super.m_LCShape_Type = "GroupBox";
+
+ }
+
+ /**
+ * calls <CODE>createTestEnvironment()</CODE> from its super class
+ * @param Param the test parameter
+ * @param log the log writer
+ * @return lib.TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ TestEnvironment tEnv = super.createTestEnvironment(Param, log);
+ tEnv.addObjRelation("DataAwareControlModel.NewFieldName",
+ DBTools.TST_INT_F);
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "HelpText";
+ prop.Value = "new Help Text since XPropertyAccess";
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", prop);
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "HelpText");
+
+ return tEnv;
+ }
+
+} // finish class ORadioButtonModel
diff --git a/qadevOOo/tests/java/mod/_forms/OScrollBarModel.java b/qadevOOo/tests/java/mod/_forms/OScrollBarModel.java
new file mode 100644
index 000000000..cd6c24161
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OScrollBarModel.java
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._forms;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.WriterTools;
+
+public class OScrollBarModel extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates Writer document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ log.println( "creating a textdocument" );
+ xTextDoc = WriterTools.createTextDoc(tParam.getMSF());
+ }
+
+ /**
+ * Disposes the Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log)
+ throws com.sun.star.uno.Exception
+ {
+
+ XInterface oObj = null;
+
+ XControlShape aShape = FormTools.createControlShape(
+ xTextDoc,3000,4500,15000,10000,"ScrollBar");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+ oObj = aShape.getControl();
+ log.println( "creating a new environment for OScrollBarModel object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ System.out.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ String objName = "ScrollBar";
+ tEnv.addObjRelation("OBJNAME", "com.sun.star.form.component." + objName);
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "HelpText";
+ prop.Value = "new Help Text since XPropertyAccess";
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", prop);
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "HelpText");
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_forms/OSpinButtonModel.java b/qadevOOo/tests/java/mod/_forms/OSpinButtonModel.java
new file mode 100644
index 000000000..d4864f285
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OSpinButtonModel.java
@@ -0,0 +1,95 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._forms;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.WriterTools;
+
+public class OSpinButtonModel extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a Writer document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ log.println( "creating a textdocument" );
+ xTextDoc = WriterTools.createTextDoc(tParam.getMSF());
+ }
+
+ /**
+ * Disposes the Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Adds spin button into text and retrieves it's control model.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log)
+ throws com.sun.star.uno.Exception
+ {
+ XInterface oObj = null;
+
+ XControlShape aShape = FormTools.createControlShape(
+ xTextDoc,3000,4500,15000,10000,"SpinButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+ oObj = aShape.getControl();
+ log.println( "creating a new environment for OButtonModel object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ tEnv.addObjRelation("OBJNAME", "com.sun.star.form.component.SpinButton");
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "HelpText";
+ prop.Value = "new Help Text since XPropertyAccess";
+ tEnv.addObjRelation("XPropertyAccess.propertyToChange", prop);
+ tEnv.addObjRelation("XPropertyContainer.propertyNotRemovable", "HelpText");
+
+ System.out.println("Implementation name: "+util.utils.getImplName(oObj));
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_forms/OTimeControl.java b/qadevOOo/tests/java/mod/_forms/OTimeControl.java
new file mode 100644
index 000000000..01c8f17b4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OTimeControl.java
@@ -0,0 +1,224 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+/**
+ * Test for object which is represented by default controller
+ * of the <code>com.sun.star.form.component.TimeField</code>
+ * component. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::awt::XView</code></li>
+ * <li> <code>com::sun::star::form::XBoundControl</code></li>
+ * <li> <code>com::sun::star::awt::XControl</code></li>
+ * <li> <code>com::sun::star::awt::XTextComponent</code></li>
+ * <li> <code>com::sun::star::awt::XLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::awt::XTimeField</code></li>
+ * <li> <code>com::sun::star::awt::XTextListener</code></li>
+ * <li> <code>com::sun::star::awt::XWindow</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::awt::XTextLayoutConstrains</code></li>
+ * <li> <code>com::sun::star::lang::XEventListener</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.awt.XView
+ * @see com.sun.star.form.XBoundControl
+ * @see com.sun.star.awt.XControl
+ * @see com.sun.star.awt.XTextComponent
+ * @see com.sun.star.awt.XLayoutConstrains
+ * @see com.sun.star.awt.XTimeField
+ * @see com.sun.star.awt.XTextListener
+ * @see com.sun.star.awt.XWindow
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.awt.XTextLayoutConstrains
+ * @see com.sun.star.lang.XEventListener
+ * @see ifc.awt._XView
+ * @see ifc.form._XBoundControl
+ * @see ifc.awt._XControl
+ * @see ifc.awt._XTextComponent
+ * @see ifc.awt._XLayoutConstrains
+ * @see ifc.awt._XTimeField
+ * @see ifc.awt._XTextListener
+ * @see ifc.awt._XWindow
+ * @see ifc.lang._XComponent
+ * @see ifc.awt._XTextLayoutConstrains
+ * @see ifc.lang._XEventListener
+ */
+public class OTimeControl extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates a new text document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes the text document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Creates two components and inserts them to the form of
+ * text document. One component
+ * (<code>com.sun.star.form.component.TimeField</code>) is created
+ * for testing, another to be passed as relation. Using a controller
+ * of the text document the controller of the first component is
+ * obtained and returned in environment as a test object. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'GRAPHICS'</code> for
+ * {@link ifc.awt._XView} : a graphics component
+ * created using screen device of the window peer of
+ * the controller tested. </li>
+ * <li> <code>'CONTEXT'</code> for
+ * {@link ifc.awt._XControl} : the text document
+ * where the component is inserted. </li>
+ * <li> <code>'WINPEER'</code> for
+ * {@link ifc.awt._XControl} : Window peer of the
+ * controller tested. </li>
+ * <li> <code>'TOOLKIT'</code> for
+ * {@link ifc.awt._XControl} : toolkit of the component.</li>
+ * <li> <code>'MODEL'</code> for
+ * {@link ifc.awt._XControl} : the model of the controller.</li>
+ * <li> <code>'XWindow.AnotherWindow'</code> for
+ * {@link ifc.awt._XWindow} : the controller of another
+ * component. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "TimeField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //now get the OTimeControl
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for OTimeControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ FormTools.switchDesignOf(Param.getMSF(), xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class OTimeControl
diff --git a/qadevOOo/tests/java/mod/_forms/OTimeModel.java b/qadevOOo/tests/java/mod/_forms/OTimeModel.java
new file mode 100644
index 000000000..7ceb1510d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/OTimeModel.java
@@ -0,0 +1,213 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._forms;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.form.XBoundComponent;
+import com.sun.star.form.XLoadable;
+import com.sun.star.sdbc.XResultSetUpdate;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import ifc.form._XUpdateBroadcaster.UpdateChecker;
+
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.form.component.TimeField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::awt::UnoControlTimeFieldModel</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::form::component::TimeField</code></li>
+* <li> <code>com::sun::star::form::XReset</code></li>
+* <li> <code>com::sun::star::form::XBoundComponent</code></li>
+* <li> <code>com::sun::star::form::FormComponent</code></li>
+* <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* <li> <code>com::sun::star::form::XUpdateBroadcaster</code></li>
+* <li> <code>com::sun::star::form::DataAwareControlModel</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::form::FormControlModel</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XEventListener</code></li>
+* <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::form::XLoadListener</code></li>
+* <li> <code>com::sun::star::container::XChild</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TestDB </b> (directory) : directory with test database </li>
+* <li><b> TestDB/TestDB.dbf </b> : table file. See
+* {@link util.DBTools DBTools} class for more information.</li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.awt.UnoControlTimeFieldModel
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.form.component.TimeField
+* @see com.sun.star.form.XReset
+* @see com.sun.star.form.XBoundComponent
+* @see com.sun.star.form.FormComponent
+* @see com.sun.star.beans.XFastPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see com.sun.star.form.XUpdateBroadcaster
+* @see com.sun.star.form.DataAwareControlModel
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.form
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XEventListener
+* @see com.sun.star.beans.XPropertyAccess
+* @see com.sun.star.beans.XPropertyContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.form.XLoadListener
+* @see com.sun.star.container.XChild
+* @see ifc.awt._UnoControlTimeFieldModel
+* @see ifc.io._XPersistObject
+* @see ifc.form.component._TimeField
+* @see ifc.form._XReset
+* @see ifc.form._XBoundComponent
+* @see ifc.form._FormComponent
+* @see ifc.beans._XFastPropertySet
+* @see ifc.beans._XMultiPropertySet
+* @see ifc.form._XUpdateBroadcaster
+* @see ifc.form._DataAwareControlModel
+* @see ifc.beans._XPropertyState
+* @see ifc.form._FormControlModel
+* @see ifc.container._XNamed
+* @see ifc.lang._XComponent
+* @see ifc.lang._XEventListener
+* @see ifc.beans._XPropertySet
+* @see ifc.form._XLoadListener
+* @see ifc.container._XChild
+*/
+public class OTimeModel extends GenericModelTest {
+ /**
+ * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
+ * <pre>
+ * super.m_ChangePropertyName = "Time";
+ * super.m_kindOfControl="TimeField";
+ * super.m_ObjectName = "stardiv.one.form.component.TimeField";
+ * NamedValue DataField = new NamedValue();
+ * DataField.Name = "DataField";
+ * DataField.Value = DBTools.TST_INT_F;
+ * super.m_propertiesToSet.add(DataField);
+ *
+ * super.m_LCShape_Type = "FixedText";
+ * </pre>
+ * Then <CODE>super.initialize()</CODE> was called.
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+
+ super.initialize(tParam, log);
+
+ super.m_ChangePropertyName = "Time";
+
+ super.m_kindOfControl="TimeField";
+
+ super.m_ObjectName = "stardiv.one.form.component.TimeField";
+
+ NamedValue DataField = new NamedValue();
+ DataField.Name = "DataField";
+ DataField.Value = DBTools.TST_INT_F;
+ super.m_propertiesToSet.add(DataField);
+
+ super.m_LCShape_Type = "FixedText";
+
+ }
+
+ /**
+ * calls <CODE>createTestEnvironment()</CODE> from its super class
+ * This test uses not the generic implementation of <CODE>checker()</CODE> of its
+ * super class. This tests uses its own implementation of <CODE>checker()</CODE>
+ * to test <CODE>com::sun::star::form::XUpdateBroadcaster</CODE>
+ * @param Param the test parameter
+ * @param log the log writer
+ * @return lib.TestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ TestEnvironment tEnv = super.createTestEnvironment(Param, log);
+
+ tEnv.addObjRelation("XUpdateBroadcaster.Checker",
+ new Checker(m_XFormLoader, m_XPS, m_XCtrl));
+ return tEnv;
+ }
+
+ private static class Checker implements UpdateChecker {
+ private XLoadable formLoaderF = null;
+ private XPropertySet ps = null;
+ private XInterface ctrl = null;
+
+ public Checker(XLoadable xl, XPropertySet ps, XInterface ctrl) {
+ formLoaderF = xl;
+ this.ps = ps;
+ this.ctrl = ctrl;
+ }
+
+ private int lastTime = 0;
+
+ public void update() throws com.sun.star.uno.Exception {
+ if (!formLoaderF.isLoaded()) {
+ formLoaderF.load();
+ }
+
+ Integer time = (Integer) ps.getPropertyValue("Time");
+
+ if (time != null) {
+ lastTime = time.intValue() + 150000;
+ }
+
+ ps.setPropertyValue("Time", Integer.valueOf(lastTime));
+ }
+
+ public void commit() throws com.sun.star.sdbc.SQLException {
+ XBoundComponent bound = UnoRuntime.queryInterface(
+ XBoundComponent.class, ctrl);
+ XResultSetUpdate update = UnoRuntime.queryInterface(
+ XResultSetUpdate.class,
+ formLoaderF);
+
+ bound.commit();
+ update.updateRow();
+ }
+
+ public boolean wasCommited() throws com.sun.star.uno.Exception {
+ formLoaderF.reload();
+
+ Integer getT = (Integer) ps.getPropertyValue("Time");
+
+ return (getT != null) &&
+ (Math.abs(getT.intValue() - lastTime) < 100);
+ }
+ }
+} // finish class OTimeModel
diff --git a/qadevOOo/tests/java/mod/_forms/package.html b/qadevOOo/tests/java/mod/_forms/package.html
new file mode 100644
index 000000000..895d60e46
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_forms/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'forms'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_fps/FilePicker.java b/qadevOOo/tests/java/mod/_fps/FilePicker.java
new file mode 100644
index 000000000..885bef0ef
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fps/FilePicker.java
@@ -0,0 +1,119 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fps;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ui.FilePicker</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ui::XFilePicker</code></li>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::lang::XTypeProvider</code></li>
+* <li> <code>com::sun::star::ui::XExecutableDialog</code></li>
+* <li> <code>com::sun::star::ui::XFilePickerControlAccess</code></li>
+* <li> <code>com::sun::star::ui::XFilterManager</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::ui::XFilePickerNotifier</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ui.XFilePicker
+* @see com.sun.star.lang.XInitialization
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.lang.XTypeProvider
+* @see com.sun.star.ui.XExecutableDialog
+* @see com.sun.star.ui.XFilePickerControlAccess
+* @see com.sun.star.ui.XFilterManager
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.ui.XFilePickerNotifier
+* @see com.sun.star.ui.XFilePicker
+* @see ifc.ui.dialogs._XFilePicker
+* @see ifc.lang._XInitialization
+* @see ifc.lang._XServiceInfo
+* @see ifc.lang._XTypeProvider
+* @see ifc.ui.dialogs._XExecutableDialog
+* @see ifc.ui.dialogs._XFilePickerControlAccess
+* @see ifc.ui.dialogs._XFilterManager
+* @see ifc.lang._XComponent
+* @see ifc.ui.dialogs._XFilePickerNotifier
+*/
+public class FilePicker extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ui.FilePicker</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XInitialization.args'</code> for
+ * {@link ifc.lang._XInitialization} : argument
+ * for creating dialog from template. </li>
+ * <li> <code>'XFilePickerControlAccess.ControlID'</code> for
+ * {@link ifc.ui.dialogs._XFilePickerControlAccess} : here
+ * it is identifier of check box.</li>
+ * <li> <code>'XFilePickerControlAccess.ControlValue'</code> for
+ * {@link ifc.ui.dialogs._XFilePickerControlAccess} :
+ * The value for control to set (since the initial value
+ * of the control is empty) .</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+
+ Object[] iniArgs = new Object[] { Short.valueOf
+ (com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_READONLY_VERSION)};
+ short ctrlId =
+ com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_READONLY;
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.ui.dialogs.FilePicker" );
+
+ oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XInitialization
+ tEnv.addObjRelation("XInitialization.args", iniArgs) ;
+
+ // adding relation for XFilePickerControlAccess
+ tEnv.addObjRelation("XFilePickerControlAccess.ControlID",
+ Short.valueOf(ctrlId)) ;
+ tEnv.addObjRelation("XFilePickerControlAccess.ControlValue",
+ Boolean.FALSE) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_ftransl/DataFormatTranslator.java b/qadevOOo/tests/java/mod/_ftransl/DataFormatTranslator.java
new file mode 100644
index 000000000..75f81b222
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ftransl/DataFormatTranslator.java
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ftransl;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.datatransfer.DataFormatTranslator</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::datatransfer::XDataFormatTranslator</code></li>
+ * <li> <code>com::sun::star::lang::XTypeProvider</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.datatransfer.XDataFormatTranslator
+ * @see com.sun.star.lang.XTypeProvider
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.datatransfer._XDataFormatTranslator
+ * @see ifc.lang._XTypeProvider
+ */
+public class DataFormatTranslator extends TestCase {
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.datatransfer.DataFormatTranslator</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws StatusException {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.datatransfer.DataFormatTranslator" );
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("DataFormatTranslator Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+ log.println( "creating a new environment for DataFormatTranslator object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class DataFormatTranslator
+
diff --git a/qadevOOo/tests/java/mod/_fwk/ControlMenuController.java b/qadevOOo/tests/java/mod/_fwk/ControlMenuController.java
new file mode 100644
index 000000000..9863c4cc3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/ControlMenuController.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+
+/**
+ */
+public class ControlMenuController extends TestCase {
+ XInterface oObj = null;
+
+ /**
+ * Create test environment.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.ControlMenuController");
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/Desktop.java b/qadevOOo/tests/java/mod/_fwk/Desktop.java
new file mode 100644
index 000000000..89a2ab451
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/Desktop.java
@@ -0,0 +1,112 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.frame.XDesktop;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.frame.Desktop</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::beans::XPropertySet</code></li>
+* <li><code>com::sun::star::frame::XComponentLoader</code></li>
+* <li><code>com::sun::star::frame::XDesktop</code></li>
+* <li><code>com::sun::star::frame::XDispatchProvider</code></li>
+* <li><code>com::sun::star::frame::XFrame</code></li>
+* <li><code>com::sun::star::frame::XFramesSupplier</code></li>
+* <li><code>com::sun::star::frame::XTasksSupplier</code></li>
+* <li><code>com::sun::star::lang::XComponent</code></li>
+* <li><code>com::sun::star::task::XStatusIndicatorFactory</code></li>
+* </ul><p>
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.frame.XComponentLoader
+* @see com.sun.star.frame.XDesktop
+* @see com.sun.star.frame.XDispatchProvider
+* @see com.sun.star.frame.XFrame
+* @see com.sun.star.frame.XFramesSupplier
+* @see com.sun.star.frame.XTasksSupplier
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.task.XStatusIndicatorFactory
+* @see ifc.beans._XPropertySet
+* @see ifc.frame._XComponentLoader
+* @see ifc.frame._XDesktop
+* @see ifc.frame._XDispatchProvider
+* @see ifc.frame._XFrame
+* @see ifc.frame._XFramesSupplier
+* @see ifc.frame._XTasksSupplier
+* @see ifc.lang._XComponent
+* @see ifc.task._XStatusIndicatorFactory
+*/
+public class Desktop extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ try {
+ xTextDoc.dispose();
+ } catch (com.sun.star.lang.DisposedException de) {}
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.frame.Desktop</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.Desktop");
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XDispatchProvider.URL", ".uno:Open");
+
+ tEnv.addObjRelation("Desktop",UnoRuntime.queryInterface(XDesktop.class,oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/DispatchRecorder.java b/qadevOOo/tests/java/mod/_fwk/DispatchRecorder.java
new file mode 100644
index 000000000..25c31fdff
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/DispatchRecorder.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XModel;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.DispatchStatement;
+import com.sun.star.frame.XDispatchRecorder;
+import com.sun.star.frame.XDispatchRecorderSupplier;
+import com.sun.star.frame.XFrame;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.util.URL;
+import util.utils;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::container::XElementAccess</code></li>
+* <li><code>com::sun::star::container::XIndexAccess</code></li>
+* <li><code>com::sun::star::container::XIndexReplace</code></li>
+* <li><code>com::sun::star::frame::XDispatchRecorder</code></li>
+* </ul><p>
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XIndexReplace
+* @see com.sun.star.frame.XDispatchRecorder
+* @see ifc.container._XElementAccess
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XIndexReplace
+* @see ifc.frame._XDispatchRecorder
+*/
+public class DispatchRecorder extends TestCase {
+ XComponent oDoc = null;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.frame.Desktop</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ XFrame xFrame = null;
+ XDispatchRecorder xDR = null;
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+ oDoc = SOF.createTextDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel model = UnoRuntime.queryInterface(XModel.class, oDoc);
+ xFrame = model.getCurrentController().getFrame();
+
+ XPropertySet xFramePS = UnoRuntime.queryInterface
+ (XPropertySet.class, xFrame);
+ XDispatchRecorderSupplier xDRS = null;
+ xDRS = (XDispatchRecorderSupplier) AnyConverter.toObject(
+ new Type(XDispatchRecorderSupplier.class),
+ xFramePS.getPropertyValue("DispatchRecorderSupplier"));
+ if (xDRS == null) {
+
+ Object oDRS = Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.DispatchRecorderSupplier");
+ xFramePS.setPropertyValue("DispatchRecorderSupplier", oDRS);
+ xDRS = UnoRuntime.queryInterface(XDispatchRecorderSupplier.class,oDRS);
+ }
+
+ xDR = xDRS.getDispatchRecorder();
+ if (xDR != null) {
+ oObj = xDR;
+ } else {
+ oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.DispatchRecorder");
+ xDR = UnoRuntime.queryInterface
+ (XDispatchRecorder.class, oObj);
+ xDRS.setDispatchRecorder(xDR);
+ }
+
+
+ // fill recorder with content. It's needed for XIndexReplace
+ URL dispURL = utils.parseURL(Param.getMSF(), ".uno:InsertDateField");
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "Text";
+ prop.Value = "XDispatchRecorder.recordDispatch()";
+ PropertyValue[] dispArgs = new PropertyValue[] {prop};
+ xDR.recordDispatch(dispURL, dispArgs);
+
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // INSTANCEn : _XIndexReplace
+ log.println("adding INSTANCEn as obj relation to environment");
+
+ int THRCNT = 1;
+ if (Param.get("THRCNT")!= null) {
+ THRCNT = Integer.parseInt((String) Param.get("THRCNT"));
+ }
+
+ URL instanceURL = null;
+ DispatchStatement instance = new DispatchStatement();
+ PropertyValue dispProp = new PropertyValue();
+
+ for (int n = 1; n < (THRCNT + 1); n++) {
+ log.println("adding INSTANCE" + n +
+ " as obj relation to environment");
+ instanceURL = utils.parseURL(Param.getMSF(), ".uno:InsertText");
+ dispProp.Name = "Text";
+ dispProp.Value = "Instance " + n;
+ dispArgs = new PropertyValue[] {dispProp};
+ instance.aCommand = instanceURL.Complete;
+ instance.aArgs = dispArgs;
+ instance.aTarget = "_top";
+ instance.nFlags = com.sun.star.frame.FrameSearchFlag.ALL;
+
+ tEnv.addObjRelation("INSTANCE" + n, instance);
+ }
+
+ tEnv.addObjRelation("XDispatchRecorder.Frame", xFrame);
+ log.println("Object created: TRUE");
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ util.DesktopTools.closeDoc(oDoc);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/DispatchRecorderSupplier.java b/qadevOOo/tests/java/mod/_fwk/DispatchRecorderSupplier.java
new file mode 100644
index 000000000..0d2b2d0b4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/DispatchRecorderSupplier.java
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::frame::XDispatchRecorderSupplier</code></li>
+* </ul><p>
+* @see com.sun.star.frame.XDispatchRecorderSupplier
+* @see ifc.frame._XDispatchRecorderSupplier
+*/
+public class DispatchRecorderSupplier extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates instance of
+ * <code>com.sun.star.comp.framework.DispatchRecorderSupplier</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.DispatchRecorderSupplier");
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/FontMenuController.java b/qadevOOo/tests/java/mod/_fwk/FontMenuController.java
new file mode 100644
index 000000000..3f8d1a687
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/FontMenuController.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+ */
+public class FontMenuController extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.FontMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/FontSizeMenuController.java b/qadevOOo/tests/java/mod/_fwk/FontSizeMenuController.java
new file mode 100644
index 000000000..b662b5f07
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/FontSizeMenuController.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class FontSizeMenuController extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.FontSizeMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/FooterMenuController.java b/qadevOOo/tests/java/mod/_fwk/FooterMenuController.java
new file mode 100644
index 000000000..99e9207bd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/FooterMenuController.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class FooterMenuController extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.FooterMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/FormatMenuController.java b/qadevOOo/tests/java/mod/_fwk/FormatMenuController.java
new file mode 100644
index 000000000..be3cb17d4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/FormatMenuController.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class FormatMenuController extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.FormatMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/Frame.java b/qadevOOo/tests/java/mod/_fwk/Frame.java
new file mode 100644
index 000000000..cb18c9659
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/Frame.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.frame.XFrame;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::frame::XDispatchProvider</code></li>
+* <li><code>com::sun::star::frame::XFrame</code></li>
+* <li><code>com::sun::star::frame::XFramesSupplier</code></li>
+* <li><code>com::sun::star::task::XStatusIndicatorFactory</code></li>
+* <li><code>com::sun::star::lang::XComponent</code></li>
+* </ul><p>
+* @see com.sun.star.frame.XDispatchProvider
+* @see com.sun.star.frame.XFrame
+* @see com.sun.star.frame.XFramesSupplier
+* @see com.sun.star.task.XStatusIndicatorFactory
+* @see com.sun.star.lang.XComponent
+* @see ifc.frame._XDispatchProvider
+* @see ifc.frame._XFrame
+* @see ifc.frame._XFramesSupplier
+* @see ifc.task._XStatusIndicatorFactory
+* @see ifc.lang._XComponent
+*/
+public class Frame extends TestCase {
+
+ XTextDocument xTextDoc;
+ XFrame frame = null;
+
+
+ /**
+ * Creates a text document and obtains a frame of current controller.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ frame = xTextDoc.getCurrentController().getFrame();
+ oObj = UnoRuntime.queryInterface(XInterface.class, frame);
+
+ log.println(util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ ".uno:SwitchControlDesignMode");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+ /**
+ * Disposes the document created and finally disposes
+ * the frame containing the document (for case when the frame
+ * contains no model after some interface manipulations).
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ try {
+ XCloseable xTextClose = UnoRuntime.queryInterface(XCloseable.class, xTextDoc);
+ xTextClose.close(true);
+ } catch(Exception e){}
+
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/HeaderMenuController.java b/qadevOOo/tests/java/mod/_fwk/HeaderMenuController.java
new file mode 100644
index 000000000..16342de71
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/HeaderMenuController.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class HeaderMenuController extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.HeaderMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/JobExecutor.java b/qadevOOo/tests/java/mod/_fwk/JobExecutor.java
new file mode 100644
index 000000000..61dee42e9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/JobExecutor.java
@@ -0,0 +1,273 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XHierarchicalNameAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.container.XNameReplace;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.task.XJob;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XChangesBatch;
+import com.sun.star.uno.AnyConverter;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::task::XJobExecutor</code></li>
+ * </ul><p>
+ * The following files are needed for testcase creation :
+ * <ul>
+ * <li> <code>qadevlibs/JobExecutor.jar</code> :
+ * this is java component <code>test.Job</code> which
+ * should be registered before or during this testcase
+ * creation. This component must implement
+ * <code>com.sun.star.task.XJob</code> interface and count
+ * <code>execute</code> method calls. It also should
+ * implement <code>container.XNamed</code> interface and
+ * <code>getName</code> method must return string with number
+ * of calls.</li>
+ * <ul> <p>
+ *
+ * Also <b>important prerequicity</b>: if Job and Event is not yet
+ * added to configuration or <code>test.Job</code> component is
+ * not yet registered, the SOffice <b>must be destroyed</b> during
+ * testcase initialization. <p>
+ *
+ * @see com.sun.star.task.XJobExecutor
+ * @see ifc.task._XJobExecutor
+ */
+public class JobExecutor extends TestCase {
+
+ static Job job = new Job();
+ XNamed xNamed = null;
+ Object oRootCfg = null;
+
+ /**
+ * For testcase initializing :
+ * <ol>
+ * <li> Implementation <code>test.Job</code> must be registered in
+ * SOffice registry. </li>
+ * <li> Configuration in package <code>org.OpenOffice.Office.Jobs</code>
+ * must be updated. <code>TestJob</code> must be registered for
+ * service <code>test.Job</code> and event for this job named
+ * <code>TextEvent</code> must be registered. </li>
+ * </ol>. <p>
+ *
+ * First these two conditions are checked. If job and event are not
+ * registered they are inserted into configuration and committed.
+ * After what SOffice must be destroyed for proper initialization
+ * of <code>JobExecutor</code> after startup. <p>
+ *
+ * Then if the implementation was not registered before it is
+ * registered in soffice <code>applicat.rbd</code> file (registering
+ * the component in currently running Java environment has no effect
+ * for <code>JobExecutor</code> in some reasons). <p>
+ *
+ * Note: SOffice is started again while the next
+ * <code>(XMultiServiceFactory)SOLink.getMSF()</code> call.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ boolean configured = false;
+
+ try {
+ Param.getMSF().createInstance("test.Job");
+ } catch(com.sun.star.uno.Exception e) {
+ log.println("Service test.Job is not yet registered.");
+ String message = "You have to register 'test.Job' before office is started.\n";
+ message += "Please run '$OFFICEPATH/program/pkgchk $DOCPTH/qadevlibs/JobExecutor.jar'";
+ throw new StatusException(message, e);
+ }
+
+
+
+ XNameAccess jobs = null;
+ XNameAccess events = null;
+ Object obj = Param.getMSF().createInstance
+ ("com.sun.star.configuration.ConfigurationProvider");
+ XMultiServiceFactory xConfigMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, obj);
+ PropertyValue[] args = new PropertyValue[1];
+ args[0] = new PropertyValue();
+ args[0].Name = "nodepath";
+ args[0].Value = "org.openoffice.Office.Jobs";
+ oRootCfg = xConfigMSF.createInstanceWithArguments(
+ "com.sun.star.configuration.ConfigurationUpdateAccess", args);
+ XHierarchicalNameAccess xHNA = UnoRuntime.queryInterface(XHierarchicalNameAccess.class, oRootCfg);
+ obj = xHNA.getByHierarchicalName("Jobs");
+ jobs = UnoRuntime.queryInterface
+ (XNameAccess.class, obj);
+ obj = xHNA.getByHierarchicalName("Events");
+ events = UnoRuntime.queryInterface
+ (XNameAccess.class, obj);
+
+ configured = jobs.hasByName("TestJob") && events.hasByName("TestEvent");
+
+ log.println("Test job and event is "
+ + (configured ? "already" : "not yet") + " configured.");
+
+ if (!configured) {
+ log.println("Adding configuration to Jobs ...");
+ XSingleServiceFactory jobsFac = UnoRuntime.queryInterface(XSingleServiceFactory.class, jobs);
+ Object oNewJob = jobsFac.createInstance();
+ XNameReplace xNewJobNR = UnoRuntime.queryInterface(XNameReplace.class, oNewJob);
+ xNewJobNR.replaceByName("Service", "test.Job");
+ XNameContainer xJobsNC = UnoRuntime.queryInterface(XNameContainer.class, jobs);
+ xJobsNC.insertByName("TestJob", oNewJob);
+
+ log.println("Adding configuration to Events ...");
+ XSingleServiceFactory eventsFac = UnoRuntime.queryInterface(XSingleServiceFactory.class, events);
+ Object oNewEvent = eventsFac.createInstance();
+
+ XNameAccess xNewEventNA = UnoRuntime.queryInterface(XNameAccess.class, oNewEvent);
+ Object oJobList = xNewEventNA.getByName("JobList");
+ XSingleServiceFactory jobListFac = (XSingleServiceFactory)
+ AnyConverter.toObject(new Type(XSingleServiceFactory.class),
+ oJobList);
+ XNameContainer jobListNC = (XNameContainer)
+ AnyConverter.toObject(new Type(XNameContainer.class),
+ oJobList);
+ log.println("\tAdding TimeStamps to Events ...");
+ Object oNewJobTimeStamps = jobListFac.createInstance();
+
+ jobListNC.insertByName("TestJob", oNewJobTimeStamps);
+
+ XNameContainer xEventsNC = UnoRuntime.queryInterface(XNameContainer.class, events);
+ xEventsNC.insertByName("TestEvent", oNewEvent);
+
+ XChangesBatch xCB = UnoRuntime.queryInterface(XChangesBatch.class, oRootCfg);
+ xCB.commitChanges();
+
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ *
+ * Service <code>com.sun.star.comp.framework.JobExecutor</code>
+ * is created.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.JobExecutor");
+ Object job = Param.getMSF().createInstance("test.Job");
+
+ xNamed = UnoRuntime.queryInterface(XNamed.class, job);
+ log.println("Count = " + xNamed.getName());
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("CallCounter", xNamed);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ }
+}
+
+/**
+ * Currently not used.
+ */
+class Job implements
+ XServiceInfo, XSingleServiceFactory {
+
+ private static class Impl implements XServiceInfo, XTypeProvider, XJob, XNamed {
+ int callCount = 0;
+
+ public byte[] getImplementationId() {
+ return new byte[0];
+ }
+
+ public Type[] getTypes() {
+ Class<?> interfaces[] = getClass().getInterfaces();
+ Type types[] = new Type[interfaces.length];
+ for(int i = 0; i < interfaces.length; ++ i)
+ types[i] = new Type(interfaces[i]);
+ return types;
+ }
+
+ public Object execute(NamedValue[] param) {
+ callCount++;
+
+ return null;
+ }
+
+ public String getName() {
+ return String.valueOf(callCount);
+ }
+
+ public void setName(String n) {}
+
+ public boolean supportsService(String name) {
+ return __serviceName.equals(name);
+ }
+
+ public String[] getSupportedServiceNames() {
+ return new String[] {__serviceName};
+ }
+
+ public String getImplementationName() {
+ return getClass().getName();
+ }
+ }
+
+ private static final String __serviceName = "test.Job";
+ private static Impl impl = new Impl();
+
+ public Object createInstanceWithArguments(Object[] args) {
+ return impl;
+ }
+
+ public Object createInstance() {
+ return createInstanceWithArguments(null);
+ }
+
+ public boolean supportsService(String name) {
+ return __serviceName.equals(name);
+ }
+
+ public String[] getSupportedServiceNames() {
+ return new String[] {__serviceName};
+ }
+
+ public String getImplementationName() {
+ return getClass().getName();
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/JobHandler.java b/qadevOOo/tests/java/mod/_fwk/JobHandler.java
new file mode 100644
index 000000000..ed86cfb73
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/JobHandler.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::frame::XDispatchProvider</code></li>
+* <li><code>com::sun::star::lang::XInitialization</code></li>
+* </ul><p>
+* @see com.sun.star.frame.XDispatchProvider
+* @see com.sun.star.lang.XInitialization
+* @see ifc.frame._XDispatchProvider
+* @see ifc.lang._XInitialization
+*/
+public class JobHandler extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+ boolean serviceRegistered = false;
+
+ try {
+ Object obj = Param.getMSF().createInstance("test.Job");
+ serviceRegistered = obj != null;
+ } catch(com.sun.star.uno.Exception e) {}
+
+ log.println("Service test.Job is "
+ + (serviceRegistered ? "already" : "not yet") + " registered.");
+ if (! serviceRegistered){
+ String message = "You have to register 'test.Job' before office is started.\n";
+ message += "Please run '$OFFICEPATH/program/pkgchk $DOCPTH/qadevlibs/JobExecutor.jar'";
+ throw new StatusException(message, new Exception());
+ }
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.jobs.JobDispatch");
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XDispatchProvider.URL", "vnd.sun.star.job:alias=TestJob");
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/LayoutManager.java b/qadevOOo/tests/java/mod/_fwk/LayoutManager.java
new file mode 100644
index 000000000..9193fca43
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/LayoutManager.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XFrame;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.util.XCloseable;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.WriterTools;
+
+/**
+ */
+public class LayoutManager extends TestCase {
+ XInterface xManager = null;
+ XTextDocument xTextDoc;
+
+ /**
+ * Cleanup: close the created document
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Create test environment:
+ * <ul>
+ * <li>Create test doc</li>
+ * <li>Get the frame</li>
+ * <li>Get the LayoutManager from the frame</li>
+ * </ul>
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ * @return The test environment.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ log.println("Creating instance...");
+
+ xTextDoc = WriterTools.createTextDoc(xMSF);
+
+ XText xText = xTextDoc.getText();
+ XTextCursor xTextCursor = xText.createTextCursor();
+
+ for (int i = 0; i < 11; i++) {
+ xText.insertString(xTextCursor, "A sample text and why not? ", false);
+ }
+
+ XFrame xFrame = xTextDoc.getCurrentController().getFrame();
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, xFrame);
+ Object any = xProp.getPropertyValue("LayoutManager");
+ xManager = UnoRuntime.queryInterface(XInterface.class, any);
+
+ // just to make sure, it's the right one.
+ log.println("TestObject: " + util.utils.getImplName(xManager));
+ tEnv = new TestEnvironment(xManager);
+
+ tEnv.addObjRelation("XLayoutManager.TextDoc", xTextDoc);
+ tEnv.addObjRelation("XLayoutManager.Frame",xFrame);
+
+ return tEnv;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_fwk/MacrosMenuController.java b/qadevOOo/tests/java/mod/_fwk/MacrosMenuController.java
new file mode 100644
index 000000000..e68494417
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/MacrosMenuController.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class MacrosMenuController extends TestCase{
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.MacrosMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/MailToDispatcher.java b/qadevOOo/tests/java/mod/_fwk/MailToDispatcher.java
new file mode 100644
index 000000000..ac04229aa
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/MailToDispatcher.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::lang::XInitialization</code></li>
+* <li><code>com::sun::star::frame::XDispatchProvider</code></li>
+* </ul><p>
+* @see com.sun.star.lang.XInitialization
+* @see com.sun.star.frame.XDispatchProvider
+* @see ifc.lang._XInitialization
+* @see ifc.frame._XDispatchProvider
+*/
+public class MailToDispatcher extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.framework.MailToDispatcher</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.MailToDispatcher");
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "mailto:soffice@sparc.spb.su");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/MenuBarFactory.java b/qadevOOo/tests/java/mod/_fwk/MenuBarFactory.java
new file mode 100644
index 000000000..ff75db88d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/MenuBarFactory.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+public class MenuBarFactory extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.MenuBarFactory");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_fwk/ModuleManager.java b/qadevOOo/tests/java/mod/_fwk/ModuleManager.java
new file mode 100644
index 000000000..a700bffaf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/ModuleManager.java
@@ -0,0 +1,227 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import lib.*;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.text.XTextDocument;
+
+/** Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::frame::XModuleManager</code></li>
+ * <li><code>com::sun::star::container::XNameAccess</code></li>
+ * <li><code>com::sun::star::container::XElementAccess</code></li>
+ * </ul><p>
+ * @see com.sun.star.frame.XModuleManager
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see ifc.frame._XModuleManager
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ */
+public class ModuleManager extends TestCase {
+
+ XTextDocument xTextDoc = null;
+ XComponent xWebDoc = null;
+ XComponent xGlobalDoc = null;
+ XSpreadsheetDocument xSheetDoc = null;
+ XComponent xDrawDoc = null;
+ XComponent xImpressDoc = null;
+ XComponent xMathDoc = null;
+
+ /** Creating a TestEnvironment for the interfaces to be tested.
+ * @param Param test parameters
+ * @param log simple logger
+ * @throws StatusException was thrown on error
+ * @return the test environment
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.ModuleManager");
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ // get text document interfaces
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+ XModel xTextMode1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+ XController xTextController = xTextMode1.getCurrentController();
+ XFrame xTextFrame = xTextController.getFrame();
+
+
+ // get webdoc interfaces
+ log.println("creating a web document");
+ xWebDoc = SOF.loadDocument("private:factory/swriter/web");
+ XModel xWebMode1 = UnoRuntime.queryInterface(XModel.class,
+ xWebDoc);
+ XController xWebController = xWebMode1.getCurrentController();
+ XFrame xWebFrame = xWebController.getFrame();
+
+ // get global document interfaces
+ log.println("creating a global document");
+ xGlobalDoc = SOF.loadDocument("private:factory/swriter/GlobalDocument");
+ XModel xGlobalMode1 = UnoRuntime.queryInterface(XModel.class,
+ xGlobalDoc);
+ XController xGlobalController = xGlobalMode1.getCurrentController();
+ XFrame xGlobalFrame = xGlobalController.getFrame();
+
+ // get clac interfaces
+ log.println("creating a spreadsheetdocument");
+ xSheetDoc = SOF.createCalcDoc(null);
+ XModel xSheetMode1 = UnoRuntime.queryInterface(XModel.class,
+ xSheetDoc);
+
+ XController xSheetController = xSheetMode1.getCurrentController();
+ XFrame xSheetFrame = xSheetController.getFrame();
+ // get draw interfaces
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ XModel xDrawMode1 = UnoRuntime.queryInterface(XModel.class,
+ xDrawDoc);
+ XController xDrawController = xDrawMode1.getCurrentController();
+ XFrame xDrawFrame = xDrawController.getFrame();
+
+ // get impress interfaces
+ log.println("creating an impress document");
+ xImpressDoc = SOF.createImpressDoc(null);
+ XModel xImpressMode1 = UnoRuntime.queryInterface(XModel.class,
+ xImpressDoc);
+ XController xImpressController = xImpressMode1.getCurrentController();
+ XFrame xImpressFrame = xImpressController.getFrame();
+
+ // get math interfaces
+ log.println("creating a math document");
+ xMathDoc = SOF.createMathDoc(null);
+ XModel xMathMode1 = UnoRuntime.queryInterface(XModel.class,
+ xMathDoc);
+ XController xMathController = xMathMode1.getCurrentController();
+ XFrame xMathFrame = xMathController.getFrame();
+
+ PropertyValue[] xFrameSeq = new PropertyValue[7];
+ xFrameSeq[0] = new PropertyValue();
+ xFrameSeq[0].Name = "com.sun.star.text.TextDocument";
+ xFrameSeq[0].Value = xTextFrame;
+ xFrameSeq[1] = new PropertyValue();
+ xFrameSeq[1].Name = "com.sun.star.text.WebDocument";
+ xFrameSeq[1].Value = xWebFrame;
+ xFrameSeq[2] = new PropertyValue();
+ xFrameSeq[2].Name = "com.sun.star.text.GlobalDocument";
+ xFrameSeq[2].Value = xGlobalFrame;
+ xFrameSeq[3] = new PropertyValue();
+ xFrameSeq[3].Name = "com.sun.star.sheet.SpreadsheetDocument";
+ xFrameSeq[3].Value = xSheetFrame;
+ xFrameSeq[4] = new PropertyValue();
+ xFrameSeq[4].Name = "com.sun.star.drawing.DrawingDocument";
+ xFrameSeq[4].Value = xDrawFrame;
+ xFrameSeq[5] = new PropertyValue();
+ xFrameSeq[5].Name = "com.sun.star.formula.FormulaProperties";
+ xFrameSeq[5].Value = xMathFrame;
+ xFrameSeq[6] = new PropertyValue();
+ xFrameSeq[6].Name = "com.sun.star.presentation.PresentationDocument";
+ xFrameSeq[6].Value = xImpressFrame;
+
+ PropertyValue[] xControllerSeq = new PropertyValue[7];
+ xControllerSeq[0] = new PropertyValue();
+ xControllerSeq[0].Name = "com.sun.star.text.TextDocument";
+ xControllerSeq[0].Value = xTextController;
+ xControllerSeq[1] = new PropertyValue();
+ xControllerSeq[1].Name = "com.sun.star.text.WebDocument";
+ xControllerSeq[1].Value = xWebController;
+ xControllerSeq[2] = new PropertyValue();
+ xControllerSeq[2].Name = "com.sun.star.text.GlobalDocument";
+ xControllerSeq[2].Value = xGlobalController;
+ xControllerSeq[3] = new PropertyValue();
+ xControllerSeq[3].Name = "com.sun.star.sheet.SpreadsheetDocument";
+ xControllerSeq[3].Value = xSheetController;
+ xControllerSeq[4] = new PropertyValue();
+ xControllerSeq[4].Name = "com.sun.star.drawing.DrawingDocument";
+ xControllerSeq[4].Value = xDrawController;
+ xControllerSeq[5] = new PropertyValue();
+ xControllerSeq[5].Name = "com.sun.star.formula.FormulaProperties";
+ xControllerSeq[5].Value = xMathController;
+ xControllerSeq[6] = new PropertyValue();
+ xControllerSeq[6].Name = "com.sun.star.presentation.PresentationDocument";
+ xControllerSeq[6].Value = xImpressController;
+
+ PropertyValue[] xModelSeq = new PropertyValue[7];
+ xModelSeq[0] = new PropertyValue();
+ xModelSeq[0].Name = "com.sun.star.text.TextDocument";
+ xModelSeq[0].Value = xTextMode1;
+ xModelSeq[1] = new PropertyValue();
+ xModelSeq[1].Name = "com.sun.star.text.WebDocument";
+ xModelSeq[1].Value = xWebMode1;
+ xModelSeq[2] = new PropertyValue();
+ xModelSeq[2].Name = "com.sun.star.text.GlobalDocument";
+ xModelSeq[2].Value = xGlobalMode1;
+ xModelSeq[3] = new PropertyValue();
+ xModelSeq[3].Name = "com.sun.star.sheet.SpreadsheetDocument";
+ xModelSeq[3].Value = xSheetMode1;
+ xModelSeq[4] = new PropertyValue();
+ xModelSeq[4].Name = "com.sun.star.drawing.DrawingDocument";
+ xModelSeq[4].Value = xDrawMode1;
+ xModelSeq[5] = new PropertyValue();
+ xModelSeq[5].Name = "com.sun.star.presentation.PresentationDocument";
+ xModelSeq[5].Value = xImpressMode1;
+ xModelSeq[6] = new PropertyValue();
+ xModelSeq[6].Name = "com.sun.star.formula.FormulaProperties";
+ xModelSeq[6].Value = xMathMode1;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+ tEnv.addObjRelation("XModuleManager.XFrame", xFrameSeq);
+ tEnv.addObjRelation("XModuleManager.XController", xControllerSeq);
+ tEnv.addObjRelation("XModuleManager.XModel", xModelSeq);
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /** Disposes text document.
+ * @param tParam test parameters
+ * @param log simple logger
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " closing all documents " );
+ DesktopTools.closeDoc(xTextDoc);
+ DesktopTools.closeDoc(xWebDoc);
+ DesktopTools.closeDoc(xGlobalDoc);
+ DesktopTools.closeDoc(xSheetDoc);
+ DesktopTools.closeDoc(xDrawDoc);
+ DesktopTools.closeDoc(xImpressDoc);
+ DesktopTools.closeDoc(xMathDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java b/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java
new file mode 100644
index 000000000..c4a826b49
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.ui.XModuleUIConfigurationManagerSupplier;
+import ifc.ui._XUIConfiguration;
+import java.io.PrintWriter;
+import com.sun.star.lang.EventObject;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.util.XCloseable;
+import com.sun.star.ui.ConfigurationEvent;
+import com.sun.star.ui.XUIConfigurationManager;
+import ifc.ui._XUIConfigurationManager;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.WriterTools;
+import util.utils;
+
+/**
+ */
+public class ModuleUIConfigurationManager extends TestCase {
+ XInterface oObj = null;
+ XMultiServiceFactory xMSF = null;
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Cleanup: close the created document
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ if (xTextDoc != null) {
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+ log.println(" disposing storage");
+ }
+
+ /**
+ * Create environment.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+
+ xMSF = tParam.getMSF();
+
+ log.println("Creating instance...");
+ xTextDoc = WriterTools.createTextDoc(xMSF);
+
+ Object o = xMSF.createInstance("com.sun.star.ui.ModuleUIConfigurationManagerSupplier");
+ XModuleUIConfigurationManagerSupplier xMUICMS = UnoRuntime.queryInterface(XModuleUIConfigurationManagerSupplier.class, o);
+
+ util.dbg.printInterfaces(xMUICMS);
+ oObj = xMUICMS.getUIConfigurationManager("com.sun.star.text.TextDocument");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ tEnv = new TestEnvironment(oObj);
+
+ XNameAccess xMM = UnoRuntime.queryInterface(XNameAccess.class, xMSF.createInstance("com.sun.star.comp.framework.ModuleManager"));
+ xMM.getElementNames();
+
+ // the short cut manager service name
+ // 2do: correct the service name when it's no longer in
+ tEnv.addObjRelation("XConfigurationManager.ShortCutManager",
+ "com.sun.star.ui.ModuleAcceleratorConfiguration");
+
+ // the resourceURL
+ tEnv.addObjRelation("XModuleUIConfigurationManager.ResourceURL",
+ "private:resource/menubar/menubar");
+ tEnv.addObjRelation("XUIConfiguration.XUIConfigurationListenerImpl",
+ new ConfigurationListener(log,
+ UnoRuntime.queryInterface(
+ XUIConfigurationManager.class, oObj), xMSF));
+ tEnv.addObjRelation("XModuleUIConfigurationManagerSupplier.ConfigManagerImplementationName",
+ "com.sun.star.comp.framework.ModuleUIConfigurationManager");
+ return tEnv;
+ }
+
+ /**
+ * An implementation of the _XUIConfiguration.XUIConfigurationListenerImpl
+ * interface to trigger the event for a listener call.
+ * @see ifc.ui._XUIConfiguration
+ */
+ private static class ConfigurationListener implements _XUIConfiguration.XUIConfigurationListenerImpl {
+ private boolean triggered = false;
+ private final PrintWriter log;
+ private final XUIConfigurationManager xUIManager;
+ private final XMultiServiceFactory xMSF;
+
+ private ConfigurationListener(PrintWriter _log, XUIConfigurationManager xUIManager, XMultiServiceFactory xMSF) {
+ log = _log;
+ this.xUIManager = xUIManager;
+ this.xMSF = xMSF;
+ }
+ public void reset(){
+ triggered = false;
+ }
+ public void fireEvent() {
+ try {
+ XIndexAccess xMenuBarSettings = xUIManager.getSettings(
+ "private:resource/menubar/menubar", true);
+
+ PropertyValue[]prop = _XUIConfigurationManager.createMenuBarEntry(
+ "Trigger Event", xMenuBarSettings, xMSF, log);
+ _XUIConfigurationManager.createMenuBarItem("Click for Macro",
+ UnoRuntime.queryInterface(
+ XIndexContainer.class, prop[3].Value), log);
+ XIndexContainer x = UnoRuntime.queryInterface(XIndexContainer.class, xMenuBarSettings);
+ x.insertByIndex(x.getCount(), prop);
+ xUIManager.replaceSettings("private:resource/menubar/menubar", xMenuBarSettings);
+ xUIManager.reset();
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ }
+ public boolean actionWasTriggered(){
+ return triggered;
+ }
+ public void disposing(EventObject e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.disposing the listener.");
+ }
+ public void elementInserted(ConfigurationEvent configEvent) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.elementInserted.");
+ }
+ public void elementRemoved(ConfigurationEvent configEvent) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.elementRemoved.");
+ }
+ public void elementReplaced(ConfigurationEvent configEvent) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.elementReplaced.");
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManagerSupplier.java b/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManagerSupplier.java
new file mode 100644
index 000000000..a43f4d924
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManagerSupplier.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+public class ModuleUIConfigurationManagerSupplier extends TestCase{
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.ui.ModuleUIConfigurationManagerSupplier");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ tEnv.addObjRelation("XModuleUIConfigurationManagerSupplier.ConfigurationManager",
+ "com.sun.star.frame.StartModule");
+ tEnv.addObjRelation("XModuleUIConfigurationManagerSupplier.ConfigManagerImplementationName", "com.sun.star.comp.framework.ModuleUIConfigurationManager");
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/PopupMenuControllerFactory.java b/qadevOOo/tests/java/mod/_fwk/PopupMenuControllerFactory.java
new file mode 100644
index 000000000..60dee1adf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/PopupMenuControllerFactory.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.XCloseable;
+import com.sun.star.frame.XUIControllerRegistration;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.WriterTools;
+
+/**
+ */
+public class PopupMenuControllerFactory extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Cleanup: close the created document
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+
+ /**
+ * Create test environment:
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ * @return The test environment.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XInterface xInst = null;
+
+ log.println("Creating instance...");
+
+ xTextDoc = WriterTools.createTextDoc(xMSF);
+ util.dbg.printInterfaces(xTextDoc);
+
+ xInst = (XInterface)xMSF.createInstance(
+ "com.sun.star.comp.framework.PopupMenuControllerFactory");
+
+ log.println("TestObject: " + util.utils.getImplName(xInst));
+ tEnv = new TestEnvironment(xInst);
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+ Object o = xProp.getPropertyValue("DefaultContext");
+ XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, o);
+ tEnv.addObjRelation("DC", xContext);
+
+ // register one controller, so it can be instantiated
+ XUIControllerRegistration xReg = UnoRuntime.queryInterface(XUIControllerRegistration.class, xInst);
+
+ xReg.registerController(".uno:MyCommandUrl", "", "com.sun.star.comp.framework.FooterMenuController");
+ tEnv.addObjRelation("XUIControllerRegistration.RegisteredController", ".uno:MyCommandUrl");
+ tEnv.addObjRelation("XMultiComponentFactory.ServiceNames", new String[]{".uno:MyCommandUrl"});
+
+ return tEnv;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_fwk/ServiceHandler.java b/qadevOOo/tests/java/mod/_fwk/ServiceHandler.java
new file mode 100644
index 000000000..fdf637161
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/ServiceHandler.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::lang::XInitialization</code></li>
+* <li><code>com::sun::star::frame::XDispatchProvider</code></li>
+* </ul><p>
+* @see com.sun.star.lang.XInitialization
+* @see com.sun.star.frame.XDispatchProvider
+* @see ifc.lang._XInitialization
+* @see ifc.frame._XDispatchProvider
+*/
+public class ServiceHandler extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.framework.ServiceHandler</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.ServiceHandler");
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "service:com.sun.star.io.Pipe");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/SoundHandler.java b/qadevOOo/tests/java/mod/_fwk/SoundHandler.java
new file mode 100644
index 000000000..04f1fce1d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/SoundHandler.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import util.utils;
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::frame::XDispatch</code></li>
+* <li><code>com::sun::star::frame::XNotifyingDispatch</code></li>
+* </ul><p>
+* @see com.sun.star.frame.XDispatch
+* @see com.sun.star.frame.XNotifyingDispatch
+* @see ifc.frame._XDispatch
+* @see ifc.frame._XNotifyingDispatch
+*/
+public class SoundHandler extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.frame.ContentHandler");
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ URL dispURL = utils.parseURL(Param.getMSF(),
+ utils.getFullTestURL("ok.wav"));
+ System.out.println("DISPATCHURL: "+ dispURL.Complete);
+
+ tEnv.addObjRelation("XDispatch.URL", dispURL);
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/StatusBarControllerFactory.java b/qadevOOo/tests/java/mod/_fwk/StatusBarControllerFactory.java
new file mode 100644
index 000000000..c3451125e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/StatusBarControllerFactory.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+public class StatusBarControllerFactory extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.StatusBarControllerFactory");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+ Object o = xProp.getPropertyValue("DefaultContext");
+ XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, o);
+ tEnv.addObjRelation("DC", xContext);
+ return tEnv;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_fwk/ToolBarsMenuController.java b/qadevOOo/tests/java/mod/_fwk/ToolBarsMenuController.java
new file mode 100644
index 000000000..1c88d936c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/ToolBarsMenuController.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class ToolBarsMenuController extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.ToolBarsMenuController");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/UICategoryDescription.java b/qadevOOo/tests/java/mod/_fwk/UICategoryDescription.java
new file mode 100644
index 000000000..fab3759cb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/UICategoryDescription.java
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class UICategoryDescription extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.comp.framework.UICategoryDescription");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/UICommandDescription.java b/qadevOOo/tests/java/mod/_fwk/UICommandDescription.java
new file mode 100644
index 000000000..15e64baf8
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/UICommandDescription.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+public class UICommandDescription extends TestCase {
+ XInterface oObj = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oObj = (XInterface)xMSF.createInstance("com.sun.star.frame.UICommandDescription");
+
+ log.println("TestObject: " + utils.getImplName(oObj));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java b/qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java
new file mode 100644
index 000000000..d32fb8d23
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java
@@ -0,0 +1,196 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.embed.ElementModes;
+import com.sun.star.embed.XStorage;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import ifc.ui._XUIConfiguration;
+import java.io.PrintWriter;
+import com.sun.star.lang.EventObject;
+import com.sun.star.ui.ConfigurationEvent;
+import com.sun.star.ui.UIElementType;
+import com.sun.star.ui.XUIConfigurationManager;
+import com.sun.star.ui.XUIConfigurationStorage;
+import ifc.ui._XUIConfigurationManager;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+ */
+public class UIConfigurationManager extends TestCase {
+ XUIConfigurationManager xManager = null;
+
+
+ /**
+ * Create test environment:
+ * <ul>
+ * <li>create a text doc</li>
+ * <li>get the model from the text doc</li>
+ * <li>query model for XUIConfigurationManagerSupplier interface</li>
+ * <li>get the manager from the supplier</li>
+ * </ul>
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ * @return The test environment.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+ TestEnvironment tEnv = null;
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ log.println("Creating instance...");
+
+ try {
+ xManager = UnoRuntime.queryInterface(
+ XUIConfigurationManager.class, xMSF.createInstance(
+ "com.sun.star.comp.framework.UIConfigurationManager"));
+ }
+ catch(com.sun.star.uno.Exception e) {
+ }
+ // just to make sure, it's the right one.
+ log.println("TestObject: " + utils.getImplName(xManager));
+ tEnv = new TestEnvironment(xManager);
+
+ // create a configuration storage
+ try {
+ String sourceDeleteCfg = util.utils.getFullTestURL("delete.cfg");
+ String deleteCfg = util.utils.getFullURL(util.utils.getOfficeTemp(xMSF) + "delete.cfg");
+ util.utils.copyFile(xMSF, sourceDeleteCfg, deleteCfg);
+ XStorage xSubStorage = null;
+ Object o = xMSF.createInstance("com.sun.star.embed.StorageFactory");
+ XSingleServiceFactory xSSF = UnoRuntime.queryInterface(
+ XSingleServiceFactory.class, o);
+ Object[] props = new Object[2];
+ props[0] = deleteCfg;
+ props[1] = Integer.valueOf(ElementModes.READWRITE);
+ XStorage xRootStorage = UnoRuntime.queryInterface(XStorage.class, xSSF.createInstanceWithArguments(props));
+ xSubStorage = xRootStorage.openStorageElement("Configurations2", ElementModes.READWRITE);
+
+ XUIConfigurationStorage xConfigStorage =UnoRuntime.queryInterface(XUIConfigurationStorage.class, xManager);
+ xConfigStorage.setStorage(xSubStorage);
+ tEnv.addObjRelation("XUIConfigurationStorage.Storage", xSubStorage);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ log.println("Could not create storage: " + e.toString());
+ }
+ util.dbg.printInterfaces(xManager);
+
+ tEnv.addObjRelation("XUIConfiguration.XUIConfigurationListenerImpl",
+ new ConfigurationListener(log, xManager, xMSF));
+
+ // the short cut manager service name
+ // 2do: correct the service name when it's no longer in
+ tEnv.addObjRelation("XConfigurationManager.ShortCutManager",
+ "com.sun.star.ui.DocumentAcceleratorConfiguration");
+ return tEnv;
+ }
+
+ /**
+ * An implementation of the _XUIConfiguration.XUIConfigurationListenerImpl
+ * interface to trigger the event for a listener call.
+ * @see ifc.ui._XUIConfiguration
+ */
+ private static class ConfigurationListener implements _XUIConfiguration.XUIConfigurationListenerImpl {
+ private boolean triggered = false;
+ private final PrintWriter log;
+ private final XUIConfigurationManager xUIManager;
+ private final XMultiServiceFactory xMSF;
+ private static int iUniqueCounter;
+
+ private ConfigurationListener(PrintWriter _log, XUIConfigurationManager xUIManager, XMultiServiceFactory xMSF) {
+ log = _log;
+ this.xUIManager = xUIManager;
+ this.xMSF = xMSF;
+ iUniqueCounter = 0;
+ }
+ public void reset(){
+ triggered = false;
+ }
+ public void fireEvent() {
+ try {
+ if (iUniqueCounter == 0) {
+ iUniqueCounter++;
+ xUIManager.getUIElementsInfo(UIElementType.UNKNOWN);
+ XIndexAccess xMenuBarSettings = xUIManager.getSettings(
+ "private:resource/menubar/menubar", true);
+
+ PropertyValue[]prop = _XUIConfigurationManager.createMenuBarEntry(
+ "Trigger Event", xMenuBarSettings, xMSF, log);
+ _XUIConfigurationManager.createMenuBarItem("Click for Macro",
+ UnoRuntime.queryInterface(
+ XIndexContainer.class, prop[3].Value), log);
+ XIndexContainer x = UnoRuntime.queryInterface(XIndexContainer.class, xMenuBarSettings);
+ x.insertByIndex(x.getCount(), prop);
+ xUIManager.replaceSettings("private:resource/menubar/menubar", xMenuBarSettings);
+ xUIManager.reset();
+ }
+ }
+ catch(com.sun.star.container.NoSuchElementException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IllegalAccessException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ e.printStackTrace(log);
+ }
+ }
+ public boolean actionWasTriggered(){
+ return triggered;
+ }
+ public void disposing(EventObject e) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.disposing the listener.");
+ }
+ public void elementInserted(ConfigurationEvent configEvent) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.elementInserted.");
+ }
+ public void elementRemoved(ConfigurationEvent configEvent) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.elementRemoved.");
+ }
+ public void elementReplaced(ConfigurationEvent configEvent) {
+ triggered = true;
+ log.println("_XUIConfiguration.XUIConfigurationListenerImpl.elementReplaced.");
+ }
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_fwk/UIElementFactoryManager.java b/qadevOOo/tests/java/mod/_fwk/UIElementFactoryManager.java
new file mode 100644
index 000000000..744b979b1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/UIElementFactoryManager.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.util.XCloseable;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.WriterTools;
+
+/**
+ */
+public class UIElementFactoryManager extends TestCase {
+ Object oObj = null;
+ XTextDocument xTextDoc;
+
+ /**
+ * Cleanup: close the created document
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * Create test environment:
+ * <ul>
+ * <li>create a text doc</li>
+ * <li>get the model from the text doc</li>
+ * <li>query model for XUIConfigurationManagerSupplier interface</li>
+ * <li>get the manager from the supplier</li>
+ * </ul>
+ * @param tParam The test parameters.
+ * @param log The log writer.
+ * @return The test environment.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ log.println("Creating instance...");
+ xTextDoc = WriterTools.createTextDoc(xMSF);
+ oObj = xMSF.createInstance("com.sun.star.ui.UIElementFactoryManager");
+ log.println("TestObject: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment((XInterface)oObj);
+ return tEnv;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_fwk/URLTransformer.java b/qadevOOo/tests/java/mod/_fwk/URLTransformer.java
new file mode 100644
index 000000000..b46f9f89d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwk/URLTransformer.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwk;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object that implements the following interfaces :
+* <ul>
+* <li><code>com::sun::star::util::XURLTransformer</code></li>
+* </ul><p>
+* @see com.sun.star.util.XURLTransformer
+* @see ifc.util._XURLTransformer
+*/
+public class URLTransformer extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log ) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.framework.URLTransformer");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_fwl/ContentHandlerFactory.java b/qadevOOo/tests/java/mod/_fwl/ContentHandlerFactory.java
new file mode 100644
index 000000000..41cbd39ab
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwl/ContentHandlerFactory.java
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwl;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.frame.FrameLoaderFactory</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.lang.XMultiServiceFactory
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.lang._XMultiServiceFactory
+ */
+public class ContentHandlerFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.frame.ContentHandlerFactory</code>. <p>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null ;
+
+ //now get the OButtonControl
+ oInterface = Param.getMSF().createInstance
+ ("com.sun.star.frame.ContentHandlerFactory") ;
+
+ oObj = (XInterface) oInterface ;
+ log.println("ImplName: "+utils.getImplName(oObj));
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XNameAccess xNA = UnoRuntime.queryInterface
+ (XNameAccess.class, oObj);
+ tEnv.addObjRelation("XMSF.serviceNames", xNA.getElementNames());
+ xNA.getElementNames();
+
+ // com.sun.star.container.XContainerQuery
+ NamedValue[] querySequenze = new NamedValue[1];
+ NamedValue query = new NamedValue();
+ query.Name = "Name";
+ query.Value = "com.sun.star.comp.framework.SoundHandler";
+ querySequenze[0] = query;
+
+ tEnv.addObjRelation("XContainerQuery.createSubSetEnumerationByProperties",
+ querySequenze);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_fwl/FilterFactory.java b/qadevOOo/tests/java/mod/_fwl/FilterFactory.java
new file mode 100644
index 000000000..1ed9869b1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwl/FilterFactory.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwl;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.framework.FilterFactory</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.lang.XMultiServiceFactory
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.lang._XMultiServiceFactory
+ */
+public class FilterFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.framework.FilterFactory</code>.
+ * Prepares relation for
+ * <code>XMultiServiceFactory.createInstanceWithArguments</code> method
+ * test. Only filters which have their service names can be instantiated
+ * in some reasons (?). For instantiation used filter type as service
+ * name and its name as a parameter. <p>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.document.FilterFactory") ;
+ XInterface oObj = (XInterface) oInterface ;
+ log.println("ImplName: "+utils.getImplName(oObj));
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XNameAccess xNA = UnoRuntime.queryInterface
+ (XNameAccess.class, oObj);
+ String[] filterNames = xNA.getElementNames();
+
+ // XNameContainer; XNameReplace
+ String filterName = filterNames[0];
+ Object[] instance = (Object[]) xNA.getByName(filterName);
+
+ log.println("adding INSTANCE 1 as obj relation to environment");
+
+ log.println("fill property 'TemplateName' with 'INSTANCE1'");
+ setPropertyValueValue((PropertyValue[])instance, "TemplateName", "INSTANCE1");
+ tEnv.addObjRelation("INSTANCE" +1, instance);
+
+
+ // XMSF
+ ArrayList<String> vFTypes = new ArrayList<String>();
+ ArrayList<Object[]> vFArgs = new ArrayList<Object[]>();
+ for (int i = 0; i < filterNames.length; i++) {
+ PropertyValue[] filterProps = null;
+ System.out.println(filterNames[i]);
+ filterProps = (PropertyValue[])
+ xNA.getByName(filterNames[i]);
+ String filterImpl = (String) getPropertyValueValue
+ (filterProps, "FilterService");
+ if (filterImpl != null && filterImpl.length() > 0) {
+ String filterType = (String) getPropertyValueValue
+ (filterProps, "Type");
+ vFTypes.add(filterType);
+ PropertyValue prop = new PropertyValue();
+ prop.Name = "FilterName";
+ prop.Value = filterNames[i];
+ vFArgs.add(new Object[] {prop});
+
+ log.println("Found filter '" + filterNames[i] + "', type: " +
+ filterType + ", service name: '" + filterImpl + "'");
+ }
+ }
+
+ tEnv.addObjRelation("XMSF.serviceNamesWithArgs",
+ vFTypes.toArray(new String[vFTypes.size()]));
+ tEnv.addObjRelation("XMSF.Args",
+ vFArgs.toArray(new Object[vFArgs.size()][]));
+
+ // com.sun.star.container.XContainerQuery
+ NamedValue[] querySequenze = new NamedValue[1];
+ NamedValue query = new NamedValue();
+ query.Name = "Name";
+ query.Value = "Rich Text Format";
+ querySequenze[0] = query;
+
+ tEnv.addObjRelation("XContainerQuery.createSubSetEnumerationByProperties",
+ querySequenze);
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ protected Object getPropertyValueValue(PropertyValue[] props, String pName) {
+ int i = 0;
+ while (i < props.length && !props[i].Name.equals(pName)) {
+ i++;
+ }
+ return i < props.length ? props[i].Value : null;
+
+ }
+
+ protected void setPropertyValueValue(PropertyValue[] props, String pName, Object pValue) {
+ int i = 0;
+ while (i < props.length && !props[i].Name.equals(pName)) {
+ i++;
+ }
+ props[i].Value = pValue;
+ }
+
+ protected PropertyValue getPropertyValue(PropertyValue[] props, String pName) {
+ int i = 0;
+ while (i < props.length && !props[i].Name.equals(pName)) {
+ i++;
+ }
+ return i < props.length ? props[i] : null;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_fwl/FrameLoaderFactory.java b/qadevOOo/tests/java/mod/_fwl/FrameLoaderFactory.java
new file mode 100644
index 000000000..5beaebdb5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwl/FrameLoaderFactory.java
@@ -0,0 +1,87 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwl;
+
+import com.sun.star.beans.NamedValue;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.frame.FrameLoaderFactory</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.lang.XMultiServiceFactory
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.lang._XMultiServiceFactory
+ */
+public class FrameLoaderFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.frame.FrameLoaderFactory</code>. <p>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.frame.FrameLoaderFactory") ;
+ XInterface oObj = (XInterface) oInterface ;
+ log.println("ImplName: "+utils.getImplName(oObj));
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XNameAccess xNA = UnoRuntime.queryInterface
+ (XNameAccess.class, oObj);
+ tEnv.addObjRelation("XMSF.serviceNames", xNA.getElementNames());
+
+ // com.sun.star.container.XContainerQuery
+ NamedValue[] querySequenze = new NamedValue[1];
+ NamedValue query = new NamedValue();
+ query.Name = "Name";
+ query.Value = "com.sun.star.frame.Bibliography";
+ querySequenze[0] = query;
+
+ tEnv.addObjRelation("XContainerQuery.createSubSetEnumerationByProperties",
+ querySequenze);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_fwl/PathSettings.java b/qadevOOo/tests/java/mod/_fwl/PathSettings.java
new file mode 100644
index 000000000..8e05a6bfb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwl/PathSettings.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwl;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyVetoException;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.uno.UnoRuntime;
+import java.io.PrintWriter;
+import java.util.HashSet;
+import java.util.Set;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.framework.PathSettings</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::util::PathSettings</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.util.PathSettings
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XMultiPropertySet
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.util._PathSettings
+ * @see ifc.beans._XPropertySet
+ * @see ifc.beans._XMultiPropertySet
+ */
+public class PathSettings extends TestCase {
+
+ private static NamedValue[] m_Properties;
+ private static XPropertySet xPS;
+
+ /**
+ * restores the old values of the path settings
+ * @param tParam the test parameter
+ * @param log the log writer
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println("restore old values of path settings...");
+
+ for (int i=0; i < m_Properties.length; i++){
+ try{
+
+ xPS.setPropertyValue(m_Properties[i].Name, m_Properties[i].Value);
+
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ } catch (PropertyVetoException e){
+ } catch (IllegalArgumentException e){
+ } catch (WrappedTargetException e){
+ }
+ }
+ }
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.framework.PathSettings</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ //now get the OButtonControl
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.comp.framework.PathSettings") ;
+
+ oObj = (XInterface) oInterface ;
+ log.println("ImplName: "+utils.getImplName(oObj));
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ Set<String> exclProps = new HashSet<String>();
+ exclProps.add("UIConfig");
+ tEnv.addObjRelation("XFastPropertySet.ExcludeProps", exclProps);
+ tEnv.addObjRelation("XMultiPropertySet.ExcludeProps", exclProps);
+
+ saveAllPropertyValues(oObj);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ private void saveAllPropertyValues(XInterface oObj){
+
+ xPS = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+
+ XPropertySetInfo xPSI = xPS.getPropertySetInfo();
+
+ Property[] allProperties = xPSI.getProperties();
+ m_Properties = new NamedValue[allProperties.length];
+
+ for (int i=0; i < allProperties.length; i++){
+ try{
+ m_Properties[i] = new NamedValue(allProperties[i].Name,
+ xPS.getPropertyValue(allProperties[i].Name));
+
+ } catch (com.sun.star.beans.UnknownPropertyException e){
+ } catch (WrappedTargetException e){
+ }
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_fwl/SubstituteVariables.java b/qadevOOo/tests/java/mod/_fwl/SubstituteVariables.java
new file mode 100644
index 000000000..f55b33a45
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwl/SubstituteVariables.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwl;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.frame.FrameLoaderFactory</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.util.XStringSubstitution
+ * @see ifc.util._XStringSubstitution
+ */
+public class SubstituteVariables extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.util.PathSubstitution</code>. <p>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ //now get the OButtonControl
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.util.PathSubstitution") ;
+ XInterface oObj = (XInterface) oInterface ;
+ log.println("ImplName: "+utils.getImplName(oObj));
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_fwl/TypeDetection.java b/qadevOOo/tests/java/mod/_fwl/TypeDetection.java
new file mode 100644
index 000000000..74af3b352
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_fwl/TypeDetection.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._fwl;
+
+import com.sun.star.beans.NamedValue;
+import com.sun.star.container.XNameAccess;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XStorable;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import util.SOfficeFactory;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.document.TypeDetection</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XContainerQuery</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XNameContainer</code></li>
+ * <li> <code>com::sun::star::container::XNameReplace</code></li>
+ * <li> <code>com::sun::star::document::XTypeDetection</code></li>
+ * <li> <code>com::sun::star::util::XFlushable</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.container.XContainerQuery
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XNameContainer
+ * @see com.sun.star.container.XNameReplace
+ * @see com.sun.star.document.XTypeDetection
+ * @see com.sun.star.util.XFlushable
+ * @see ifc.container._XContainerQuery
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XNameContainer
+ * @see ifc.container._XNameReplace
+ * @see ifc.document._XTypeDetection
+ * @see ifc.util._XFlushable
+ */
+public class TypeDetection extends TestCase {
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.document.TypeDetection</code>. <p>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null ;
+
+ oInterface = Param.getMSF().createInstance
+ ("com.sun.star.document.TypeDetection") ;
+
+ oObj = (XInterface) oInterface ;
+ log.println("ImplName: "+utils.getImplName(oObj));
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XNameAccess xNA = UnoRuntime.queryInterface
+ (XNameAccess.class, oObj);
+ String[] elementNames = xNA.getElementNames();
+ String elementName = elementNames[0];
+ Object[] instance = null;
+ instance = (Object[]) xNA.getByName(elementName);
+
+ log.println("adding INSTANCE 1 as obj relation to environment");
+
+ setPropertyValueValue((PropertyValue[])instance, "Preferred", "INSTANCE1");
+ tEnv.addObjRelation("INSTANCE" +1, instance);
+
+ // com.sun.star.container.XContainerQuery
+ NamedValue[] querySequenze = new NamedValue[1];
+ NamedValue query = new NamedValue();
+ query.Name = "Name";
+ query.Value = "generic_Text";
+ querySequenze[0] = query;
+
+
+ log.println("create text document with bookmarks");
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ String fileURL = null;
+ xTextDoc = SOF.createTextDoc( null );
+ XInterface xBookMark = SOfficeFactory.createBookmark( xTextDoc );
+ SOfficeFactory.insertTextContent( xTextDoc, (XTextContent) xBookMark );
+
+ fileURL = utils.getOfficeTemp(Param.getMSF() );
+ fileURL = fileURL + "bookmarks.oot";
+
+ XStorable store = UnoRuntime.queryInterface(XStorable.class, xTextDoc);
+ System.out.println(fileURL);
+ store.storeToURL(fileURL, new PropertyValue[0]);
+
+ tEnv.addObjRelation("XContainerQuery.createSubSetEnumerationByProperties",
+ querySequenze);
+ tEnv.addObjRelation("XTypeDetection.bookmarkDoc", fileURL+"#bookmark");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+ protected void setPropertyValueValue(PropertyValue[] props, String pName, Object pValue) {
+ int i = 0;
+ while (i < props.length && !props[i].Name.equals(pName)) {
+ i++;
+ }
+ props[i].Value = pValue;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_i18n/BreakIterator.java b/qadevOOo/tests/java/mod/_i18n/BreakIterator.java
new file mode 100644
index 000000000..b7d0491d6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/BreakIterator.java
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.i18n.BreakIterator</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::i18n::XBreakIterator</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see ifc.i18n._XBreakIterator
+*/
+public class BreakIterator extends TestCase {
+
+ XComponent xTextDoc;
+
+ /**
+ * Loads a Text document with name 'Iterator.sxw' from test
+ * documents directory
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xTextDoc = SOF.loadDocument(utils.getFullTestURL("Iterator.sxw"));
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.BreakIterator</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.i18n.BreakIterator" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("Locale", new Locale("en", "US", ""));
+
+ XTextDocument xDoc = UnoRuntime.queryInterface
+ (XTextDocument.class, xTextDoc);
+ XTextRange xTextRange = xDoc.getText();
+ tEnv.addObjRelation("UnicodeString", xTextRange.getString());
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * Disposes the Text document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ xTextDoc.dispose();
+ }
+
+} // finish class BreakIterator
+
diff --git a/qadevOOo/tests/java/mod/_i18n/CalendarImpl.java b/qadevOOo/tests/java/mod/_i18n/CalendarImpl.java
new file mode 100644
index 000000000..3c7fdee7b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/CalendarImpl.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.i18n.Calendar</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::i18n::Calendar</code></li>
+* </ul>
+* @see ifc.i18n._XCalendar
+*/
+public class CalendarImpl extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.Calendar</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.i18n.LocaleCalendar" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_i18n/ChapterCollator.java b/qadevOOo/tests/java/mod/_i18n/ChapterCollator.java
new file mode 100644
index 000000000..4a8ecb338
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/ChapterCollator.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.i18n.ChapterCollator</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::i18n::XCollator</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see ifc.i18n._XCollator
+* @see ifc.lang._XServiceInfo
+*/
+public class ChapterCollator extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.ChapterCollator</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.i18n.ChapterCollator" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_i18n/CharacterClassification.java b/qadevOOo/tests/java/mod/_i18n/CharacterClassification.java
new file mode 100644
index 000000000..a2c8b8b6c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/CharacterClassification.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.i18n.CharacterClassification</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::i18n::XCharacterClassification</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.i18n.XCharacterClassification
+ * @see ifc.i18n._XCharacterClassification
+ */
+public class CharacterClassification extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.CharacterClassification</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.i18n.CharacterClassification" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for CharacterClassification object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class CharacterClassification
+
diff --git a/qadevOOo/tests/java/mod/_i18n/Collator.java b/qadevOOo/tests/java/mod/_i18n/Collator.java
new file mode 100644
index 000000000..6738f8072
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/Collator.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.i18n.Collator</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::i18n::XCollator</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see ifc.i18n._XCollator
+*/
+public class Collator extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.Collator</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.i18n.Collator" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_i18n/IndexEntrySupplier.java b/qadevOOo/tests/java/mod/_i18n/IndexEntrySupplier.java
new file mode 100644
index 000000000..f27ed3e43
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/IndexEntrySupplier.java
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.i18n.IndexEntrySupplier</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::i18n::XIndexEntrySupplier</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.i18n.XIndexEntrySupplier
+ * @see ifc.i18n._XIndexEntrySupplier
+ */
+public class IndexEntrySupplier extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.IndexEntrySupplier</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.i18n.IndexEntrySupplier" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_i18n/LocaleData.java b/qadevOOo/tests/java/mod/_i18n/LocaleData.java
new file mode 100644
index 000000000..a99fc17a2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/LocaleData.java
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.i18n.LocaleData</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::i18n::XLocaleData</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.i18n.XLocaleData
+ * @see ifc.i18n._XLocaleData
+ */
+public class LocaleData extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.LocaleData</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.i18n.LocaleData" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for LocaleData object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class LocaleData
+
diff --git a/qadevOOo/tests/java/mod/_i18n/NumberFormatCodeMapper.java b/qadevOOo/tests/java/mod/_i18n/NumberFormatCodeMapper.java
new file mode 100644
index 000000000..92c42ac06
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/NumberFormatCodeMapper.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.i18n.NumberFormatCodeMapper</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::i18n::XNumberFormatCode</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.i18n.XNumberFormatCode
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.i18n._XNumberFormatCode
+ */
+public class NumberFormatCodeMapper extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.NumberFormatCodeMapper</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.i18n.NumberFormatCodeMapper" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for NumberFormatCodeMapper object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class NumberFormatCodeMapper
+
diff --git a/qadevOOo/tests/java/mod/_i18n/Transliteration.java b/qadevOOo/tests/java/mod/_i18n/Transliteration.java
new file mode 100644
index 000000000..64a588c43
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_i18n/Transliteration.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._i18n;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.i18n.Transliteration</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::i18n::XTransliteration</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see ifc.i18n._XTransliteration
+*/
+public class Transliteration extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.i18n.Transliteration</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance( "com.sun.star.i18n.Transliteration" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_implreg/uno/ImplementationRegistration.java b/qadevOOo/tests/java/mod/_implreg/uno/ImplementationRegistration.java
new file mode 100644
index 000000000..4ebdb8ac9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_implreg/uno/ImplementationRegistration.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._implreg.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.registry.ImplementationRegistration</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::registry::XImplementationRegistration</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.registry.XImplementationRegistration
+* @see com.sun.star.registry.ImplementationRegistration
+* @see ifc.registry._XImplementationRegistration
+*/
+public class ImplementationRegistration extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service
+ * <code>com.sun.star.registry.ImplementationRegistration</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.registry.ImplementationRegistration" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class NestedRegistry \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_implreg/uno/package.html b/qadevOOo/tests/java/mod/_implreg/uno/package.html
new file mode 100644
index 000000000..a007b5cb1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_implreg/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'impreg'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_impreg/ImplementationRegistration.java b/qadevOOo/tests/java/mod/_impreg/ImplementationRegistration.java
new file mode 100644
index 000000000..29f843bc9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_impreg/ImplementationRegistration.java
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._impreg;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.registry.ImplementationRegistration</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::registry::XImplementationRegistration</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.registry.XImplementationRegistration
+* @see com.sun.star.registry.ImplementationRegistration
+* @see ifc.registry._XImplementationRegistration
+*/
+public class ImplementationRegistration extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service
+ * <code>com.sun.star.registry.ImplementationRegistration</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.registry.ImplementationRegistration" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class NestedRegistry
+
diff --git a/qadevOOo/tests/java/mod/_impreg/package.html b/qadevOOo/tests/java/mod/_impreg/package.html
new file mode 100644
index 000000000..a007b5cb1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_impreg/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'impreg'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_insp/Introspection.java b/qadevOOo/tests/java/mod/_insp/Introspection.java
new file mode 100644
index 000000000..de99047ae
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_insp/Introspection.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._insp;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.beans.Introspection</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::beans::XIntrospection</code></li>
+* </ul>
+* This object test can be run in several
+* threads concurrently.
+* @see com.sun.star.beans.XIntrospection
+* @see com.sun.star.beans.Introspection
+* @see ifc.beans._XIntrospection
+*/
+public class Introspection extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.comp.stoc.Introspection</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.stoc.Introspection" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for Introspection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class Introspection
+
diff --git a/qadevOOo/tests/java/mod/_insp/package.html b/qadevOOo/tests/java/mod/_insp/package.html
new file mode 100644
index 000000000..617c082e4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_insp/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'insp'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_introspection/uno/Introspection.java b/qadevOOo/tests/java/mod/_introspection/uno/Introspection.java
new file mode 100644
index 000000000..3a5e9ae24
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_introspection/uno/Introspection.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._introspection.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.beans.Introspection</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::beans::XIntrospection</code></li>
+* </ul>
+* This object test can be run in several
+* threads concurrently.
+* @see com.sun.star.beans.XIntrospection
+* @see com.sun.star.beans.Introspection
+* @see ifc.beans._XIntrospection
+*/
+public class Introspection extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.comp.stoc.Introspection</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.stoc.Introspection" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for Introspection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class Introspection
+
diff --git a/qadevOOo/tests/java/mod/_introspection/uno/package.html b/qadevOOo/tests/java/mod/_introspection/uno/package.html
new file mode 100644
index 000000000..617c082e4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_introspection/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'insp'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_inv/Invocation.java b/qadevOOo/tests/java/mod/_inv/Invocation.java
new file mode 100644
index 000000000..0264fef40
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_inv/Invocation.java
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._inv;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.script.Invocation</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XSingleServiceFactory</code></li>
+* </ul>
+* @see com.sun.star.script.Invocation
+* @see com.sun.star.lang.XSingleServiceFactory
+* @see ifc.lang._XSingleServiceFactory
+*/
+public class Invocation extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.script.Invocation</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XSingleServiceFactory.createInstance.negative'</code> :
+ * for interface {@link ifc.lang._XSingleServiceFactory} ;
+ * <code>String</code> relation; If its value 'true' then
+ * <code>createInstance</code> method for the object isn't
+ * supported. In this case object doesn't support this method.</li>
+ * <li> <code>'XSingleServiceFactory.arguments'</code> :
+ * for interface {@link ifc.lang._XSingleServiceFactory} ;
+ * has <code>Object[]</code> type. This relation is used as
+ * a parameter for <code>createInstanceWithArguments</code>
+ * method call. If this relation doesn't exist test pass
+ * zero length array as argument. Here
+ * <code>com.sun.star.io.Pipe</code> instance is passed.</li>
+ * <li> <code>'XSingleServiceFactory.MustSupport'</code> :
+ * for interface {@link ifc.lang._XSingleServiceFactory}.
+ * Specifies that created instance must support
+ * <code>com.sun.star.script.XInvocation</code> interface.
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.script.Invocation");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ // the createInstance should fail according to the documentation
+ tEnv.addObjRelation(
+ "XSingleServiceFactory.createInstance.negative", "true");
+
+ // creating parameters to createInstanceWithArguments
+ Object[] args = new Object[1];
+
+ args[0] = xMSF.createInstance("com.suns.star.io.Pipe");
+
+ tEnv.addObjRelation(
+ "XSingleServiceFactory.arguments", args);
+
+ tEnv.addObjRelation("XSingleServiceFactory.MustSupport",
+ new Class[] {com.sun.star.script.XInvocation.class});
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_inv/package.html b/qadevOOo/tests/java/mod/_inv/package.html
new file mode 100644
index 000000000..ee1fd4a02
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_inv/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'inv'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_invadp/InvocationAdapterFactory.java b/qadevOOo/tests/java/mod/_invadp/InvocationAdapterFactory.java
new file mode 100644
index 000000000..2817acce1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_invadp/InvocationAdapterFactory.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._invadp;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.script.InvocationAdapterFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::script::XInvocationAdapterFactory</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.script.XInvocationAdapterFactory
+* @see com.sun.star.script.InvocationAdapterFactory
+* @see ifc.script._XInvocationAdapterFactory
+*/
+public class InvocationAdapterFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.script.InvocationAdapterFactory</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.script.InvocationAdapterFactory");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_invadp/package.html b/qadevOOo/tests/java/mod/_invadp/package.html
new file mode 100644
index 000000000..9d1509fca
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_invadp/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'invadp'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_invocadapt/uno/InvocationAdapterFactory.java b/qadevOOo/tests/java/mod/_invocadapt/uno/InvocationAdapterFactory.java
new file mode 100644
index 000000000..dd9753782
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_invocadapt/uno/InvocationAdapterFactory.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._invocadapt.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.script.InvocationAdapterFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::script::XInvocationAdapterFactory</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.script.XInvocationAdapterFactory
+* @see com.sun.star.script.InvocationAdapterFactory
+* @see ifc.script._XInvocationAdapterFactory
+*/
+public class InvocationAdapterFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.script.InvocationAdapterFactory</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.script.InvocationAdapterFactory");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_invocadapt/uno/package.html b/qadevOOo/tests/java/mod/_invocadapt/uno/package.html
new file mode 100644
index 000000000..9d1509fca
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_invocadapt/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'invadp'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_invocation/uno/Invocation.java b/qadevOOo/tests/java/mod/_invocation/uno/Invocation.java
new file mode 100644
index 000000000..d83a2f927
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_invocation/uno/Invocation.java
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._invocation.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.script.Invocation</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XSingleServiceFactory</code></li>
+* </ul>
+* @see com.sun.star.script.Invocation
+* @see com.sun.star.lang.XSingleServiceFactory
+* @see ifc.lang._XSingleServiceFactory
+*/
+public class Invocation extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates service <code>com.sun.star.script.Invocation</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XSingleServiceFactory.createInstance.negative'</code> :
+ * for interface {@link _ifc.lang.XSingleServiceFactory} ;
+ * <code>String</code> relation; If its value 'true' then
+ * <code>createInstance</code> method for the object isn't
+ * supported. In this case object doesn't support this method.</li>
+ * <li> <code>'XSingleServiceFactory.arguments'</code> :
+ * for interface {@link _ifc.lang.XSingleServiceFactory} ;
+ * has <code>Object[]</code> type. This relation is used as
+ * a parameter for <code>createInstanceWithArguments</code>
+ * method call. If this relation doesn't exist test pass
+ * zero length array as argument. Here
+ * <code>com.sun.star.io.Pipe</code> instance is passed.</li>
+ * <li> <code>'XSingleServiceFactory.MustSupport'</code> :
+ * for interface {@link _ifc.lang.XSingleServiceFactory}.
+ * Specifies that created instance must support
+ * <code>com.sun.star.script.XInvocation</code> interface.
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.script.Invocation");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ // the createInstance should fail according to the documentation
+ tEnv.addObjRelation(
+ "XSingleServiceFactory.createInstance.negative", "true");
+
+ // creating parameters to createInstanceWithArguments
+ Object[] args = new Object[1];
+
+ args[0] = xMSF.createInstance("com.suns.star.io.Pipe");
+
+ tEnv.addObjRelation(
+ "XSingleServiceFactory.arguments", args);
+
+ tEnv.addObjRelation("XSingleServiceFactory.MustSupport",
+ new Class[] {com.sun.star.script.XInvocation.class});
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_invocation/uno/package.html b/qadevOOo/tests/java/mod/_invocation/uno/package.html
new file mode 100644
index 000000000..ee1fd4a02
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_invocation/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'inv'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_javaloader/JavaComponentLoader.java b/qadevOOo/tests/java/mod/_javaloader/JavaComponentLoader.java
new file mode 100644
index 000000000..0a40e58ca
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_javaloader/JavaComponentLoader.java
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._javaloader;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for <code>com.sun.star.comp.stoc.Java2</code> service <p>
+* Files which are used :
+* <ul>
+* <li> <code>MyPersistObjectImpl.jar</code> : jar which will be loaded in
+* <code>XImplementationLoader</code> interface test. </li>
+* <ul>
+* Multithread testing compliant.
+* @see com.sun.star.loader.XImplementationLoader
+* @see com.sun.star.lang.XServiceInfo
+* @see ifc.loader._XImplementationLoader
+* @see ifc.lang._XServiceInfo
+*/
+public class JavaComponentLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.comp.stoc.Java2</code>
+ * service. <p>
+ * The following object relations created :
+ * <ul>
+ * <li> <code>'ImplementationLoader'</code> : service which is
+ * responsible for loading jar implementations. </li>
+ * <li> <code>'ImplementationUrl'</code> : jar file location. </li>
+ * <li> <code>'ImplementationName'</code> : Name of the implementation.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance(
+ "com.sun.star.comp.stoc.JavaComponentLoader" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for JavaComponentLoader object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding object relation for XImplementationLoader ifc test
+ tEnv.addObjRelation("ImplementationLoader",
+ "com.sun.star.loader.JavaComponentLoader") ;
+
+ String implURL = utils.getFullTestURL("qadevlibs/MyPersistObjectImpl.jar");
+ tEnv.addObjRelation("ImplementationUrl", implURL) ;
+ log.println("looking for shared lib: " + implURL);
+ tEnv.addObjRelation("ImplementationName",
+ "com.sun.star.cmp.MyPersistObject") ;
+
+ return tEnv;
+ } // finish method createTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_javaloader/uno/JavaComponentLoader.java b/qadevOOo/tests/java/mod/_javaloader/uno/JavaComponentLoader.java
new file mode 100644
index 000000000..99bdeb76a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_javaloader/uno/JavaComponentLoader.java
@@ -0,0 +1,80 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._javaloader.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+* Test for <code>com.sun.star.comp.stoc.Java2</code> service <p>
+* Files which are used :
+* <ul>
+* <li> <code>MyPersistObjectImpl.jar</code> : jar which will be loaded in
+* <code>XImplementationLoader</code> interface test. </li>
+* <ul>
+* Multithread testing compliant.
+* @see com.sun.star.loader.XImplementationLoader
+* @see com.sun.star.lang.XServiceInfo
+* @see ifc.loader._XImplementationLoader
+* @see ifc.lang._XServiceInfo
+*/
+public class JavaComponentLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.comp.stoc.Java2</code>
+ * service. <p>
+ * The following object relations created :
+ * <ul>
+ * <li> <code>'ImplementationLoader'</code> : service which is
+ * responsible for loading jar implementations. </li>
+ * <li> <code>'ImplementationUrl'</code> : jar file location. </li>
+ * <li> <code>'ImplementationName'</code> : Name of the implementation.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance(
+ "com.sun.star.comp.stoc.JavaComponentLoader" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for JavaComponentLoader object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding object relation for XImplementationLoader ifc test
+ tEnv.addObjRelation("ImplementationLoader",
+ "com.sun.star.loader.JavaComponentLoader") ;
+
+ String implURL = utils.getFullTestURL("qadevlibs/MyPersistObjectImpl.jar");
+ tEnv.addObjRelation("ImplementationUrl", implURL) ;
+ log.println("looking for shared lib: " + implURL);
+ tEnv.addObjRelation("ImplementationName",
+ "com.sun.star.cmp.MyPersistObject") ;
+
+ return tEnv;
+ } // finish method createTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_javavm/uno/JavaVirtualMachine.java b/qadevOOo/tests/java/mod/_javavm/uno/JavaVirtualMachine.java
new file mode 100644
index 000000000..b45447636
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_javavm/uno/JavaVirtualMachine.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._javavm.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.java.JavaVirtualMachine</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::java::XJavaThreadRegister_11</code></li>
+* <li> <code>com::sun::star::java::XJavaVM</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.java.XJavaThreadRegister_11
+* @see com.sun.star.java.XJavaVM
+* @see com.sun.star.java.XJavaVirtualMachine
+* @see ifc.java._XJavaThreadRegister_11
+* @see ifc.java._XJavaVM
+*/
+public class JavaVirtualMachine extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.java.JavaVirtualMachine</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.java.JavaVirtualMachine");
+
+ return new TestEnvironment(xInt);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_javavm/uno/package.html b/qadevOOo/tests/java/mod/_javavm/uno/package.html
new file mode 100644
index 000000000..a54ca6e09
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_javavm/uno/package.html
@@ -0,0 +1,6 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'jen'.</P>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_jdbc/JDBCDriver.java b/qadevOOo/tests/java/mod/_jdbc/JDBCDriver.java
new file mode 100644
index 000000000..e0e6b5913
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_jdbc/JDBCDriver.java
@@ -0,0 +1,107 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._jdbc;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DBTools;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Here <code>com.sun.star.sdbc.Driver</code> service is tested.<p>
+* Test allows to run object tests in several threads concurrently.
+* @see com.sun.star.sdbc.Driver
+* @see com.sun.star.sdbc.XDriver
+* @see ifc.sdbc._XDriver
+*/
+public class JDBCDriver extends TestCase {
+ /**
+ * Creates an instance of the service
+ * <code>com.sun.star.sdbc.Driver</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDriver.URL'</code> for {@link ifc.sdbc._XDriver}:
+ * is the URL of the database to which to connect.
+ * The URL is obtained from the parameter <code>jdbc.url</code></li>
+ * <li> <code>'XDriver.UNSUITABLE_URL'</code> for {@link ifc.sdbc._XDriver}:
+ * the wrong kind of URL to connect using given driver.
+ * The URL is obtained from the parameter <code>flat.url</code></li>
+ * <li> <code>'XDriver.INFO'</code> for {@link ifc.sdbc._XDriver}:
+ * a list of arbitrary string tag/value pairs as connection arguments.
+ * The values for list are obtained from the parameter
+ * <code>jdbc.user</code> and <code>jdbc.password</code>.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.sdbc.JDBCDriver");
+
+ log.println("creating a new environment for JDBCDriver object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding relation for sdbc.XDriver
+ String jdbcURL = (String) Param.get("jdbc.url");
+ if (jdbcURL == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.URL", "jdbc:" + jdbcURL);
+
+ String user = (String) Param.get("jdbc.user");
+ String password = (String) Param.get("jdbc.password");
+ if (user == null || password == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.user' or 'jdbc.password' from ini-file"));
+ }
+ PropertyValue[] info = new PropertyValue[4];
+ info[0] = new PropertyValue();
+ info[0].Name = "JavaDriverClass";
+ info[0].Value = DBTools.TST_JDBC_DRIVER;
+ info[1] = new PropertyValue();
+ info[1].Name = "user";
+ info[1].Value = user;
+ info[2] = new PropertyValue();
+ info[2].Name = "password";
+ info[2].Value = password;
+ info[3] = new PropertyValue();
+ info[3].Name = "isPasswordRequired";
+ info[3].Value = Boolean.TRUE;
+
+ tEnv.addObjRelation("XDriver.INFO", info);
+
+ String flatUrl = (String) Param.get("flat.url");
+ if (flatUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'flat.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.UNSUITABLE_URL", "sdbc:flat:" + flatUrl);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_jen/JavaVirtualMachine.java b/qadevOOo/tests/java/mod/_jen/JavaVirtualMachine.java
new file mode 100644
index 000000000..2a27fda8c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_jen/JavaVirtualMachine.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._jen;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.java.JavaVirtualMachine</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::java::XJavaThreadRegister_11</code></li>
+* <li> <code>com::sun::star::java::XJavaVM</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.java.XJavaThreadRegister_11
+* @see com.sun.star.java.XJavaVM
+* @see com.sun.star.java.XJavaVirtualMachine
+* @see ifc.java._XJavaThreadRegister_11
+* @see ifc.java._XJavaVM
+*/
+public class JavaVirtualMachine extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.java.JavaVirtualMachine</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.java.JavaVirtualMachine");
+
+ return new TestEnvironment(xInt);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_jen/package.html b/qadevOOo/tests/java/mod/_jen/package.html
new file mode 100644
index 000000000..639ba6ade
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_jen/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'jen'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_lng/DicList.java b/qadevOOo/tests/java/mod/_lng/DicList.java
new file mode 100644
index 000000000..a787d79bc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_lng/DicList.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._lng;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.Locale;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.linguistic2.XDictionary;
+import com.sun.star.linguistic2.XDictionaryList;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.lingu2.DicList</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::linguistic2::XSearchableDictionaryList</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::linguistic2::XDictionaryList</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.linguistic2.XSearchableDictionaryList
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.linguistic2.XDictionaryList
+ * @see ifc.linguistic2._XSearchableDictionaryList
+ * @see ifc.lang._XComponent
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.linguistic2._XDictionaryList
+ */
+public class DicList extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.lingu2.DicList</code>. Then two dictionaries
+ * are created (positive and negative) and added to the list, one
+ * entry is added to each of dictionaries and they both are activated.
+ * The dictionary list is returned as a component for testing.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = (XInterface)xMSF.createInstance("com.sun.star.lingu2.DicList");
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //creating a user defined dictionary for XSearchableDictionaryList
+ XDictionaryList xDicList = UnoRuntime.queryInterface(
+ XDictionaryList.class, oObj);
+ xDicList.removeDictionary(xDicList.getDictionaryByName("MyDictionary"));
+ XDictionary xDic = xDicList.createDictionary("NegativDic",new Locale(
+ "en","US","WIN"),com.sun.star.linguistic2.DictionaryType.NEGATIVE,"");
+ XDictionary xDic2 = xDicList.createDictionary("PositivDic",new Locale(
+ "en","US","WIN"),com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
+ xDic2.add("Positive",false,"");
+ xDic.add("Negative",true,"");
+ xDicList.addDictionary(xDic);
+ xDicList.addDictionary(xDic2);
+ xDic.setActive(true);
+ xDic2.setActive(true);
+
+ return tEnv;
+ }
+
+} // finish class DicList
+
diff --git a/qadevOOo/tests/java/mod/_lng/LinguProps.java b/qadevOOo/tests/java/mod/_lng/LinguProps.java
new file mode 100644
index 000000000..f5097cba4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_lng/LinguProps.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._lng;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.linguistic2.LinguProperties</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::linguistic2::LinguProperties</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.beans.XFastPropertySet
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.linguistic2.LinguProperties
+ * @see ifc.lang._XComponent
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.beans._XFastPropertySet
+ * @see ifc.beans._XPropertySet
+ * @see ifc.linguistic2._LinguProperties
+ */
+public class LinguProps extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.linguistic2.LinguProperties</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = (XInterface)xMSF.createInstance
+ ("com.sun.star.linguistic2.LinguProperties");
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+
+} // finish class LinguProps
+
diff --git a/qadevOOo/tests/java/mod/_lng/LngSvcMgr.java b/qadevOOo/tests/java/mod/_lng/LngSvcMgr.java
new file mode 100644
index 000000000..ff234d823
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_lng/LngSvcMgr.java
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._lng;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.linguistic2.LinguServiceManager</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::linguistic2::XLinguServiceManager</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.linguistic2.XLinguServiceManager
+ * @see ifc.lang._XComponent
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.linguistic2._XLinguServiceManager
+ */
+public class LngSvcMgr extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.linguistic2.LinguServiceManager</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = (XInterface)xMSF.createInstance
+ ("com.sun.star.linguistic2.LinguServiceManager");
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+
+} // finish class LngSvcMgr
+
diff --git a/qadevOOo/tests/java/mod/_lnn/Hyphenator.java b/qadevOOo/tests/java/mod/_lnn/Hyphenator.java
new file mode 100644
index 000000000..40577a211
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_lnn/Hyphenator.java
@@ -0,0 +1,94 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._lnn;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.linguistic2.Hyphenator</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * <li> <code>com::sun::star::linguistic2::XHyphenator</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::linguistic2::XSupportedLocales</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::lang::XServiceDisplayName</code></li>
+ * <li> <code>com::sun::star::linguistic2::XLinguServiceEventBroadcaster</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.linguistic2.XHyphenator
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.linguistic2.XSupportedLocales
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.lang.XServiceDisplayName
+ * @see com.sun.star.linguistic2.XLinguServiceEventBroadcaster
+ * @see ifc.lang._XInitialization
+ * @see ifc.linguistic2._XHyphenator
+ * @see ifc.lang._XComponent
+ * @see ifc.linguistic2._XSupportedLocales
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.lang._XServiceDisplayName
+ * @see ifc.linguistic2._XLinguServiceEventBroadcaster
+ */
+public class Hyphenator extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.linguistic2.Hyphenator</code>.
+ * Then a property for using new German rules for hyphenation
+ * is set.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = (XInterface)xMSF.createInstance
+ ("com.sun.star.linguistic2.Hyphenator");
+ Object LP = xMSF.createInstance
+ ("com.sun.star.linguistic2.LinguProperties");
+ XPropertySet LProps = UnoRuntime.queryInterface(XPropertySet.class,LP);
+ LProps.setPropertyValue("IsGermanPreReform",Boolean.TRUE);
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+
+} // finish class Hyphenator
+
diff --git a/qadevOOo/tests/java/mod/_lnn/SpellChecker.java b/qadevOOo/tests/java/mod/_lnn/SpellChecker.java
new file mode 100644
index 000000000..2c16edb8e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_lnn/SpellChecker.java
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._lnn;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.linguistic2.XLinguServiceManager;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.linguistic2.SpellChecker</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::linguistic2::XSupportedLocales</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::linguistic2::XSpellChecker</code></li>
+ * <li> <code>com::sun::star::lang::XServiceDisplayName</code></li>
+ * <li> <code>com::sun::star::linguistic2::XLinguServiceEventBroadcaster</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.linguistic2.XSupportedLocales
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.linguistic2.XSpellChecker
+ * @see com.sun.star.lang.XServiceDisplayName
+ * @see com.sun.star.linguistic2.XLinguServiceEventBroadcaster
+ * @see ifc.lang._XInitialization
+ * @see ifc.lang._XComponent
+ * @see ifc.linguistic2._XSupportedLocales
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.linguistic2._XSpellChecker
+ * @see ifc.lang._XServiceDisplayName
+ * @see ifc.linguistic2._XLinguServiceEventBroadcaster
+ */
+public class SpellChecker extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.linguistic2.SpellChecker</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XInterface oObj = (XInterface)xMSF.createInstance
+ ("com.sun.star.lingu2.SpellChecker");
+ Object LinguServiceManager = xMSF.createInstance
+ ("com.sun.star.linguistic2.LinguServiceManager");
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XLinguServiceManager xLinguServiceManager = UnoRuntime.queryInterface(XLinguServiceManager.class, LinguServiceManager);
+ tEnv.addObjRelation("AlternativeChecker",xLinguServiceManager.getSpellChecker());
+
+ return tEnv;
+ }
+
+} // finish class TestCase
+
diff --git a/qadevOOo/tests/java/mod/_lnn/Thesaurus.java b/qadevOOo/tests/java/mod/_lnn/Thesaurus.java
new file mode 100644
index 000000000..c41d2f169
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_lnn/Thesaurus.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._lnn;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.linguistic2.Thesaurus</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::linguistic2::XSupportedLocales</code></li>
+ * <li> <code>com::sun::star::linguistic2::XThesaurus</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::lang::XServiceDisplayName</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.linguistic2.XSupportedLocales
+ * @see com.sun.star.linguistic2.XThesaurus
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.lang.XServiceDisplayName
+ * @see ifc.lang._XInitialization
+ * @see ifc.lang._XComponent
+ * @see ifc.linguistic2._XSupportedLocales
+ * @see ifc.linguistic2._XThesaurus
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.lang._XServiceDisplayName
+ */
+public class Thesaurus extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.linguistic2.Thesaurus</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XInterface oObj = (XInterface)xMSF.createInstance
+ ("com.sun.star.linguistic2.Thesaurus");
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+} // finish class TestCase
+
diff --git a/qadevOOo/tests/java/mod/_mcnttype/MimeContentTypeFactory.java b/qadevOOo/tests/java/mod/_mcnttype/MimeContentTypeFactory.java
new file mode 100644
index 000000000..771f3e9e2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_mcnttype/MimeContentTypeFactory.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._mcnttype;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.mcnttype.MimeContentTypeFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::datatransfer::XMimeContentTypeFactory</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::lang::XTypeProvider</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.datatransfer.XMimeContentTypeFactory
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.lang.XTypeProvider
+* @see com.sun.star.mcnttype.MimeContentTypeFactory
+* @see ifc.datatransfer._XMimeContentTypeFactory
+* @see ifc.lang._XServiceInfo
+* @see ifc.lang._XTypeProvider
+*/
+public class MimeContentTypeFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.datatransfer.MimeContentTypeFactory</code>. <p>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.datatransfer.MimeContentTypeFactory" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_namingservice/NamingService.java b/qadevOOo/tests/java/mod/_namingservice/NamingService.java
new file mode 100644
index 000000000..5e2d70550
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_namingservice/NamingService.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._namingservice;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.uno.NamingService</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::uno::XNamingService</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.uno.XNamingService
+* @see com.sun.star.uno.NamingService
+* @see ifc.uno._XNamingService
+*/
+public class NamingService extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.uno.NamingService</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XNamingService.RegisterObject'</code> for
+ * {@link ifc.uno._XNamingService} : an object
+ * which can be registered. Here it is an instance
+ * of <code>com.sun.star.lang.ServiceManager</code>
+ * service.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.uno.NamingService" );
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // objRelation for XNamingService as object to be registered
+ tEnv.addObjRelation("XNamingService.RegisterObject",
+ Param.getMSF().createInstance
+ ("com.sun.star.lang.ServiceManager")) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_namingservice/package.html b/qadevOOo/tests/java/mod/_namingservice/package.html
new file mode 100644
index 000000000..3ac1e50ad
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_namingservice/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'namingservice'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_namingservice/uno/NamingService.java b/qadevOOo/tests/java/mod/_namingservice/uno/NamingService.java
new file mode 100644
index 000000000..3c33d8272
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_namingservice/uno/NamingService.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._namingservice.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.uno.NamingService</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::uno::XNamingService</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.uno.XNamingService
+* @see com.sun.star.uno.NamingService
+* @see ifc.uno._XNamingService
+*/
+public class NamingService extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.uno.NamingService</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XNamingService.RegisterObject'</code> for
+ * {@link ifc.uno._XNamingService} : an object
+ * which can be registered. Here it is an instance
+ * of <code>com.sun.star.lang.ServiceManager</code>
+ * service.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+ XMultiServiceFactory xMSF = null;
+
+ try {
+ xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.uno.NamingService" );
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // objRelation for XNamingService as object to be registered
+ tEnv.addObjRelation("XNamingService.RegisterObject",
+ xMSF.createInstance
+ ("com.sun.star.lang.ServiceManager")) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_nestedreg/uno/NestedRegistry.java b/qadevOOo/tests/java/mod/_nestedreg/uno/NestedRegistry.java
new file mode 100644
index 000000000..b546d56d4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_nestedreg/uno/NestedRegistry.java
@@ -0,0 +1,197 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._nestedreg.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.XInterface;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.RegistryTools;
+import util.utils;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.registry.NestedRegistry</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::registry::XSimpleRegistry</code></li>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> XSimpleRegistry.rdb </b> : Registry file created before. </li>
+* <li><b> XSimpleRegistry_open#.rdb </b> : Temporary registry file as copy of
+* <b> XSimpleRegistry.rdb </b> in the SOffice temp directory.
+* ('#' - is an ordinary number) </li>
+* <li><b> XSimpleRegistry_merge#.rdb </b> : Temporary registry file as copy of
+* <b> XSimpleRegistry.rdb </b> in the SOffice temp directory.
+* ('#' - is an ordinary number) </li>
+* </ul> <p>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.registry.XSimpleRegistry
+* @see com.sun.star.lang.XInitialization
+* @see ifc.registry._XSimpleRegistry
+* @see ifc.lang._XInitialization
+*/
+public class NestedRegistry extends TestCase {
+
+ protected static int uniq = 0 ;
+ XSimpleRegistry reg1;
+ XSimpleRegistry reg2;
+
+ @Override
+ public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
+ TestParameters tParam ) {
+ try {
+ reg1.destroy();
+ reg2.destroy();
+ }
+ catch (com.sun.star.registry.InvalidRegistryException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+
+ /**
+ * Creates a temporary copy of file, which is deleted when VM exits.
+ * @param src Source file path.
+ * @param dst Destination file path.
+ * @throws java.io.IOException If any problems occur during copying.
+ */
+ protected void copyFile(String src, String dst)
+ throws java.io.IOException {
+ File srcF = new File(src) ;
+ File dstF = new File(dst) ;
+
+ if (dstF.exists()) {
+ boolean bDeleteOk = dstF.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+
+ boolean bCreateOk = dstF.createNewFile() ;
+ if (!bCreateOk) {
+ System.out.println("create failed");
+ }
+
+ dstF.deleteOnExit() ;
+
+ FileInputStream fIn = new FileInputStream(srcF) ;
+ FileOutputStream fOut = new FileOutputStream(dstF) ;
+
+ byte[] buf = new byte[1024] ;
+ int bytesRead = 0 ;
+ while ((bytesRead = fIn.read(buf)) > 0) {
+ fOut.write(buf, 0, bytesRead) ;
+ }
+
+ fIn.close() ;
+ fOut.close() ;
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two temporary copies of registry file created before, opens
+ * them, and creates service <code>com.sun.star.comp.stoc.NestedRegistry</code>
+ * with these two registries. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'NR'</code> for {@link ifc.registry._XSimpleRegistry} :
+ * Just informs interface test that <code>NestedRegistry</code>
+ * service is tested. If this relation exists, then some methods
+ * are not supported. The relation is a <code>String</code> with
+ * object name.</li>
+ * <li> <code>'XSimpleRegistry.open'</code> for
+ * {@link ifc.registry._XSimpleRegistry}
+ * </li>
+ * <li> <code>'XSimpleRegistry.destroy'</code> for
+ * {@link ifc.registry._XSimpleRegistry}
+ * </li>
+ * <li> <code>'XSimpleRegistry.merge'</code> for
+ * {@link ifc.registry._XSimpleRegistry}
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ final String tmpDir = utils.getOfficeTempDirSys(
+ Param.getMSF()) ;
+ final String openF = tmpDir + "XSimpleRegistry_open" + uniq + ".rdb" ;
+ final String destroyF = tmpDir
+ + "XSimpleRegistry_destroy" + uniq + ".rdb" ;
+ final String mergeF = tmpDir + "XSimpleRegistry_merge" + uniq + ".rdb" ;
+ uniq++ ;
+
+ log.println("creating copies of the registry for XSimpleRegistry");
+ String source = utils.getFullTestDocName("XSimpleRegistry.rdb");
+ copyFile(source, openF) ;
+ copyFile(source, mergeF) ;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ reg1 = RegistryTools.
+ createRegistryService(xMSF) ;
+ reg1.open(mergeF, false, true) ;
+ reg2 = RegistryTools.
+ createRegistryService(xMSF) ;
+ reg2.open(openF, false, true) ;
+ XSimpleRegistry[] arg = new XSimpleRegistry[2];
+ arg[0]=reg1;
+ arg[1]=reg2;
+ oInterface = xMSF.createInstanceWithArguments
+ ( "com.sun.star.comp.stoc.NestedRegistry", arg );
+ }
+ catch( Exception e ) {
+ log.println("Introspection Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+
+
+ log.println( " creating a new environment for Introspection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("NR","NestedRegistry");
+
+ tEnv.addObjRelation("XSimpleRegistry.open", openF) ;
+ tEnv.addObjRelation("XSimpleRegistry.merge", mergeF) ;
+ tEnv.addObjRelation("XSimpleRegistry.destroy", destroyF) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+
+ }
+
+} // finish class NestedRegistry
+
diff --git a/qadevOOo/tests/java/mod/_nestedreg/uno/package.html b/qadevOOo/tests/java/mod/_nestedreg/uno/package.html
new file mode 100644
index 000000000..bee4740a1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_nestedreg/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'defreg'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_odbc/ODBCDriver.java b/qadevOOo/tests/java/mod/_odbc/ODBCDriver.java
new file mode 100644
index 000000000..03a2108e1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_odbc/ODBCDriver.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._odbc;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Here <code>com.sun.star.sdbc.Driver</code> service is tested.<p>
+ * Test allows to run object tests in several threads concurrently.
+ * @see com.sun.star.sdbc.Driver
+ * @see com.sun.star.sdbc.XDriver
+ * @see ifc.sdbc._XDriver
+ */
+public class ODBCDriver extends TestCase {
+ /**
+ * Creates an instance of the service
+ * <code>com.sun.star.sdbc.Driver</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDriver.URL'</code> for {@link ifc.sdbc._XDriver}:
+ * is the URL of the database to which to connect.
+ * The URL is obtained from the parameter <code>odbc.url</code></li>
+ * <li> <code>'XDriver.UNSUITABLE_URL'</code> for {@link ifc.sdbc._XDriver}:
+ * the wrong kind of URL to connect using given driver.
+ * The URL is obtained from the parameter <code>jdbc.url</code></li>
+ * <li> <code>'XDriver.INFO'</code> for {@link ifc.sdbc._XDriver}:
+ * a list of arbitrary string tag/value pairs as connection arguments.
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface)Param.getMSF().createInstance(
+ "com.sun.star.comp.sdbc.ODBCDriver");
+
+ log.println("creating a new environment for ODBCDriver object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding relation for sdbc.XDriver
+ String odbcURL = (String) Param.get("odbc.url");
+ if (odbcURL == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'odbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.URL", "sdbc:odbc:" + odbcURL);
+
+ PropertyValue[] info = new PropertyValue[0];
+ tEnv.addObjRelation("XDriver.INFO", info);
+
+ String jdbcUrl = (String) Param.get("jdbc.url");
+ if (jdbcUrl == null) {
+ throw new StatusException(Status.failed(
+ "Couldn't get 'jdbc.url' from ini-file"));
+ }
+ tEnv.addObjRelation("XDriver.UNSUITABLE_URL", "jdbc:" + jdbcUrl);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_pcr/ObjectInspector.java b/qadevOOo/tests/java/mod/_pcr/ObjectInspector.java
new file mode 100644
index 000000000..d226e6bb3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_pcr/ObjectInspector.java
@@ -0,0 +1,191 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._pcr;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XFrames;
+import com.sun.star.frame.XFramesSupplier;
+import com.sun.star.inspection.XObjectInspector;
+import com.sun.star.inspection.XObjectInspectorModel;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.CloseVetoException;
+import com.sun.star.util.XCloseable;
+import helper.PropertyHandlerImpl;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import util.DesktopTools;
+import util.utils;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.reflection.ObjectInspector</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::inspection::XObjectInspector</code></li>
+ * <li> <code>com::sun::star::frame::XController</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.inspection.XObjectInspector
+ * @see com.sun.star.frame.XController
+ */
+public class ObjectInspector extends TestCase {
+
+ /**
+ * module variable which holds the Desktop
+ * @see com.sun.star.frame.Desktop
+ */
+ protected static XDesktop xDesktop = null;
+
+ /**
+ * assign to the module variable <CODE>xDesktop</CODE> the desktop
+ * @param Param the test parameters
+ * @param log the log writer
+ * @see lib.TestParameters
+ * @see share.LogWriter
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("create a desktop...");
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.inspection.ObjectInspector</code> and adds it to
+ * a floating frame.<br>
+ * To test <CODE>com.sun.star.inspection.XObjectInspector.inspect()</CODE>
+ * an own implementation of
+ * <CODE>com.sun.star.inspection.XPropertyHandler</CODE> was used.
+ * @param tParam the tests parameter
+ * @param log the logger
+ * @return the test environment
+ * @see util.DesktopTools
+ * @see helper.PropertyHandlerImpl
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ this.cleanup(tParam, log);
+
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface oInspector = (XInterface) xMSF.createInstance("com.sun.star.inspection.ObjectInspector");
+
+ XObjectInspector xInspector = UnoRuntime.queryInterface(XObjectInspector.class, oInspector);
+
+ log.println("ImplementationName '" + utils.getImplName(xInspector) + "'");
+
+ XInterface oInspectorModel = (XInterface) xMSF.createInstance("com.sun.star.inspection.ObjectInspectorModel");
+
+ XObjectInspectorModel xInspectorModel = UnoRuntime.queryInterface(XObjectInspectorModel.class, oInspectorModel);
+
+ XInterface oInspectorModelToSet = (XInterface) xMSF.createInstance("com.sun.star.inspection.ObjectInspectorModel");
+
+ XObjectInspectorModel xInspectorModelToSet = UnoRuntime.queryInterface(XObjectInspectorModel.class, oInspectorModelToSet);
+
+
+ log.println("create a floating frame...");
+
+ XWindowPeer xWindowPeer = DesktopTools.createFloatingWindow(xMSF);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class, xWindowPeer);
+
+ XInterface oFrame = (XInterface) xMSF.createInstance("com.sun.star.frame.Frame");
+
+ XFrame xFrame = UnoRuntime.queryInterface(XFrame.class, oFrame);
+
+ xFrame.setName("ObjectInspector");
+ xFrame.initialize(xWindow);
+
+ XFramesSupplier xFramesSup = UnoRuntime.queryInterface(XFramesSupplier.class, xDesktop);
+
+ XFrames xFrames = xFramesSup.getFrames();
+ xFrames.append(xFrame);
+
+
+ log.println("attach ObjectInspector to floating frame...");
+
+ XInitialization xOII = UnoRuntime.queryInterface(XInitialization.class, xInspectorModel);
+
+ xOII.initialize(new Object[0]);
+
+ xInspector.setInspectorModel(xInspectorModel);
+
+ // for debug purposes the following lines could commented out. But in
+ // this case the com.sun.star.frame.XController would be failed!
+ //xInspector.attachFrame(xFrame);
+ //xWindow.setVisible(true);
+
+ Object[] oInspect = new Object[1];
+ oInspect[0] = new PropertyHandlerImpl();
+
+ TestEnvironment tEnv = new TestEnvironment(xInspector);
+
+ // com.sun.star.frame.XController
+ tEnv.addObjRelation("Frame",xFrame);
+
+ tEnv.addObjRelation("XObjectInspector.toInspect", oInspect);
+
+ tEnv.addObjRelation("XObjectInspector.InspectorModelToSet", xInspectorModelToSet);
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the ObjectOnspector using <CODE>XCloseable</CODE>
+ * @see com.sun.star.util.XCloseable
+ * @param Param the test parameter
+ * @param log the logger
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog if one exists ... ");
+
+ XFrame existentInspector = null;
+
+ XFrame xFrame = UnoRuntime.queryInterface(XFrame.class, xDesktop);
+
+ existentInspector = xFrame.findFrame( "ObjectInspector", 255 );
+
+ if ( existentInspector != null ){
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, existentInspector);
+ try{
+ closer.close(true);
+ } catch (CloseVetoException e){
+ log.println("Could not close inspector: " + e.toString());
+ }
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_pcr/ObjectInspectorModel.java b/qadevOOo/tests/java/mod/_pcr/ObjectInspectorModel.java
new file mode 100644
index 000000000..a87d0d740
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_pcr/ObjectInspectorModel.java
@@ -0,0 +1,147 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._pcr;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.inspection.XObjectInspectorModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.CloseVetoException;
+import com.sun.star.util.XCloseable;
+import helper.PropertyHandlerFactroy;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import util.DesktopTools;
+import util.utils;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.reflection.ObjectInspectorModel</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::inspection::XObjectInspectorModel</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.inspection.XObjectInspectorModel
+ */
+public class ObjectInspectorModel extends TestCase {
+
+ /**
+ * module variable which holds the Desktop
+ * @see com.sun.star.frame.Desktop
+ */
+ protected static XDesktop xDesktop = null;
+
+ /**
+ * assign to the module variable <CODE>xDesktop</CODE> the desktop
+ * @param Param the test parameters
+ * @param log the log writer
+ * @see lib.TestParameters
+ * @see share.LogWriter
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("create a desktop...");
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.inspection.ObjectInspectorModel</code> with a <code>DefaultContext</code> and
+ * <code>PropertyHandlerFactroy[]</code> as parameter
+ *
+ * @param tParam the tests parameter
+ * @param log the logger
+ * @return the test environment
+ * @see util.DesktopTools
+ * @see helper.PropertyHandlerImpl
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ this.cleanup(tParam, log);
+
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XPropertySet xMSFProp = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+ XComponentContext xDefaultContext = null;
+ // Get the default context from the office server.
+ Object oDefaultContext = xMSFProp.getPropertyValue("DefaultContext");
+
+ // Query for the interface XComponentContext.
+ xDefaultContext = UnoRuntime.queryInterface(
+ XComponentContext.class, oDefaultContext);
+
+ Object[] oHandlerFactories = new Object[1];
+ oHandlerFactories[0] = new PropertyHandlerFactroy();
+
+ int minHelpTextLines = 200;
+ int maxHelpTextLines = 400;
+
+ XObjectInspectorModel oInspectorModel = com.sun.star.inspection.ObjectInspectorModel.
+ createWithHandlerFactoriesAndHelpSection(xDefaultContext, oHandlerFactories,
+ minHelpTextLines, maxHelpTextLines);
+
+ log.println("ImplementationName '" + utils.getImplName(oInspectorModel) + "'");
+
+ TestEnvironment tEnv = new TestEnvironment(oInspectorModel);
+
+ // com.sun.star.inspection.XObjectInspectorModel
+ tEnv.addObjRelation("minHelpTextLines", Integer.valueOf(minHelpTextLines));
+ tEnv.addObjRelation("maxHelpTextLines", Integer.valueOf(maxHelpTextLines));
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the ObjectOnspector using <CODE>XCloseable</CODE>
+ * @see com.sun.star.util.XCloseable
+ * @param Param the test parameter
+ * @param log the logger
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog if one exists ... ");
+
+ XFrame existentInspector = null;
+
+ XFrame xFrame = UnoRuntime.queryInterface(XFrame.class, xDesktop);
+
+ existentInspector = xFrame.findFrame( "ObjectInspector", 255 );
+
+ if ( existentInspector != null ){
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, existentInspector);
+ try{
+ closer.close(true);
+ } catch (CloseVetoException e){
+ log.println("Could not close inspector: " + e.toString());
+ }
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_proxyfac/ProxyFactory.java b/qadevOOo/tests/java/mod/_proxyfac/ProxyFactory.java
new file mode 100644
index 000000000..c04679c90
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_proxyfac/ProxyFactory.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._proxyfac;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.reflection.ProxyFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::reflection::XProxyFactory</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.reflection.XProxyFactory
+* @see com.sun.star.reflection.ProxyFactory
+* @see ifc.reflection._XProxyFactory
+*/
+public class ProxyFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.reflection.ProxyFactory</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.reflection.ProxyFactory");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_proxyfac/package.html b/qadevOOo/tests/java/mod/_proxyfac/package.html
new file mode 100644
index 000000000..c563073c0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_proxyfac/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'proxyfac'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_proxyfac/uno/ProxyFactory.java b/qadevOOo/tests/java/mod/_proxyfac/uno/ProxyFactory.java
new file mode 100644
index 000000000..f9fdb4e9a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_proxyfac/uno/ProxyFactory.java
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._proxyfac.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.reflection.ProxyFactory</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::reflection::XProxyFactory</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.reflection.XProxyFactory
+* @see com.sun.star.reflection.ProxyFactory
+* @see ifc.reflection._XProxyFactory
+*/
+public class ProxyFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.reflection.ProxyFactory</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.reflection.ProxyFactory");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_rdbtdp/RegistryTypeDescriptionProvider.java b/qadevOOo/tests/java/mod/_rdbtdp/RegistryTypeDescriptionProvider.java
new file mode 100644
index 000000000..3c1e5a7cb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_rdbtdp/RegistryTypeDescriptionProvider.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._rdbtdp;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.reflection.TypeDescriptionProvider</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XHierarchicalNameAccess</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.container.XHierarchicalNameAccess
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.reflection.TypeDescriptionProvider
+* @see ifc.container._XHierarchicalNameAccess
+* @see ifc.lang._XComponent
+*/
+public class RegistryTypeDescriptionProvider extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.reflection.TypeDescriptionProvider</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ElementName'</code> for
+ * {@link ifc.container._XHierarchicalNameAccess} :
+ * name of the existing element. Here it type name for
+ * <code>com.sun.star.uno.XInterface</code> interface.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws StatusException {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, xMSF);
+ // get context
+ XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class,
+ xProp.getPropertyValue("DefaultContext"));
+ // get the type description manager
+ Object o = xContext.getValueByName("/singletons/" +
+ "com.sun.star.reflection.theTypeDescriptionManager");
+ // the manager contains all providers
+ XEnumerationAccess aProviderAccess = UnoRuntime.queryInterface(XEnumerationAccess.class, o);
+ // collect enumeration
+ XEnumeration xProviderEnum;
+ if (aProviderAccess.hasElements())
+ xProviderEnum = aProviderAccess.createEnumeration();
+ else
+ throw new lib.StatusException(Status.failed(
+ "No TypeDescriptionProvider given"));
+ // take the first registry type description provider
+ oInterface = xProviderEnum.nextElement();
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oInterface);
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XHierarchicalNameAccess
+ tEnv.addObjRelation("ElementName", "com.sun.star.uno.XInterface") ;
+ tEnv.addObjRelation("SearchString", "com.sun.star.loader");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_rdbtdp/package.html b/qadevOOo/tests/java/mod/_rdbtdp/package.html
new file mode 100644
index 000000000..19cdd22c6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_rdbtdp/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'rdbtdp'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_regtypeprov/uno/RegistryTypeDescriptionProvider.java b/qadevOOo/tests/java/mod/_regtypeprov/uno/RegistryTypeDescriptionProvider.java
new file mode 100644
index 000000000..553578d00
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_regtypeprov/uno/RegistryTypeDescriptionProvider.java
@@ -0,0 +1,110 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._regtypeprov.uno;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import java.io.PrintWriter;
+import lib.Status;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.reflection.TypeDescriptionProvider</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XHierarchicalNameAccess</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.container.XHierarchicalNameAccess
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.reflection.TypeDescriptionProvider
+* @see ifc.container._XHierarchicalNameAccess
+* @see ifc.lang._XComponent
+*/
+public class RegistryTypeDescriptionProvider extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.reflection.TypeDescriptionProvider</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ElementName'</code> for
+ * {@link ifc.container._XHierarchicalNameAccess} :
+ * name of the existing element. Here it type name for
+ * <code>com.sun.star.uno.XInterface</code> interface.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, xMSF);
+ // get context
+ XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class,
+ xProp.getPropertyValue("DefaultContext"));
+ // get the type description manager
+ Object o = xContext.getValueByName("/singletons/" +
+ "com.sun.star.reflection.theTypeDescriptionManager");
+ // the manager contains all providers
+ XEnumerationAccess aProviderAccess = UnoRuntime.queryInterface(XEnumerationAccess.class, o);
+ // collect enumeration
+ XEnumeration xProviderEnum;
+ if (aProviderAccess.hasElements())
+ xProviderEnum = aProviderAccess.createEnumeration();
+ else
+ throw new lib.StatusException(Status.failed(
+ "No TypeDescriptionProvider given"));
+ // take the first registry type description provider
+ oInterface = xProviderEnum.nextElement();
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oInterface);
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XHierarchicalNameAccess
+ tEnv.addObjRelation("ElementName", "com.sun.star.uno.XInterface") ;
+ tEnv.addObjRelation("SearchString", "com.sun.star.loader");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_remotebridge/package.html b/qadevOOo/tests/java/mod/_remotebridge/package.html
new file mode 100644
index 000000000..0663f0cb2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_remotebridge/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'remotebridge'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_remotebridge/uno/various.java b/qadevOOo/tests/java/mod/_remotebridge/uno/various.java
new file mode 100644
index 000000000..b9bc78696
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_remotebridge/uno/various.java
@@ -0,0 +1,266 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._remotebridge.uno;
+
+import com.sun.star.bridge.XBridgeFactory;
+import com.sun.star.bridge.XInstanceProvider;
+import com.sun.star.connection.XAcceptor;
+import com.sun.star.connection.XConnection;
+import com.sun.star.connection.XConnector;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.bridge.Bridge</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::bridge::XBridge</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.lang.XInitialization
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.bridge.XBridge
+* @see com.sun.star.bridge.Bridge
+* @see ifc.lang._XInitialization
+* @see ifc.lang._XComponent
+* @see ifc.bridge._XBridge
+*/
+public class various extends TestCase {
+
+ /**
+ * String for establishing a connection
+ */
+ protected String connectString = null ;
+
+ /**
+ * Choose the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 50000;
+ private static final int curPort = 50000;
+
+ private XAcceptor xAcctr;
+ private XConnector xCntr;
+ private XBridgeFactory xBrdgFctr;
+ private AcceptorThread accThread;
+
+ public XInterface bridge = null;
+
+ /**
+ * Implementation of interface XInstanceProvider
+ *
+ * @see com.sun.star.bridge.XInstanceProvider
+ */
+ private static class MyInstanceProvider implements XInstanceProvider {
+ /**
+ * a MultiServiceFactory for creating instances
+ *
+ * @see com.sun.star.lang.MultiServiceFactory
+ */
+ private final XMultiServiceFactory xMSF;
+
+ /**
+ * Construct object with a MultiServiceFactory
+ *
+ * @see com.sun.star.lang.MultiServiceFactory
+ */
+ private MyInstanceProvider(XMultiServiceFactory xMSF) {
+ this.xMSF = xMSF;
+ }
+
+ /**
+ * get an instance by name
+ */
+ public Object getInstance(String aInstanceName)
+ throws com.sun.star.container.NoSuchElementException
+ {
+ System.out.println("######## Try to get "+aInstanceName);
+ try {
+ return xMSF.createInstance(aInstanceName);
+ }
+ catch(com.sun.star.uno.Exception e) {
+ throw new StatusException("Unexpected exception", e);
+ }
+ }
+ }
+
+ /**
+ * Calls <code>accept()</code> method in a separate thread.
+ * Then stores exception thrown by call if it occurred, or
+ * return value.
+ */
+ private class AcceptorThread extends Thread {
+ private final XAcceptor acc;
+ private final XInstanceProvider xInstProv;
+ private final XBridgeFactory xBrdgFctr;
+ /**
+ * If method call returns some value it stores in this field.
+ */
+ private XConnection acceptedCall = null ;
+
+ /**
+ * Creates object which can call <code>accept</code> method
+ * of the Acceptor object specified.
+ */
+ private AcceptorThread(XAcceptor acc, XInstanceProvider xInstProv,
+ XBridgeFactory xBrdgFctr) {
+ this.acc = acc ;
+ this.xInstProv = xInstProv;
+ this.xBrdgFctr = xBrdgFctr;
+ }
+
+ /**
+ * Call <code>accept()</code> method and establish a bridge with an
+ * instance provider
+ */
+ @Override
+ public void run() {
+ try {
+ acceptedCall = acc.accept(connectString) ;
+ xBrdgFctr.createBridge("MyBridge", "urp",
+ acceptedCall, xInstProv);
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ } catch (com.sun.star.connection.AlreadyAcceptingException e) {
+ } catch (com.sun.star.bridge.BridgeExistsException e) {
+ }
+ }
+ }
+
+ private final boolean[] bridgeDisposed = new boolean[1] ;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.bridge.Bridge</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XInitialization.args'</code> for
+ * {@link ifc.lang._XInitialization} and
+ * {@link ifc.bridge._XBridge} : contains arguments
+ * for <code>initialize()</code> method test.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.bridge.Bridge");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+ // creating arguments for XInitialization
+ // first, creating a connection
+ // connection string
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+
+ // select the port
+ log.println("Choose Port nr: " + curPort);
+
+ connectString = "socket,host=" +
+ cncstr.substring(idx, cncstr.indexOf(",", idx)) +
+ ",port=" + curPort;
+
+ // create acceptor
+ XInterface oAcctr = (XInterface)xMSF.createInstance(
+ "com.sun.star.connection.Acceptor") ;
+
+ xAcctr = UnoRuntime.queryInterface(
+ XAcceptor.class, oAcctr);
+ // create connector
+ XInterface oCntr = (XInterface)xMSF.createInstance(
+ "com.sun.star.connection.Connector") ;
+ xCntr = UnoRuntime.queryInterface(
+ XConnector.class, oCntr);
+
+ // create bridge factory
+ XInterface oBrdg = (XInterface)xMSF.createInstance(
+ "com.sun.star.bridge.BridgeFactory") ;
+ xBrdgFctr = UnoRuntime.queryInterface(XBridgeFactory.class, oBrdg);
+
+ // create own implementation of XInstanceProvider
+ XInstanceProvider xInstProv = new MyInstanceProvider(xMSF);
+ // create waiting acceptor thread
+ accThread = new AcceptorThread(xAcctr, xInstProv, xBrdgFctr);
+ accThread.start();
+ // let the thread sleep
+ util.utils.pause(500);
+
+ // establish the connection
+ XConnection xConnection = xCntr.connect(connectString);
+
+ String protocol = "urp";
+ String bridgeName = protocol + ":" + connectString;
+
+ tEnv.addObjRelation("XInitialization.args", new Object[] {
+ bridgeName, protocol, xConnection, null});
+
+ bridge = tEnv.getTestObject();
+
+ return tEnv;
+ }
+
+ /**
+ * Stop the acceptor thread and dispose the bridge
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+
+ System.out.println("++++++++ cleanup");
+ xAcctr.stopAccepting();
+ if (accThread.isAlive()) {
+ accThread.interrupt();
+ }
+ XComponent xComp = UnoRuntime.queryInterface(
+ XComponent.class, xAcctr);
+ if (xComp != null)
+ xComp.dispose();
+ xComp = UnoRuntime.queryInterface(
+ XComponent.class, xCntr);
+ if (xComp != null)
+ xComp.dispose();
+ xComp = UnoRuntime.queryInterface(
+ XComponent.class, xBrdgFctr);
+ if (xComp != null)
+ xComp.dispose();
+
+ xComp = UnoRuntime.queryInterface(
+ XComponent.class, bridge);
+ if (xComp != null) {
+ System.out.println("######## Dispose bridge");
+ bridgeDisposed[0] = true;
+ xComp.dispose();
+ // wait for dispose
+ util.utils.pause(5000);
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_remotebridge/various.java b/qadevOOo/tests/java/mod/_remotebridge/various.java
new file mode 100644
index 000000000..6e11c46ba
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_remotebridge/various.java
@@ -0,0 +1,213 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._remotebridge;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.bridge.XBridgeFactory;
+import com.sun.star.connection.XAcceptor;
+import com.sun.star.connection.XConnection;
+import com.sun.star.connection.XConnector;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.bridge.Bridge</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XInitialization</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::bridge::XBridge</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.lang.XInitialization
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.bridge.XBridge
+* @see com.sun.star.bridge.Bridge
+* @see ifc.lang._XInitialization
+* @see ifc.lang._XComponent
+* @see ifc.bridge._XBridge
+*/
+public class various extends TestCase {
+
+ /**
+ * String for establishing a connection
+ */
+ protected String connectString = null ;
+
+ /**
+ * Choose the first port after <code>basePort</code>
+ * which is free.
+ */
+ protected static final int basePort = 50000;
+ private static final int curPort = 50000;
+
+ private XAcceptor xAcctr;
+ private XConnector xCntr;
+ private XBridgeFactory xBrdgFctr;
+ private AcceptorThread accThread;
+
+ public XInterface bridge = null;
+
+ /**
+ * Calls <code>accept()</code> method in a separate thread.
+ * Then stores exception thrown by call if it occurred, or
+ * return value.
+ */
+ private class AcceptorThread extends Thread {
+ private final XAcceptor acc;
+
+ /**
+ * Creates object which can call <code>accept</code> method
+ * of the Acceptor object specified.
+ */
+ private AcceptorThread(XAcceptor acc) {
+ this.acc = acc ;
+ }
+
+ /**
+ * Call <code>accept()</code> method and establish a bridge with an
+ * instance provider
+ */
+ @Override
+ public void run() {
+ try {
+ acc.accept(connectString) ;
+ } catch (com.sun.star.connection.ConnectionSetupException e) {
+ } catch (com.sun.star.connection.AlreadyAcceptingException e) {
+ }
+ }
+ }
+
+ private final boolean[] bridgeDisposed = new boolean[1] ;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.bridge.Bridge</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XInitialization.args'</code> for
+ * {@link ifc.lang._XInitialization} and
+ * {@link ifc.bridge._XBridge} : contains arguments
+ * for <code>initialize()</code> method test.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.bridge.Bridge");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+ // creating arguments for XInitialization
+ // first, creating a connection
+ // connection string
+ String cncstr = (String) tParam.get("CONNECTION_STRING") ;
+ int idx = cncstr.indexOf("host=") + 5 ;
+
+ // select the port
+ log.println("Choose Port nr: " + curPort);
+
+ connectString = "socket,host=" +
+ cncstr.substring(idx, cncstr.indexOf(",", idx)) +
+ ",port=" + curPort;
+
+ // create acceptor
+ XInterface oAcctr = (XInterface)xMSF.createInstance(
+ "com.sun.star.connection.Acceptor") ;
+
+ xAcctr = UnoRuntime.queryInterface(
+ XAcceptor.class, oAcctr);
+ // create connector
+ XInterface oCntr = (XInterface)xMSF.createInstance(
+ "com.sun.star.connection.Connector") ;
+ xCntr = UnoRuntime.queryInterface(
+ XConnector.class, oCntr);
+
+ // create bridge factory
+ XInterface oBrdg = (XInterface)xMSF.createInstance(
+ "com.sun.star.bridge.BridgeFactory") ;
+ xBrdgFctr = UnoRuntime.queryInterface(XBridgeFactory.class, oBrdg);
+
+ // create waiting acceptor thread
+ accThread = new AcceptorThread(xAcctr);
+ accThread.start();
+ // let the thread sleep
+ util.utils.pause(500);
+
+ // establish the connection
+ XConnection xConnection = xCntr.connect(connectString);
+
+ String protocol = "urp";
+ String bridgeName = protocol + ":" + connectString;
+
+ tEnv.addObjRelation("XInitialization.args", new Object[] {
+ bridgeName, protocol, xConnection, null});
+
+ bridge = tEnv.getTestObject();
+
+ return tEnv;
+ }
+
+ /**
+ * Stop the acceptor thread and dispose the bridge
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+
+ System.out.println("++++++++ cleanup");
+ xAcctr.stopAccepting();
+ if (accThread.isAlive()) {
+ accThread.interrupt();
+ }
+ XComponent xComp = UnoRuntime.queryInterface(
+ XComponent.class, xAcctr);
+ if (xComp != null)
+ xComp.dispose();
+ xComp = UnoRuntime.queryInterface(
+ XComponent.class, xCntr);
+ if (xComp != null)
+ xComp.dispose();
+ xComp = UnoRuntime.queryInterface(
+ XComponent.class, xBrdgFctr);
+ if (xComp != null)
+ xComp.dispose();
+
+ xComp = UnoRuntime.queryInterface(
+ XComponent.class, bridge);
+ if (xComp != null) {
+ System.out.println("######## Dispose bridge");
+ bridgeDisposed[0] = true;
+ xComp.dispose();
+ // wait for dispose
+ util.utils.pause(5000);
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java
new file mode 100644
index 000000000..ed9e5da9a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java
@@ -0,0 +1,202 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+
+public class AccessibleEditableTextPara_HeaderFooter extends TestCase {
+ protected static XComponent xCalcDoc = null;
+ protected static XMultiServiceFactory msf = null;
+ protected static XAccessibleAction action = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XAccessibleContext oObj = null;
+ Object toolkit = msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ DiagThread psDiag = new DiagThread(xCalcDoc, msf);
+ psDiag.start();
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ Object atw = tk.getActiveTopWindow();
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ atw);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XAccessibleContext ok_button = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON,
+ "Cancel");
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PARAGRAPH);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + oObj.getAccessibleName());
+ log.println("ParentDescription " +
+ oObj.getAccessibleParent().getAccessibleContext()
+ .getAccessibleDescription());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, ok_button);
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ XAccessibleEditableText eText = UnoRuntime.queryInterface(
+ XAccessibleEditableText.class,
+ oObj);
+
+ eText.setText("LEFT");
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("Destroy", "AccessibleEditableTextPara_PreviewCell");
+
+ final XAccessibleEditableText editText = eText;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ editText.setText("LEFT_EVENT");
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the dialog using accessible button 'OK' found in
+ * <code>createTestEnvironment()</code>.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" disposing xCalcDoc ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xCalcDoc);
+ }
+
+ /**
+ * Opens new writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ msf = Param.getMSF();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xCalcDoc = UnoRuntime.queryInterface(XComponent.class,
+ SOF.createCalcDoc(
+ null));
+ }
+
+
+ /**
+ * Thread for opening modal dialog 'Print Settings'.
+ */
+ private class DiagThread extends Thread {
+ private XComponent xCalcDoc = null;
+ private XMultiServiceFactory msf = null;
+
+ private DiagThread(XComponent xCalcDoc, XMultiServiceFactory msf) {
+ this.xCalcDoc = xCalcDoc;
+ this.msf = msf;
+ }
+
+ @Override
+ public void run() {
+ XModel aModel = UnoRuntime.queryInterface(XModel.class,
+ xCalcDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ //Opening HeaderFooterDialog
+ try {
+ String aSlotID = ".uno:EditHeaderAndFooter";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ msf.createInstance(
+ "com.sun.star.util.URLTransformer"));
+
+ // Because it's an in/out parameter
+ // we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+
+ if (xDispatcher != null) {
+ xDispatcher.dispatch(aURL, null);
+ }
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't open dialog");
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
new file mode 100644
index 000000000..b8ecfbfc2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java
@@ -0,0 +1,161 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+
+public class AccessibleEditableTextPara_PreviewCell extends TestCase {
+ XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for a one of cell in preview mode.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XCell xCell = null;
+
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ xCell = oSheet.getCellByPosition(0, 0);
+
+ xCell.setFormula("Value");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ XAccessibleContext oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentWindow(
+ xModel));
+ if (xRoot != null) {
+ AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE_CELL, true);
+ xRoot = AccessibilityTools.SearchedAccessible;
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.PARAGRAPH);
+ if (oObj != null) {
+ break;
+ }
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRoot.HEADER object");
+ }
+ log.println("No TABLE_CELL/PARAGRAPH found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + oObj.getAccessibleName());
+ log.println("Parent " + utils.getImplName(oObj.getAccessibleParent()));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EditOnly", "AccessibleEditableTextPara_PreviewCell");
+ tEnv.addObjRelation("Destroy", "AccessibleEditableTextPara_PreviewCell");
+
+ final XCell cell_to_change = xCell;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ cell_to_change.setFormula("NewString");
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java
new file mode 100644
index 000000000..1ec596a09
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java
@@ -0,0 +1,175 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XColumnRowRange;
+import com.sun.star.table.XTableColumns;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a cell in the spreadsheet. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleTable</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleTable
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleTable
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessibleCell extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TABLE_CELL, "B1");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // relation for XAccessibleEventBroadcaster
+ XCell xCell = null;
+ final String text = "XAccessibleText";
+ try {
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(1, 0) ;
+ xCell.setFormula(text);
+ XColumnRowRange oColumnRowRange = UnoRuntime.queryInterface(XColumnRowRange.class, oSheet);
+ XTableColumns oColumns = oColumnRowRange.getColumns();
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, oColumns);
+ XPropertySet column = UnoRuntime.queryInterface(
+ XPropertySet.class,oIndexAccess.getByIndex(1));
+ column.setPropertyValue("OptimalWidth", Boolean.TRUE);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception creating relation :");
+ e.printStackTrace(log);
+ }
+
+ tEnv.addObjRelation("EditOnly",
+ "This method is only supported if the Cell is in edit mode");
+
+ final XCell fCell = xCell ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ fCell.setFormula("firing event");
+ fCell.setFormula(text);
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleText.Text", text);
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java
new file mode 100644
index 000000000..3e4be0a8f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java
@@ -0,0 +1,145 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScAccessibleCsvCell extends TestCase {
+
+ static XAccessibleAction accAction = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.PUSH_BUTTON, "Cancel");
+
+ accAction = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TABLE, true);
+
+ XAccessibleContext cont = UnoRuntime.queryInterface(XAccessibleContext.class, oObj);
+
+ String name = "";
+ try {
+ XAccessible acc = cont.getAccessibleChild(3);
+ name = acc.getAccessibleContext().getAccessibleName();
+ log.println("Child: "+ name);
+ log.println("ImplementationName " + utils.getImplName(acc));
+ oObj = acc;
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e) {}
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+ tEnv.addObjRelation("XAccessibleText.Text", name);
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " closing Dialog " );
+ try {
+ accAction.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iae) {
+ log.println("Couldn't close dialog");
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("opening dialog");
+
+ PropertyValue[] args = new PropertyValue[1];
+ try {
+ args[0] = new PropertyValue();
+ args[0].Name = "InteractionHandler";
+ args[0].Value = Param.getMSF().createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler");
+ } catch(com.sun.star.uno.Exception e) {
+ }
+
+ String url= utils.getFullTestURL("10test.csv");
+ log.println("loading "+url);
+ SOF.loadDocument(url,args);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java
new file mode 100644
index 000000000..0e7aefc2b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScAccessibleCsvGrid extends TestCase {
+
+ static XAccessibleAction accAction = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.PUSH_BUTTON, "Cancel");
+
+ accAction = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TABLE, true);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " closing Dialog " );
+ try {
+ accAction.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iae) {
+ log.println("Couldn't close dialog");
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("opening dialog");
+
+ PropertyValue[] args = new PropertyValue[1];
+ try {
+ args[0] = new PropertyValue();
+ args[0].Name = "InteractionHandler";
+ args[0].Value = Param.getMSF().createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler");
+ } catch(com.sun.star.uno.Exception e) {
+ }
+
+ String url= utils.getFullTestURL("10test.csv");
+ log.println("loading "+url);
+ SOF.loadDocument(url,args);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java
new file mode 100644
index 000000000..d3cd92464
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java
@@ -0,0 +1,166 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScAccessibleCsvRuler extends TestCase {
+
+ static XAccessibleAction accAction = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory msf = Param.getMSF();
+
+ XInterface oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PUSH_BUTTON,
+ "Cancel");
+
+ accAction = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ XAccessibleContext acc = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.RADIO_BUTTON);
+
+ log.println("Click on: " + acc.getAccessibleName());
+
+ XAccessibleAction accAction2 = UnoRuntime.queryInterface(
+ XAccessibleAction.class, acc);
+
+ try {
+ accAction2.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException iae) {
+ }
+
+
+ AccessibilityTools.printAccessibleTree(log, xRoot);
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TEXT,
+ "Ruler", true);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ int lastone = 100;
+
+ for (int i = 0; i < 1000; i++) {
+ try {
+ text.getCharacterBounds(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ lastone = i - 1;
+
+ break;
+ }
+ }
+
+ tEnv.addObjRelation("LimitedBounds", Integer.valueOf(lastone));
+ tEnv.addObjRelation("PreviousUsed",new int[]{11,22,33,44,55,66,77,88,99});
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("opening dialog");
+
+ PropertyValue[] args = new PropertyValue[1];
+ try {
+ args[0] = new PropertyValue();
+ args[0].Name = "InteractionHandler";
+ args[0].Value = Param.getMSF().createInstance(
+ "com.sun.star.comp.uui.UUIInteractionHandler");
+ } catch(com.sun.star.uno.Exception e) {
+ }
+
+ String url= utils.getFullTestURL("10test.csv");
+ log.println("loading "+url);
+ SOF.loadDocument(url,args);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java
new file mode 100644
index 000000000..348e8a6bc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for object which is represented by accessible component of
+ * a spreadsheet document.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessibleDocument extends TestCase {
+
+ static XComponent xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Obtains accessible object for the spreadsheet document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpages" );
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT, "");
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XWindow xDocWin = xWindow;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle rect = xDocWin.getPosSize();
+ xDocWin.setPosSize(rect.X,rect.Y,rect.Height,rect.Width-10,com.sun.star.awt.PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ util.DesktopTools.closeDoc(xSpreadsheetDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ String url = utils.getFullTestURL("calcshapes.sxc");
+ log.println("loading document "+url);
+ xSpreadsheetDoc = SOF.loadDocument(url);
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java
new file mode 100644
index 000000000..6474f8d84
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java
@@ -0,0 +1,198 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a spreadsheet page in 'Page Preview' mode.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessibleDocumentPagePreview extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // inserting some content to have non-empty page preview
+ XCell xCell = null;
+ try {
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = null;
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(1));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessibleDocumentPagePreview - Page 2");
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(2));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessibleDocumentPagePreview - Page 3");
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessibleDocumentPagePreview");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating document page preview :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating document page preview :");
+ e.printStackTrace(log);
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // switching to 'Page Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ util.utils.shortWait();
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.DOCUMENT, "");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XDesktop desk = util.DesktopTools.createDesktop(Param.getMSF());
+ final XWindow win = desk.getCurrentFrame().getComponentWindow();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle rec = win.getPosSize();
+ win.setPosSize(rec.X,rec.Y,rec.Height-10,rec.Width, com.sun.star.awt.PosSize.POSSIZE);
+ win.setPosSize(rec.X,rec.Y,rec.Height,rec.Width,com.sun.star.awt.PosSize.POSSIZE );
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ String url = utils.getFullTestURL("calcshapes.sxc");
+ log.println("loading document "+url);
+ xSpreadsheetDoc = UnoRuntime.queryInterface(
+ XSpreadsheetDocument.class,SOF.loadDocument(url));
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
new file mode 100644
index 000000000..74670742c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java
@@ -0,0 +1,238 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.sheet.XHeaderFooterContent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.table.XCell;
+import com.sun.star.text.XText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a printed header in 'Page Preview' mode.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessiblePageHeader extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // inserting some content to have non-empty page preview
+ XCell xCell = null;
+ try {
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessiblePageHeader");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating page header :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating page header :");
+ e.printStackTrace(log);
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // switching to 'Page Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ XInterface oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.HEADER, "");
+ if (oObj != null) {
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRoot.HEADER object");
+ }
+ log.println("No HEADER found yet, retrying");
+ }
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSpreadsheetDoc );
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+ XStyle StdStyle = null;
+
+ XNameAccess PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),
+ StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class), PageStyles.getByName("Default"));
+
+ //get the property-set
+ final XPropertySet PropSet = UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
+
+ XHeaderFooterContent RPHC = null;
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ RPHC = (XHeaderFooterContent) AnyConverter.toObject(
+ new Type(XHeaderFooterContent.class),
+ PropSet.getPropertyValue("RightPageHeaderContent"));
+
+ final XHeaderFooterContent RPHC2 = RPHC;
+
+ final XText center = RPHC2.getCenterText();
+ final XText left = RPHC2.getLeftText();
+ final XText right = RPHC2.getRightText();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ center.setString("CENTER");
+ left.setString("LEFT");
+ right.setString("RIGHT");
+ try {
+ PropSet.setPropertyValue("RightPageHeaderContent",RPHC2);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.lang.WrappedTargetException e) {}
+ }
+ });
+
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ try {
+ XCloseable oComp = UnoRuntime.queryInterface (XCloseable.class, xSpreadsheetDoc) ;
+ oComp.close(true);
+ } catch(com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document: "+e.getMessage());
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java
new file mode 100644
index 000000000..87f1c5a74
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java
@@ -0,0 +1,200 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleStateSet;
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object which is represented by accessible component of
+ * a printed header in 'Page Preview' mode.
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class ScAccessiblePageHeaderArea extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // inserting some content to have non-empty page preview
+ XCell xCell = null;
+ try {
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(0, 0) ;
+ xCell.setFormula("ScAccessiblePageHeaderArea");
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating page header area :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating page header area :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception creating page header area :");
+ e.printStackTrace(log);
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // switching to 'Page Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.HEADER, "").getAccessibleChild(0);
+ XAccessibleContext cont = UnoRuntime.queryInterface(XAccessibleContext.class, oObj);
+ XAccessibleStateSet StateSet = cont.getAccessibleStateSet();
+ if (StateSet.contains((short)27)) {
+ log.println("Object is transient");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XAccessibleContext zoomIn =
+ AccessibilityTools.getAccessibleObjectForRole(xRoot,AccessibleRole.PUSH_BUTTON, "Zoom In");
+
+ final XAccessibleAction pressZoom = UnoRuntime.queryInterface(XAccessibleAction.class, zoomIn);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ pressZoom.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ibe) {
+ System.out.println("caught exception: " + ibe);
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes calc document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ try {
+ XCloseable oComp = UnoRuntime.queryInterface (XCloseable.class, xSpreadsheetDoc) ;
+ oComp.close(true);
+ }catch(com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document: "+e.getMessage());
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java
new file mode 100644
index 000000000..d645c407a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java
@@ -0,0 +1,173 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleValue</code>
+ * </li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessiblePreviewCell extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for a one of cell in preview mode.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XCell xCell = null;
+
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ xCell = oSheet.getCellByPosition(0, 0);
+
+ xCell.setFormula("Value");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ XInterface oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentWindow(
+ xModel));
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE_CELL, true);
+ if (oObj != null) {
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRole.TABLE_CELL object");
+ }
+ log.println("No TABLE_CELL found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ System.out.println("Fire Event");
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java
new file mode 100644
index 000000000..911b65aec
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java
@@ -0,0 +1,232 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+import com.sun.star.util.XURLTransformer;
+
+
+/**
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleValue</code>
+ * </li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessiblePreviewHeaderCell extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ if (xSheetDoc != null) {
+ try {
+ XCloseable oComp = UnoRuntime.queryInterface(
+ XCloseable.class, xSheetDoc);
+ oComp.close(true);
+ xSheetDoc = null;
+ } catch (com.sun.star.util.CloseVetoException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("document already disposed");
+ xSheetDoc = null;
+ }
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Sets a value of the cell 'A1'. Sets the property 'PrintHeaders'
+ * of the style 'Default' of the family 'PageStyles' to true.
+ * Switch the document to preview mode and then obtains the
+ * accessible object for the header cell.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ if (xSheetDoc != null) {
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class,
+ xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //setting value of cell A1
+ XCell xCell = null;
+
+ log.println("Getting spreadsheet");
+
+ XSpreadsheets oSheets = xSheetDoc.getSheets();
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(
+ XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet");
+ xCell = oSheet.getCellByPosition(0, 0);
+
+ xCell.setFormula("Value");
+
+ //setting property 'PrintHeaders' of the style 'Default'
+ XStyleFamiliesSupplier xSFS = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSheetDoc);
+ XNameAccess xNA = xSFS.getStyleFamilies();
+ XPropertySet xPropSet = null;
+
+ Object oPageStyles = xNA.getByName("PageStyles");
+ xNA = UnoRuntime.queryInterface(XNameAccess.class,
+ oPageStyles);
+
+ Object oDefStyle = xNA.getByName("Default");
+ xPropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oDefStyle);
+
+ xPropSet.setPropertyValue("PrintHeaders", Boolean.TRUE);
+
+ //switching to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ Param.getMSF()
+ .createInstance("com.sun.star.util.URLTransformer"));
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+
+ if (xDispatcher != null) {
+ xDispatcher.dispatch(aURL, null);
+ }
+
+ XInterface oObj = null;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentWindow(
+ xModel));
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE, "A");
+ if (oObj == null) {
+ log.println("Version with a fixed #103863#?");
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE_CELL, true);
+ }
+ if (oObj != null) {
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRole.TABLE/TABLE_CELL object");
+ }
+ log.println("No TABLE/TABLE_CELL found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java
new file mode 100644
index 000000000..fece4f3d1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java
@@ -0,0 +1,191 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleTable</code>
+ * </li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleTable
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessiblePreviewTable extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for a table in preview mode.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(final TestParameters Param,
+ final PrintWriter log) throws Exception {
+
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ XCell xCell = oSheet.getCellByPosition(0, 0);
+ xCell.setFormula("Value");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XController xController = xModel.getCurrentController();
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ XAccessible xRoot;
+ XInterface oObj;
+ for (int i = 0;; ++i) {
+ Thread.sleep(500);
+ try {
+ xRoot = AccessibilityTools.getAccessibleObject(
+ AccessibilityTools.getCurrentContainerWindow(
+ xModel));
+ if (xRoot != null) {
+ oObj = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TABLE);
+ if (oObj != null) {
+ break;
+ }
+ }
+ } catch (DisposedException e) {
+ log.println("Ignoring DisposedException");
+ }
+ if (i == 20) { // give up after 10 sec
+ throw new RuntimeException(
+ "Couldn't get AccessibleRole.TABLE/PUSH_BUTTON object");
+ }
+ log.println("No TABLE/PUSH_BUTTON found yet, retrying");
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XAccessibleContext zoomIn =
+ AccessibilityTools.getAccessibleObjectForRole(xRoot,AccessibleRole.PUSH_BUTTON, "Zoom In");
+
+ log.println("Getting \"" + zoomIn.getAccessibleName() + "\" which is a \"" + UnoRuntime.queryInterface(com.sun.star.lang.XServiceInfo.class, zoomIn).getImplementationName() + "\"");
+
+ final XAccessibleAction pressZoom = UnoRuntime.queryInterface(XAccessibleAction.class, zoomIn);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ pressZoom.doAccessibleAction(0);
+ // the action is not triggered on the preview table
+ // but some toolbar button - this will indirectly
+ // trigger a table event but only from VCL main loop
+ utils.waitForEventIdle(Param.getMSF());
+ // sadly it turns out that idle is not enough...
+ Thread.sleep(500);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ibe) {
+ log.println("ScAccessiblePreviewTable: IndexOutOfBoundsException from pressZoom.doAccessibleAction(0)");
+ } catch (InterruptedException ex) {}
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java b/qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java
new file mode 100644
index 000000000..dd177b7e3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for accessible object of spreadsheet document.<p>
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code>
+ * </li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleTable</code>
+ * </li>
+ * </ul>
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleTable
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleTable
+ */
+public class ScAccessibleSpreadsheet extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains the accessible object for the spreadsheet.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(xModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE );
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // relation for XAccessibleEventBroadcaster
+ XCell xCell = null;
+ final String text = "Text for testing of the interface XAccessibleText";
+ try {
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ xCell = oSheet.getCellByPosition(5, 5) ;
+ xCell.setFormula(text);
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception creating accessible text :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Exception creating accessible text :");
+ e.printStackTrace(log);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception creating accessible text :");
+ e.printStackTrace(log);
+ }
+
+ final XCell fCell = xCell ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ fCell.setFormula("firing event");
+ fCell.setFormula(text);
+ }
+ });
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java b/qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java
new file mode 100644
index 000000000..21cae1a41
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java
@@ -0,0 +1,185 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetAnnotation;
+import com.sun.star.sheet.XSheetAnnotationAnchor;
+import com.sun.star.sheet.XSheetAnnotationShapeSupplier;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.utils;
+
+import java.io.PrintWriter;
+import util.DefaultDsc;
+import util.InstCreator;
+
+
+/**
+* Test for object which represents some text annotation
+* anchored to some cell in spreadsheet (implement
+* <code>com.sun.star.sheet.CellAnnotation</code>).<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XSimpleText</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::sheet::XSheetAnnotation</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.sheet.CellAnnotation
+* @see com.sun.star.text.XSimpleText
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.sheet.XSheetAnnotation
+* @see ifc.text._XSimpleText
+* @see ifc.text._XTextRange
+* @see ifc.sheet._XSheetAnnotation
+*/
+public class ScAnnotationShapeObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates a spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF =
+ SOfficeFactory.getFactory(tParam
+ .getMSF());
+
+ log.println("creating a Spreadsheet document");
+ log.println("Loading: "+utils.getFullTestURL(
+ "ScAnnotationShapeObj.sxc"));
+ xSheetDoc =
+ UnoRuntime.queryInterface(XSpreadsheetDocument.class,
+ SOF.loadDocument(utils.getFullTestURL(
+ "ScAnnotationShapeObj.sxc")));
+ }
+
+ /**
+ * Disposes a spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp =
+ UnoRuntime.queryInterface(XComponent.class,
+ xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one them. Then a single cell is retrieved, and
+ * using its <code>com.sun.star.sheet.XSheetAnnotationAnchor</code>
+ * interface an annotation is got.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CELLPOS'</code> for
+ * {@link ifc.sheet._XSheetAnnotation} (of <code>
+ * com.sun.star.table.CellAddress</code> type) which
+ * contains the annotation cell address.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ CellAddress cellPos = new CellAddress((short) 0, 1, 2);
+
+ log.println("Getting test object ");
+
+ XSpreadsheetDocument xArea =
+ UnoRuntime.queryInterface(XSpreadsheetDocument.class,
+ xSheetDoc);
+ XSpreadsheets oSheets = xArea.getSheets();
+
+ XIndexAccess XAccess =
+ UnoRuntime.queryInterface(XIndexAccess.class,
+ oSheets);
+ XCell oCell = null;
+
+ XSpreadsheet oSheet =
+ (XSpreadsheet) AnyConverter.toObject(new Type(
+ XSpreadsheet.class),
+ XAccess.getByIndex(cellPos.Sheet));
+ XCellRange oCRange =
+ UnoRuntime.queryInterface(XCellRange.class,
+ oSheet);
+ oCell =
+ oCRange.getCellByPosition(cellPos.Column, cellPos.Row);
+
+ XSheetAnnotationAnchor oAnnoA =
+ UnoRuntime.queryInterface(XSheetAnnotationAnchor.class,
+ oCell);
+ XSheetAnnotation oAnno = oAnnoA.getAnnotation();
+
+ XSimpleText xAnnoText =
+ UnoRuntime.queryInterface(XSimpleText.class,
+ oAnno);
+ xAnnoText.setString("ScAnnotationShapeObj");
+
+ XSheetAnnotationShapeSupplier xSheetAnnotationShapeSupplier =
+ UnoRuntime.queryInterface(XSheetAnnotationShapeSupplier.class,
+ oAnno);
+
+ oObj = xSheetAnnotationShapeSupplier.getAnnotationShape();
+
+ log.println("ImplementationName: "
+ + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //adding ObjRelation for RotationDescriptor
+ tEnv.addObjRelation("NoShear", Boolean.TRUE);
+
+ //adding ObjRelation for XText
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.DateTime");
+
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation(
+ "XTEXTINFO", new InstCreator( xSheetDoc, tDsc ) );
+
+ return tEnv;
+ }
+}
+ // finish class ScAnnotationShapeObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java b/qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java
new file mode 100644
index 000000000..caa2e2a91
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java
@@ -0,0 +1,124 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetAnnotation;
+import com.sun.star.sheet.XSheetAnnotationAnchor;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.document.XDocumentInsertable
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.text.XParagraphCursor
+ * @see com.sun.star.text.XSentenceCursor
+ * @see com.sun.star.text.XTextCursor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XWordCursor
+ * @see com.sun.star.util.XSortable
+ *
+ */
+public class ScAnnotationTextCursor extends TestCase {
+
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ CellAddress cellPos = new CellAddress((short)0, 1, 2);
+
+ log.println("Getting test object ") ;
+
+ XSpreadsheetDocument xArea = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+
+ XSpreadsheets oSheets = xArea.getSheets();
+
+ XIndexAccess XAccess = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+
+ XSpreadsheet oSheet = (XSpreadsheet)XAccess.getByIndex(cellPos.Sheet);
+
+ XCellRange oCRange = UnoRuntime.queryInterface(XCellRange.class, oSheet);
+
+ XCell oCell = oCRange.getCellByPosition(cellPos.Column, cellPos.Row);
+
+ XSheetAnnotationAnchor oAnnoA = UnoRuntime.queryInterface(XSheetAnnotationAnchor.class, oCell);
+
+ XSheetAnnotation oAnno = oAnnoA.getAnnotation();
+ XSimpleText aText = UnoRuntime.queryInterface(XSimpleText.class,oAnno);
+ aText.setString("A nice little Test");
+ oObj = aText.createTextCursor();
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Other parameters required for interface tests
+
+ return tEnv;
+ }
+
+} // finish class ScAnnotationTextCursor
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java b/qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java
new file mode 100644
index 000000000..a97d3bbb4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.TableAutoFormatField</code>.
+* In StarCalc application there is a collection of autoformats
+* for tables (you can select a predefined format for a
+* table or create your own). Each autoformat has a number
+* of fields with definitions of font parameters, number
+* formats etc. for different parts of a table (column and
+* row names, footers, data). This object represents the
+* field of the same kind. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sheet::TableAutoFormatField</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.sheet.TableAutoFormatField
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.sheet._TableAutoFormatField
+* @see ifc.beans._XPropertySet
+*/
+public class ScAutoFormatFieldObj extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Using SOffice ServiceManager an instance of
+ * <code>com.sun.star.sheet.TableAutoFormatField</code> service
+ * is created. From this collection one Format is retrieved
+ * and then from this format one of its compound fields is
+ * retrieved.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log ) throws StatusException {
+
+ XInterface oObj = null;
+
+ try {
+
+ log.println ("create Object ...") ;
+ // creation of testobject here
+ XInterface formats = (XInterface)Param.getMSF().createInstance
+ ("com.sun.star.sheet.TableAutoFormats");
+ XIndexAccess formatsIndex = UnoRuntime.queryInterface
+ (XIndexAccess.class, formats);
+ XInterface format = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),formatsIndex.getByIndex(0));
+ XIndexAccess formatIndex = UnoRuntime.queryInterface
+ (XIndexAccess.class, format);
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),formatIndex.getByIndex(0));
+
+ } catch (com.sun.star.uno.Exception e) {
+ log.println ("Exception occurred while creating test Object.") ;
+ e.printStackTrace(log) ;
+ }
+
+ TestEnvironment tEnv = new TestEnvironment(oObj) ;
+
+ return tEnv;
+ }
+
+} // finish class ScAutoFormatFieldObj
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java b/qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java
new file mode 100644
index 000000000..fe155bba8
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java
@@ -0,0 +1,294 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetCellRange;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCellCursor</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::sheet::XUsedAreaCursor</code></li>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::table::XCellRange</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeAddressable</code></li>
+* <li> <code>com::sun::star::table::XCellCursor</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellCursor</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::sheet::XArrayFormulaRange</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRange</code></li>
+* <li> <code>com::sun::star::sheet::SheetCellRange</code></li>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::util::XMergeable</code></li>
+* <li> <code>com::sun::star::table::XColumnRowRange</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCellCursor
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.sheet.XUsedAreaCursor
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.table.XCellRange
+* @see com.sun.star.sheet.XCellRangeAddressable
+* @see com.sun.star.table.XCellCursor
+* @see com.sun.star.sheet.XSheetCellCursor
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.sheet.XArrayFormulaRange
+* @see com.sun.star.sheet.XSheetCellRange
+* @see com.sun.star.sheet.SheetCellRange
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.util.XMergeable
+* @see com.sun.star.table.XColumnRowRange
+* @see ifc.style._ParagraphProperties
+* @see ifc.sheet._XUsedAreaCursor
+* @see ifc.table._CellProperties
+* @see ifc.table._XCellRange
+* @see ifc.sheet._XCellRangeAddressable
+* @see ifc.table._XCellCursor
+* @see ifc.sheet._XSheetCellCursor
+* @see ifc.style._CharacterProperties
+* @see ifc.sheet._XSheetOperation
+* @see ifc.sheet._XArrayFormulaRange
+* @see ifc.sheet._XSheetCellRange
+* @see ifc.sheet._SheetCellRange
+* @see ifc.chart._XChartData
+* @see ifc.beans._XPropertySet
+* @see ifc.util._XMergeable
+* @see ifc.table._XColumnRowRange
+*/
+public class ScCellCursorObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one of them, retrieves some cell range and creates cursor range
+ * that is instance of the service
+ * <code>com.sun.star.sheet.SheetCellCursor</code>,
+ * fills some cells in the cell range.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SHEET'</code> for
+ * {@link ifc.table._XCellCursor},
+ * {@link ifc.sheet._XArrayFormulaRange} (the spreadsheet that was
+ * retrieved from collection)</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ TestEnvironment tEnv = null;
+ XSpreadsheet oSheet = null;
+ XCellRange testRange = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ XSpreadsheets oSpreadsheets = UnoRuntime.queryInterface(
+ XSpreadsheetDocument.class,
+ xSheetDoc).getSheets();
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oSpreadsheets.getByName(
+ oSpreadsheets.getElementNames()[0]));
+
+ testRange = oSheet.getCellRangeByName("$A$1:$D$4");
+
+ XSheetCellRange testSheetRange = UnoRuntime.queryInterface(
+ XSheetCellRange.class,
+ testRange);
+ oObj = oSheet.createCursorByRange(testSheetRange);
+ oSheet.getCellByPosition(1, 1).setValue(1);
+ oSheet.getCellByPosition(4, 5).setValue(1);
+ oSheet.getCellByPosition(3, 2).setFormula("xTextDoc");
+ oSheet.getCellByPosition(3, 3).setFormula("xTextDoc");
+
+ log.println("Test object successfully created.");
+
+ tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("CRDESC",
+ "Column and RowDescriptions can't be changed for this Object");
+
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B1";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B2";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B3 ... Sheet1.C1 ... Sheet1.D1";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A2;Sheet1.C2";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+
+ tEnv.addObjRelation("NewData",
+ new Object[][]
+ {
+ { "", "", "", "" },
+ { "", "2", "3", "4" },
+ { "", "2", "3", "4" },
+ { "", "2", "3", "4" }
+ });
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet", PropSet);
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XCellRange oTable = testRange;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ try {
+ oTable.getCellByPosition(0, 0).setValue(4);
+ oTable.getCellByPosition(0, 1).setFormula("b");
+ oTable.getCellByPosition(0, 2).setValue(3);
+ oTable.getCellByPosition(0, 3).setValue(23);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[4];
+
+ for (int i = 0; i < 4; i++) {
+ try {
+ XCell cell = oTable.getCellByPosition(0, i);
+ value[i] = cell.getFormula();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ out.println("Sorting ascending");
+
+ String[] rightVal = { "3", "4", "23", "b" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ }
+} // finish class ScCellCursorObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellObj.java b/qadevOOo/tests/java/mod/_sc/ScCellObj.java
new file mode 100644
index 000000000..1c5e02d37
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellObj.java
@@ -0,0 +1,183 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCell</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::text::XSimpleText</code></li>
+* <li> <code>com::sun::star::table::XCell</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::document::XActionLockable</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::text::XText</code></li>
+* <li> <code>com::sun::star::sheet::XCellAddressable</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCell
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.text.XSimpleText
+* @see com.sun.star.table.XCell
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.document.XActionLockable
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.text.XText
+* @see com.sun.star.sheet.XCellAddressable
+* @see ifc.table._CellProperties
+* @see ifc.text._XSimpleText
+* @see ifc.table._XCell
+* @see ifc.text._XTextRange
+* @see ifc.beans._XPropertySet
+* @see ifc.style._CharacterProperties
+* @see ifc.document._XActionLockable
+* @see ifc.style._ParagraphProperties
+* @see ifc.text._XText
+* @see ifc.sheet._XCellAddressable
+*/
+public class ScCellObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "Creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one of them. Retrieves some cell from the spreadsheet
+ * that is instance of the service <code>com.sun.star.sheet.SheetCell</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XTEXTINFO',</code> for
+ * {@link ifc.text._XText} </li>
+ * </ul>
+ * @see com.sun.star.sheet.SheetCell
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ XSpreadsheet oSheet = null;
+ XCell cell = null;
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ oObj = oSheet.getCellByPosition(2, 3) ;
+ cell = UnoRuntime.queryInterface(XCell.class, oObj);
+
+ log.println( "creating a new environment for ScCellObj object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Object relations for interface tests
+ DefaultDsc tDsc = new DefaultDsc(
+ "com.sun.star.text.XTextContent", "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xSheetDoc, tDsc ) );
+ // add the sheet
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.C4";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.C4";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.C4";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.C4";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+ tEnv.addObjRelation("XCellRangesQuery.CREATEENTRIES", Boolean.TRUE);
+
+ // make entries in this cell at the interface test
+ tEnv.addObjRelation("XTextFieldsSupplier.MAKEENTRY", Boolean.TRUE);
+ tEnv.addObjRelation("MAKEENTRYINCELL", cell);
+
+ // for XSearchable and XReplaceable interface test
+ tEnv.addObjRelation("XSearchable.MAKEENTRYINCELL", cell);
+ tEnv.addObjRelation("EXCLUDEFINDNEXT", Boolean.TRUE);
+
+ // for XFormulaQuery interface test
+ tEnv.addObjRelation("EXPECTEDDEPENDENTVALUES", new int[]{2,2,3,3});
+ tEnv.addObjRelation("EXPECTEDPRECEDENTVALUES", new int[]{0,3,0,0});
+ tEnv.addObjRelation("RANGEINDICES", new int[]{0,0});
+
+ // XTextFieldsSupplier
+ tEnv.addObjRelation("SPREADSHEET", xSheetDoc);
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet",PropSet);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ScCellObj
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java b/qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java
new file mode 100644
index 000000000..c37e04015
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java
@@ -0,0 +1,279 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCellRange</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::util::XMergeable</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeAddressable</code></li>
+* <li> <code>com::sun::star::sheet::XArrayFormulaRange</code></li>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::table::XColumnRowRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::table::XCellRange</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::sheet::SheetCellRange</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCellRange
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.util.XMergeable
+* @see com.sun.star.sheet.XCellRangeAddressable
+* @see com.sun.star.sheet.XArrayFormulaRange
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.table.XColumnRowRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.table.XCellRange
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.sheet.SheetCellRange
+* @see ifc.table._CellProperties
+* @see ifc.util._XMergeable
+* @see ifc.sheet._XCellRangeAddressable
+* @see ifc.sheet._XArrayFormulaRange
+* @see ifc.chart._XChartData
+* @see ifc.table._XColumnRowRange
+* @see ifc.beans._XPropertySet
+* @see ifc.style._CharacterProperties
+* @see ifc.sheet._XSheetOperation
+* @see ifc.table._XCellRange
+* @see ifc.style._ParagraphProperties
+* @see ifc.sheet._SheetCellRange
+*/
+public class ScCellRangeObj extends TestCase {
+ XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document,
+ * and takes one of them. Retrieves some cell range from the spreadsheet.
+ * The retrieved cell range is instance of the service
+ * <code>com.sun.star.sheet.SheetCellRange</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SHEET'</code> for
+ * {@link ifc.sheet._XArrayFormulaRange} (the spreadsheet which the cell
+ * range was retrieved from)</li>
+ * </ul>
+ * @see com.sun.star.sheet.XSpreadsheet
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XCellRange testRange;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ XSpreadsheets oSpreadsheets = UnoRuntime.queryInterface(
+ XSpreadsheetDocument.class,
+ xSheetDoc).getSheets();
+ XNameAccess oNames = UnoRuntime.queryInterface(
+ XNameAccess.class, oSpreadsheets);
+
+ XSpreadsheet oSheet = null;
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oNames.getByName(oNames.getElementNames()[0]));
+
+ oObj = oSheet.getCellRangeByPosition(0, 0, 3, 4);
+ testRange = UnoRuntime.queryInterface(
+ XCellRange.class, oObj);
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B1:C1;Sheet1.B3";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B2:B3";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B5 ... Sheet1.C3 ... Sheet1.D1";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "Sheet1.C2";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A2:A4;Sheet1.C2:D4";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+ tEnv.addObjRelation("XCellRangesQuery.CREATEENTRIES", Boolean.TRUE);
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet", PropSet);
+
+ // XSearchable: Add a cell to make a searchable entry
+ try {
+ tEnv.addObjRelation("XSearchable.MAKEENTRYINCELL", new XCell[] {
+ testRange.getCellByPosition(0,0), testRange.getCellByPosition(0,1)});
+ }
+ catch(com.sun.star.lang.IndexOutOfBoundsException e){
+ e.printStackTrace(log);
+ log.println("Cannot make required object relation 'XSearchable.MAKEENTRYINCELL'.");
+ }
+
+ // XCellRangeData
+/* Object[][] newData = new Object[5][4];
+ for (int i=0; i<newData.length; i++) {
+ for (int j=0; j<newData[i].length; j++) {
+ newData[i][j] = new Double(i*10+j);
+ }
+ }
+ tEnv.addObjRelation("NewData", newData); */
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XCellRange oTable = testRange;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ try {
+ oTable.getCellByPosition(0, 0).setValue(4);
+ oTable.getCellByPosition(0, 1).setFormula("b");
+ oTable.getCellByPosition(0, 2).setValue(3);
+ oTable.getCellByPosition(0, 3).setValue(23);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[4];
+
+ for (int i = 0; i < 4; i++) {
+ try {
+ XCell cell = oTable.getCellByPosition(0, i);
+ value[i] = cell.getFormula();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ out.println("Sorting ascending");
+
+ String[] rightVal = { "3", "4", "23", "b" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ }
+} // finish class ScCellRangeObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java b/qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java
new file mode 100644
index 000000000..1dfbcfc1e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java
@@ -0,0 +1,224 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import ifc.sheet._XCellRangesQuery;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetCellRanges</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::container::XNameReplace</code></li>
+* <li> <code>com::sun::star::container::XNameContainer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRangeContainer</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRanges</code></li>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* </ul>
+* @see com.sun.star.sheet.SheetCellRanges
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.container.XNameReplace
+* @see com.sun.star.container.XNameContainer
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.sheet.XSheetCellRangeContainer
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.sheet.XSheetCellRanges
+* @see com.sun.star.container.XNameAccess
+* @see ifc.table._CellProperties
+* @see ifc.container._XNameReplace
+* @see ifc.container._XNameContainer
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.container._XEnumerationAccess
+* @see ifc.sheet._XSheetCellRangeContainer
+* @see ifc.sheet._XSheetOperation
+* @see ifc.sheet._XSheetCellRanges
+* @see ifc.container._XNameAccess
+*/
+public class ScCellRangesObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a sheetdocument" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp =
+ UnoRuntime.queryInterface (XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.sheet.SheetCellRanges</code> and fills some cells.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> for
+ * {@link ifc.container._XNameReplace},
+ * {@link ifc.container._XNameContainer} (type of
+ * <code>XCellRange</code>)</li>
+ * <li> <code>'THRCNT'</code> for
+ * {@link ifc.container._XNameReplace}(the number of the running threads
+ * that was retrieved from the method parameter <code>Param</code>)</li>
+ * <li> <code>'NameReplaceIndex'</code> for
+ * {@link ifc.container._XNameReplace} </li>
+ * </ul>
+ * @see com.sun.star.table.XCellRange
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oRange = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+
+ log.println("Getting test object ");
+
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc);
+
+ oObj = (XInterface)
+ SOF.createInstance(oComp, "com.sun.star.sheet.SheetCellRanges");
+
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndSheets = UnoRuntime.queryInterface (XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = null;
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class), oIndSheets.getByIndex(0));
+ XNameContainer oRanges = UnoRuntime.queryInterface(XNameContainer.class, oObj);
+
+ oRange = oSheet.getCellRangeByName("C1:D4");
+ oRanges.insertByName("Range1", oRange);
+ oRange = oSheet.getCellRangeByName("E2:F5");
+ oRanges.insertByName("Range2", oRange);
+ oRange = oSheet.getCellRangeByName("G2:H3");
+ oRanges.insertByName("Range3", oRange);
+ oRange = oSheet.getCellRangeByName("I7:J8");
+ oRanges.insertByName("Range4", oRange);
+
+ log.println("filling some cells");
+ for (int i = 0; i < 10; i++) {
+ for (int j = 0; j < 5; j++) {
+ oSheet.getCellByPosition(i, j).setFormula("a");
+ }
+ }
+ for (int i = 0; i < 10; i++) {
+ for (int j = 5; j < 10; j++) {
+ oSheet.getCellByPosition(i, j).setValue(i + j);
+ }
+ }
+
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // NameReplaceIndex : _XNameReplace
+ log.println( "adding NameReplaceIndex as mod relation to environment" );
+ tEnv.addObjRelation("NameReplaceIndex", "0");
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println( "adding INSTANCEn as mod relation to environment" );
+
+ int THRCNT = 1;
+ if ((String)Param.get("THRCNT") != null) {
+ THRCNT= Integer.parseInt((String)Param.get("THRCNT"));
+ }
+ int a = 0;
+ int b = 0;
+ for (int n = 1; n < (THRCNT + 1) ; n++) {
+ a = n * 2;
+ b = a + 1;
+ oRange = oSheet.getCellRangeByName("A" + a + ":B" + b);
+ log.println(
+ "adding INSTANCE" + n + " as mod relation to environment" );
+
+ tEnv.addObjRelation("INSTANCE" + n, oRange);
+ }
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet",PropSet);
+ tEnv.addObjRelation("SHEET", oSheet);
+ // add expected results for the XCellRangesQuery interface test
+ String[]expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.I7:J8";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.I7:J8";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.C2:D4"; // first range, first line invisible
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS", expectedResults);
+
+ // for XSearchable and XReplaceable interface test
+ tEnv.addObjRelation("SEARCHSTRING", "15");
+
+ // for XFormulaQuery interface test
+ tEnv.addObjRelation("EXPECTEDDEPENDENTVALUES", new int[]{4,5,1,4});
+ tEnv.addObjRelation("EXPECTEDPRECEDENTVALUES", new int[]{4,5,1,4});
+ return tEnv ;
+ }
+
+} // finish class ScCellRangesObj
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java b/qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java
new file mode 100644
index 000000000..882f25702
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.text.XText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.TextCursor</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XTextCursor</code></li>
+* <li> <code>com::sun::star::text::XWordCursor</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::text::XSentenceCursor</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::text::XParagraphCursor</code></li>
+* <li> <code>com::sun::star::document::XDocumentInsertable</code></li>
+* <li> <code>com::sun::star::util::XSortable</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+* </ul>
+* @see com.sun.star.text.TextCursor
+* @see com.sun.star.text.XTextCursor
+* @see com.sun.star.text.XWordCursor
+* @see com.sun.star.style.CharacterPropertiesComplex
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XContentEnumerationAccess
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.text.XSentenceCursor
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.text.XParagraphCursor
+* @see com.sun.star.document.XDocumentInsertable
+* @see com.sun.star.util.XSortable
+* @see com.sun.star.style.CharacterPropertiesAsian
+* @see ifc.text._XTextCursor
+* @see ifc.text._XWordCursor
+* @see ifc.style._CharacterPropertiesComplex
+* @see ifc.text._XTextRange
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XContentEnumerationAccess
+* @see ifc.beans._XPropertyState
+* @see ifc.style._CharacterProperties
+* @see ifc.text._XSentenceCursor
+* @see ifc.style._ParagraphProperties
+* @see ifc.text._XParagraphCursor
+* @see ifc.document._XDocumentInsertable
+* @see ifc.util._XSortable
+* @see ifc.style._CharacterPropertiesAsian
+*/
+public class ScCellTextCursor extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Retrieves the cell from the spreadsheet
+ * and creates text cursor of the cell using the interface
+ * <code>XText</code>. This text cursor is the instance of
+ * the service <code>com.sun.star.text.TextCursor</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XTEXT'</code> for
+ * {@link ifc.text._XTextRange} (type of
+ * <code>XEnumerationAccess</code> that was retrieved from the
+ * collection of visible cells)</li>
+ * </ul>
+ * @see com.sun.star.text.XText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XCell aCell = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ // get a soffice factory object
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet") ;
+ aCell = oSheet.getCellByPosition(1,1) ;
+
+ XText aText = UnoRuntime.queryInterface(XText.class, aCell);
+ aText.setString("ScCellTextCursor");
+ oObj = aText.createTextCursor();
+
+ log.println( "creating a new environment for ScCellTextCursor object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Object relations for interface tests
+ tEnv.addObjRelation("XTEXT", aText);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ScCellTextCursor
+
diff --git a/qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java b/qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java
new file mode 100644
index 000000000..47f43fd1d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java
@@ -0,0 +1,328 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.DataPilotFieldOrientation;
+import com.sun.star.sheet.XDataPilotDescriptor;
+import com.sun.star.sheet.XDataPilotField;
+import com.sun.star.sheet.XDataPilotTables;
+import com.sun.star.sheet.XDataPilotTablesSupplier;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.DataPilotField</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::sheet::DataPilotField</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.sheet.DataPilotField
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.sheet.DataPilotField
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.container._XNamed
+* @see ifc.sheet._DataPilotField
+* @see ifc.beans._XPropertySet
+*/
+public class ScDataPilotItemObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * A field is filled some values. This integer determines the size of the
+ * field in x and y direction.
+ */
+ private static final int mMaxFieldIndex = 6;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Fills some table in the spreadsheet.
+ * Obtains the collection of data pilot tables using the interface
+ * <code>XDataPilotTablesSupplier</code>. Creates a data pilot descriptor
+ * for the filled table and inserts new data pilot table with this descriptor
+ * to the collection. Obtains the collection of all the data pilot fields
+ * using the interface <code>XDataPilotDescriptor</code>. Retrieves from
+ * the collection the data pilot field with index 0. This data pilot field
+ * is the instance of the service <code>com.sun.star.sheet.DataPilotField</code>.
+ * @see com.sun.star.sheet.DataPilotField
+ * @see com.sun.star.sheet.XDataPilotTablesSupplier
+ * @see com.sun.star.sheet.XDataPilotDescriptor
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ // the cell range
+ CellRangeAddress sCellRangeAddress = new CellRangeAddress();
+ sCellRangeAddress.Sheet = 0;
+ sCellRangeAddress.StartColumn = 1;
+ sCellRangeAddress.StartRow = 0;
+ sCellRangeAddress.EndColumn = mMaxFieldIndex - 1;
+ sCellRangeAddress.EndRow = mMaxFieldIndex - 1;
+
+ // position of the data pilot table
+ CellAddress sCellAddress = new CellAddress();
+ sCellAddress.Sheet = 0;
+ sCellAddress.Column = 7;
+ sCellAddress.Row = 8;
+
+ log.println("Getting a sheet");
+
+ XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
+ XSpreadsheet oSheet = null;
+ XSpreadsheet oSheet2 = null;
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(
+ XIndexAccess.class, xSpreadsheets);
+ // Make sure there are at least two sheets
+ xSpreadsheets.insertNewByName("Some Sheet", (short)0);
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexAccess.getByIndex(0));
+ oSheet2 = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexAccess.getByIndex(1));
+
+ log.println("Filling a table");
+
+ for (int i = 1; i < mMaxFieldIndex; i++) {
+ oSheet.getCellByPosition(i, 0).setFormula("Col" + i);
+ oSheet.getCellByPosition(0, i).setFormula("Row" + i);
+ oSheet2.getCellByPosition(i, 0).setFormula("Col" + i);
+ oSheet2.getCellByPosition(0, i).setFormula("Row" + i);
+ }
+
+ for (int i = 1; i < mMaxFieldIndex; i++)
+ for (int j = 1; j < mMaxFieldIndex; j++) {
+ oSheet.getCellByPosition(i, j).setValue(i * (j + 1));
+ oSheet2.getCellByPosition(i, j).setValue(i * (j + 2));
+ }
+
+ oSheet.getCellByPosition(1, 5);
+
+ int x = sCellAddress.Column;
+ int y = sCellAddress.Row + 3;
+
+
+ oSheet.getCellByPosition(x, y);
+
+
+ // create the test objects
+ log.println("Getting test objects");
+
+ XDataPilotTablesSupplier DPTS = UnoRuntime.queryInterface(
+ XDataPilotTablesSupplier.class,
+ oSheet);
+ XDataPilotTables DPT = DPTS.getDataPilotTables();
+ XDataPilotDescriptor DPDsc = DPT.createDataPilotDescriptor();
+ DPDsc.setSourceRange(sCellRangeAddress);
+
+ XPropertySet fieldPropSet = null;
+
+ Object oDataPilotField = DPDsc.getDataPilotFields().getByIndex(0);
+ fieldPropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oDataPilotField);
+
+ fieldPropSet.setPropertyValue("Function",
+ com.sun.star.sheet.GeneralFunction.SUM);
+ fieldPropSet.setPropertyValue("Orientation",
+ com.sun.star.sheet.DataPilotFieldOrientation.DATA);
+
+ log.println("Insert the DataPilotTable");
+
+ if (DPT.hasByName("DataPilotTable")) {
+ DPT.removeByName("DataPilotTable");
+ }
+
+ XIndexAccess IA = DPDsc.getDataPilotFields();
+ getSRange(IA);
+
+ DPT.insertNewByName("DataPilotTable", sCellAddress, DPDsc);
+
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class), IA.getByIndex(0));
+
+ log.println("Creating object - " +
+ ((oObj == null) ? "FAILED" : "OK"));
+
+ XDataPilotField xDataPilotField = UnoRuntime.queryInterface(
+ XDataPilotField.class, oObj);
+
+ XIndexAccess xIA = xDataPilotField.getItems();
+
+ oObj = UnoRuntime.queryInterface(XInterface.class,
+ xIA.getByIndex(0));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("Implementationname: " + util.utils.getImplName(oObj));
+
+ // Other parameters required for interface tests
+ tEnv.addObjRelation("NoSetName", "ScDataPilotItemObj");
+ return tEnv;
+ }
+
+ private void getSRange(XIndexAccess IA) {
+ int fieldsAmount = IA.getCount() + 1;
+
+ int i = -1;
+ int cnt = 0;
+
+ while ((++i) < fieldsAmount) {
+ Object field;
+
+ try {
+ field = IA.getByIndex(i);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+
+ return;
+ }
+
+ XNamed named = UnoRuntime.queryInterface(XNamed.class,
+ field);
+ String name = named.getName();
+
+ log.println("**Field : '" + name + "' ... ");
+
+ if (!name.equals("Data")) {
+
+ XPropertySet props = UnoRuntime.queryInterface(
+ XPropertySet.class, field);
+
+ try {
+ switch (cnt % 5) {
+ case 0:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.COLUMN);
+ log.println(" Column");
+
+ break;
+
+ case 1:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.ROW);
+ log.println(" Row");
+
+ break;
+
+ case 2:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.DATA);
+ log.println(" Data");
+
+ break;
+
+ case 3:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.HIDDEN);
+ log.println(" Hidden");
+
+ break;
+
+ case 4:
+ props.setPropertyValue("Orientation",
+ DataPilotFieldOrientation.PAGE);
+ log.println(" Page");
+
+ break;
+ }
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ e.printStackTrace(log);
+
+ return;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ e.printStackTrace(log);
+
+ return;
+ }
+
+ if ((++cnt) > 4) {
+ break;
+ }
+ } else {
+ return;
+ }
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java b/qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java
new file mode 100644
index 000000000..65630bd00
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java
@@ -0,0 +1,200 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XCellRangeAddressable;
+import com.sun.star.sheet.XCellRangeReferrer;
+import com.sun.star.sheet.XDatabaseRanges;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XImportable;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.DatabaseRange</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::sheet::DatabaseRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::sheet::XDatabaseRange</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeReferrer</code></li>
+* </ul>
+* @see com.sun.star.sheet.DatabaseRange
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.sheet.DatabaseRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.sheet.XDatabaseRange
+* @see com.sun.star.sheet.XCellRangeReferrer
+* @see ifc.container._XNamed
+* @see ifc.sheet._DatabaseRange
+* @see ifc.beans._XPropertySet
+* @see ifc.sheet._XDatabaseRange
+* @see ifc.sheet._XCellRangeReferrer
+*/
+public class ScDatabaseRangeObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a Spreadsheet document");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of database ranges in the document.
+ * If the database range with name <code>'dbRange'</code> exists
+ * in the collection then removes it from the collection.
+ * Creates new database range and adds it to the collection with the name
+ * <code>'dbRange'</code>.The database range that was added to the collection
+ * is the instance of the service <code>com.sun.star.sheet.DatabaseRange</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'DATAAREA'</code> for
+ * {@link ifc.sheet._XCellRangeReferrer}(of type
+ * <code>CellRangeAddress</code>)</li>
+ * <li> <code>'XCELLRANGE'</code> (of type <code>XCellRange</code>):
+ * cell range of the spreadsheet with database range</li>
+ * </ul>
+ * @see com.sun.star.sheet.DatabaseRange
+ * @see com.sun.star.table.CellRangeAddress
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("Creating a test environment");
+
+ log.println("Getting test object ");
+
+ XPropertySet docProps = UnoRuntime.queryInterface(
+ XPropertySet.class, xSheetDoc);
+
+ XSpreadsheets sheets = xSheetDoc.getSheets();
+ String[] names = sheets.getElementNames();
+ XDatabaseRanges dbRanges = null;
+ XImportable xImp = null;
+
+ Object sheet = sheets.getByName(names[0]);
+ xImp = UnoRuntime.queryInterface(XImportable.class,
+ sheet);
+ dbRanges = (XDatabaseRanges) AnyConverter.toObject(
+ new Type(XDatabaseRanges.class),
+ docProps.getPropertyValue("DatabaseRanges"));
+ _doImport(xImp);
+
+ String dbName = "dbRange";
+
+ if (dbRanges.hasByName(dbName)) {
+ dbRanges.removeByName(dbName);
+ }
+
+
+ CellRangeAddress aRange = null;
+
+ XNameAccess dbrNA = UnoRuntime.queryInterface(
+ XNameAccess.class, dbRanges);
+ // we need to add it
+ dbRanges.addNewByName(dbName,new CellRangeAddress((short)0, 0, 0, 0, 5));
+
+ UnoRuntime.queryInterface(XNamed.class,
+ dbrNA.getByName(
+ dbName));
+
+ XCellRangeReferrer aReferrer = UnoRuntime.queryInterface(
+ XCellRangeReferrer.class,
+ dbrNA.getByName(dbName));
+ XCellRangeAddressable aRangeA = UnoRuntime.queryInterface(
+ XCellRangeAddressable.class,
+ aReferrer.getReferredCells());
+ aRange = aRangeA.getRangeAddress();
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),
+ dbrNA.getByName(dbName));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ // Other parameters required for interface tests
+ tEnv.addObjRelation("DATAAREA", aRange);
+
+ XCellRange xCellRange = UnoRuntime.queryInterface(
+ XCellRange.class, sheets.getByName(names[0]));
+
+ tEnv.addObjRelation("XCELLRANGE", xCellRange);
+
+ return tEnv;
+ }
+
+ public void _doImport(XImportable imp) {
+ PropertyValue[] descriptor = imp.createImportDescriptor(false);
+
+ log.print("Setting the ImportDescriptor (Bibliograpy, SQL, select Identifier from biblio) -- ");
+ descriptor[0].Value = "Bibliography";
+ descriptor[1].Value = com.sun.star.sheet.DataImportMode.SQL;
+ descriptor[2].Value = "select Identifier from biblio";
+ log.println("done");
+
+ log.print("Importing data (Bibliograpy, Table, biblio) -- ");
+ imp.doImport(descriptor);
+ log.println("done");
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java b/qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java
new file mode 100644
index 000000000..1add5a952
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+
+public class ScDocumentConfiguration extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a sheetdocument");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+ DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ xSheetDoc);
+ Object oObj = docMSF.createInstance("com.sun.star.sheet.DocumentSettings");
+
+ log.println("Implementationname: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment((XInterface) oObj);
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java
new file mode 100644
index 000000000..f91682023
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java
@@ -0,0 +1,174 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XHeaderFooterContent;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.TextCursor</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XTextCursor</code></li>
+* <li> <code>com::sun::star::text::XWordCursor</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+* <li> <code>com::sun::star::beans::XPropertyState</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::text::XSentenceCursor</code></li>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::text::XParagraphCursor</code></li>
+* <li> <code>com::sun::star::document::XDocumentInsertable</code></li>
+* <li> <code>com::sun::star::util::XSortable</code></li>
+* <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+* </ul>
+* @see com.sun.star.text.TextCursor
+* @see com.sun.star.text.XTextCursor
+* @see com.sun.star.text.XWordCursor
+* @see com.sun.star.style.CharacterPropertiesComplex
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XContentEnumerationAccess
+* @see com.sun.star.beans.XPropertyState
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.text.XSentenceCursor
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.text.XParagraphCursor
+* @see com.sun.star.document.XDocumentInsertable
+* @see com.sun.star.util.XSortable
+* @see com.sun.star.style.CharacterPropertiesAsian
+* @see ifc.text._XTextCursor
+* @see ifc.text._XWordCursor
+* @see ifc.style._CharacterPropertiesComplex
+* @see ifc.text._XTextRange
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XContentEnumerationAccess
+* @see ifc.beans._XPropertyState
+* @see ifc.style._CharacterProperties
+* @see ifc.text._XSentenceCursor
+* @see ifc.style._ParagraphProperties
+* @see ifc.text._XParagraphCursor
+* @see ifc.document._XDocumentInsertable
+* @see ifc.util._XSortable
+* @see ifc.style._CharacterPropertiesAsian
+*/
+public class ScHeaderFooterTextCursor extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of style families available in the document
+ * using the interface <code>XStyleFamiliesSupplier</code>.
+ * Obtains default style from the style family <code>'PageStyles'</code>.
+ * Retrieves value of the property <code>'RightPageHeaderContent'</code>.
+ * Sets some string for the text which is printed in the center part of the
+ * header or footer using the interface <code>XHeaderFooterContent</code>
+ * and sets new value of the property <code>'RightPageHeaderContent'</code>.
+ * Creates text cursor for the text which is printed in the center part of
+ * the header or footer. This text cursor is the instance of the service
+ * <code>com.sun.star.text.TextCursor</code>.
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XPropertySet PropSet;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSpreadsheetDoc );
+
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Default"));
+
+ //get the property-set
+ PropSet = UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
+
+ XHeaderFooterContent RPHC = null;
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ RPHC = (XHeaderFooterContent) AnyConverter.toObject(
+ new Type(XHeaderFooterContent.class),
+ PropSet.getPropertyValue("RightPageHeaderContent"));
+
+ XText center = RPHC.getCenterText();
+ center.setString("CENTER");
+
+ PropSet.setPropertyValue("RightPageHeaderContent",RPHC);
+
+ // create testobject here
+ oObj = center.createTextCursor();
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // add relation for XTextRange
+ tEnv.addObjRelation("XTEXT",
+ UnoRuntime.queryInterface(XText.class,center));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class ScHeaderFooterTextCursor
diff --git a/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java
new file mode 100644
index 000000000..990d6183a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java
@@ -0,0 +1,219 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XHeaderFooterContent;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.Text</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XTextRangeMover</code></li>
+* <li> <code>com::sun::star::text::XSimpleText</code></li>
+* <li> <code>com::sun::star::text::XTextRange</code></li>
+* <li> <code>com::sun::star::text::XRelativeTextContentInsert</code></li>
+* <li> <code>com::sun::star::text::XTextRangeCompare</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+* <li> <code>com::sun::star::text::XText</code></li>
+* </ul>
+* @see com.sun.star.text.Text
+* @see com.sun.star.text.XTextRangeMover
+* @see com.sun.star.text.XSimpleText
+* @see com.sun.star.text.XTextRange
+* @see com.sun.star.text.XRelativeTextContentInsert
+* @see com.sun.star.text.XTextRangeCompare
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XEnumerationAccess
+* @see com.sun.star.text.XText
+* @see ifc.text._XTextRangeMover
+* @see ifc.text._XSimpleText
+* @see ifc.text._XTextRange
+* @see ifc.text._XRelativeTextContentInsert
+* @see ifc.text._XTextRangeCompare
+* @see ifc.container._XElementAccess
+* @see ifc.container._XEnumerationAccess
+* @see ifc.text._XText
+*/
+public class ScHeaderFooterTextObj extends TestCase {
+
+ private XSpreadsheetDocument xSpreadsheetDoc;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface (XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of style families available in the document
+ * using the interface <code>XStyleFamiliesSupplier</code>.
+ * Obtains default style from the style family <code>'PageStyles'</code>.
+ * Retrieves value of the property <code>'RightPageHeaderContent'</code>.
+ * Creates text cursor for the text which is printed in the center part of
+ * the header or footer using the interface <code>XHeaderFooterContent</code>.
+ * Insert some lines using the created cursor and sets new value of the
+ * property <code>'RightPageHeaderContent'</code>. The value of the property
+ * <code>'RightPageHeaderContent'</code> is the instance of the service
+ * <code>com.sun.star.text.Text</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'RangeForMove'</code> for
+ * {@link ifc.text._XTextRangeMover} (the range to be moved)</li>
+ * <li> <code>'XTextRange'</code> for
+ * {@link ifc.text._XTextRangeMover} (the range that includes moving
+ * range)</li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert}(the instance creator
+ * which can create instances of some text content service)</li>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert}(the instance creator
+ * which can create instances of <code>com.sun.star.text.Paragraph</code>
+ * service)</li>
+ * </ul>
+ * @see com.sun.star.text.Text
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XPropertySet PropSet;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class,
+ xSpreadsheetDoc );
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Default"));
+
+ //get the property-set
+ PropSet = UnoRuntime.queryInterface(XPropertySet.class, StdStyle);
+
+ XHeaderFooterContent RPHC = null;
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ RPHC = (XHeaderFooterContent) AnyConverter.toObject(
+ new Type(XHeaderFooterContent.class),
+ PropSet.getPropertyValue("RightPageHeaderContent"));
+
+ XText center = RPHC.getCenterText();
+
+ XTextRange text_to_move = null;
+
+ log.println( "inserting some lines" );
+ XTextCursor oCursor = center.createTextCursor();
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ center.insertString(oCursor,"Paragraph 1", false);
+ center.insertString(oCursor,": ScHeaderFooterTextObj", false);
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertString(oCursor, "THE QUICK BROWN FOX JUMPS OVER THE" +
+ " LAZY DOG: ScHeaderFooterTextObj", false );
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ oCursor.setString("TextForMove");
+ text_to_move = oCursor;
+
+ XTextCursor oCursor1 = center.createTextCursorByRange(center.getEnd());
+ center.insertString(oCursor1,"Paragraph 2", false);
+ center.insertString(oCursor1,": ScHeaderFooterTextObj", false);
+ center.insertControlCharacter(
+ oCursor1, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertString( oCursor1, "THE QUICK BROWN FOX JUMPS OVER THE" +
+ " LAZY DOG: ScHeaderFooterTextObj", false);
+ center.insertControlCharacter(
+ oCursor1, ControlCharacter.PARAGRAPH_BREAK, false );
+ center.insertControlCharacter(
+ oCursor1, ControlCharacter.LINE_BREAK, false );
+
+ PropSet.setPropertyValue("RightPageHeaderContent", RPHC);
+
+ // create testobject here
+ oObj = center;
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ DefaultDsc tDsc = new DefaultDsc(
+ "com.sun.star.text.XTextContent","com.sun.star.text.TextField.Time");
+
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation(
+ "XTEXTINFO", new InstCreator( xSpreadsheetDoc, tDsc ) );
+
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation( "PARA", new InstCreator(xSpreadsheetDoc, pDsc) );
+
+ log.println("adding TextRange for XTextRangeMover" );
+ tEnv.addObjRelation("RangeForMove", text_to_move);
+ tEnv.addObjRelation("XTextRange", RPHC.getCenterText());
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+} // finish class ScHeaderFooterTextObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScModelObj.java b/qadevOOo/tests/java/mod/_sc/ScModelObj.java
new file mode 100644
index 000000000..e4a89b971
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScModelObj.java
@@ -0,0 +1,209 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XSelectionSupplier;
+import ifc.view._XPrintJobBroadcaster;
+import java.io.File;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SpreadsheetDocument</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::sheet::XSpreadsheetDocument</code></li>
+* <li> <code>com::sun::star::sheet::SpreadsheetDocumentSettings</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::frame::XModel</code></li>
+* <li> <code>com::sun::star::sheet::SpreadsheetDocument</code></li>
+* <li> <code>com::sun::star::util::XNumberFormatsSupplier</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.sheet.SpreadsheetDocument
+* @see com.sun.star.sheet.XSpreadsheetDocument
+* @see com.sun.star.sheet.SpreadsheetDocumentSettings
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.frame.XModel
+* @see com.sun.star.sheet.SpreadsheetDocument
+* @see com.sun.star.util.XNumberFormatsSupplier
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.sheet._XSpreadsheetDocument
+* @see ifc.sheet._SpreadsheetDocumentSettings
+* @see ifc.lang._XComponent
+* @see ifc.frame._XModel
+* @see ifc.sheet._SpreadsheetDocument
+* @see ifc.util._XNumberFormatsSupplier
+* @see ifc.beans._XPropertySet
+*/
+public class ScModelObj extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc;
+ private XSpreadsheetDocument xSecondsheetDoc;
+
+ /**
+ * Disposes Spreadsheet documents.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+
+ oComp = UnoRuntime.queryInterface(XComponent.class,
+ xSecondsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Disposes the spreadsheet documents if they were created already.
+ * Creates two spreadsheet documents. Retrieves the current controller for
+ * each of them. Obtains the collection of spreadsheets, takes one of them
+ * and takes some cell from the spreadsheet. The created documents are the instances
+ * of the service <code>com.sun.star.sheet.SpreadsheetDocument</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SELSUPP'</code> for
+ * {@link ifc.frame._XModel}( the interface
+ * <code>XSelectionSupplier</code> that was queried from the current
+ * controller of the spreadsheet)</li>
+ * <li> <code>'TOSELECT'</code> for
+ * {@link ifc.frame._XModel}( the cell that was retrieved from the
+ * spreadsheet)</li>
+ * <li> <code>'CONT2'</code> for
+ * {@link ifc.frame._XModel}( the current controller of the second
+ * spreadsheet)</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ // creation of the testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ if (xSpreadsheetDoc != null) {
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ if (xSecondsheetDoc != null) {
+ XComponent oComp = UnoRuntime.queryInterface(
+ XComponent.class, xSecondsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ log.println("creating two spreadsheet documents");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ xSecondsheetDoc = SOF.createCalcDoc(null);
+
+ XModel model1 = UnoRuntime.queryInterface(XModel.class,
+ xSpreadsheetDoc);
+ XModel model2 = UnoRuntime.queryInterface(XModel.class,
+ xSecondsheetDoc);
+ XInterface oObj = model1;
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XController cont1 = model1.getCurrentController();
+ XController cont2 = model2.getCurrentController();
+ cont1.getFrame().setName("cont1");
+ cont2.getFrame().setName("cont2");
+
+ XSelectionSupplier sel = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, cont1);
+
+ XCell toSel = null;
+ XCell[] xCalculatableCells = null;
+ log.println("Getting spreadsheet");
+
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets();
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(
+ XIndexAccess.class, oSheets);
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexSheets.getByIndex(0));
+
+ log.println("Getting a cell from sheet");
+ toSel = oSheet.getCellByPosition(2, 3);
+ // create a simple formula for XCalculatable
+ oSheet.getCellByPosition(4, 5).setValue(15);
+ oSheet.getCellByPosition(5, 5).setValue(10);
+ oSheet.getCellByPosition(6, 5).setFormula("= E6 * F6");
+ xCalculatableCells = new XCell[]{
+ oSheet.getCellByPosition(4, 5),
+ oSheet.getCellByPosition(5, 5),
+ oSheet.getCellByPosition(6, 5)
+ };
+
+ // Make sure there are at least two sheets:
+ oSheets.insertNewByName("Some Sheet", (short) 1);
+
+ log.println("Adding SelectionSupplier and Shape to select for XModel");
+ tEnv.addObjRelation("SELSUPP", sel);
+ tEnv.addObjRelation("TOSELECT", toSel);
+
+ log.println("Adding cells for XCalculatable");
+ tEnv.addObjRelation("XCalculatable.Cells", xCalculatableCells);
+ log.println("adding Controller as ObjRelation for XModel");
+ tEnv.addObjRelation("CONT2", cont2);
+
+ // create object relation for XPrintJobBroadcaster
+ String fileName = utils.getOfficeTempDirSys(Param.getMSF())+"printfile.prt" ;
+ File f = new File(fileName);
+ if (f.exists()) {
+ boolean bDeleteOk = f.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+ _XPrintJobBroadcaster.MyPrintJobListener listener = new _XPrintJobBroadcaster.MyPrintJobListener(oObj, fileName);
+ tEnv.addObjRelation("XPrintJobBroadcaster.XPrintJobListener", listener);
+
+ return tEnv;
+ }
+
+} // finish class ScModelObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScShapeObj.java b/qadevOOo/tests/java/mod/_sc/ScShapeObj.java
new file mode 100644
index 000000000..335f2f848
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScShapeObj.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ScShapeObj extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a sheetdoc" );
+ xSheetDoc = UnoRuntime.queryInterface(XComponent.class, SOF.createCalcDoc(null));
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.drawing.EllipseShape</code> as tested component
+ * and adds it to the document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Style1', 'Style2'</code> for
+ * {@link ifc.drawing._Shape} :
+ * two values of 'Style' property. The first is taken
+ * from the shape tested, the second from another
+ * shape added to the draw page. </li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} :
+ * creator which can create instances of
+ * <code>com.sun.star.text.TextField.URL</code>
+ * service. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xSheetDoc,5000, 3500, 7500, 5000,"Rectangle");
+ DrawTools.getShapes(DrawTools.getDrawPage(xSheetDoc,0)).add(oShape);
+ oObj = oShape ;
+
+ for (int i=0; i < 10; i++) {
+ DrawTools.getShapes(DrawTools.getDrawPage(xSheetDoc,0)).add(
+ SOF.createShape(xSheetDoc,
+ 5000, 3500, 7510 + 10 * i, 5010 + 10 * i, "Rectangle"));
+ }
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oShape );
+
+ log.println("Implementation name: "+util.utils.getImplName(oObj));
+ tEnv.addObjRelation("DOCUMENT",xSheetDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ScShapeObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java b/qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java
new file mode 100644
index 000000000..5e30fa9e5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSheetLinkable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.SheetLink</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::util::XRefreshable</code></li>
+* <li> <code>com::sun::star::sheet::SheetLink</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> ScSheetLinksObj.sdc </b> : for creating link </li>
+* </ul> <p>
+* @see com.sun.star.sheet.SheetLink
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.util.XRefreshable
+* @see com.sun.star.sheet.SheetLink
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.container._XNamed
+* @see ifc.util._XRefreshable
+* @see ifc.sheet._SheetLink
+* @see ifc.beans._XPropertySet
+*/
+public class ScSheetLinkObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Links the sheet to another sheet in another
+ * document using the interface <code>XSheetLinkable</code>. Obtains the
+ * value of the property <code>'SheetLinks'</code> that is the collection of
+ * sheet links. Retrieves from the collection one of the sheet link that
+ * is the instance of the service <code>com.sun.star.sheet.SheetLink</code>.
+ * @see com.sun.star.sheet.SheetLink
+ * @see com.sun.star.sheet.XSheetLinkable
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+ XSpreadsheet oSheet = null;
+
+ log.println("Getting test object ") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ XSheetLinkable SL = UnoRuntime.queryInterface(XSheetLinkable.class, oSheet);
+
+ // creating link. Doesn't matter that it refers to unexistent object.
+ // this is for proper work of XAccess tests.
+ String sURL = utils.getFullTestDocName("ScSheetLinksObj.ods");
+ SL.link(sURL, "Sheet1", "", "", com.sun.star.sheet.SheetLinkMode.VALUE);
+
+ // Getting links.
+ XPropertySet docProps = UnoRuntime.queryInterface(XPropertySet.class, xSheetDoc);
+ Object oLinks = docProps.getPropertyValue("SheetLinks");
+
+ XNameAccess links = UnoRuntime.queryInterface(XNameAccess.class, oLinks);
+
+ String[] names = links.getElementNames();
+
+ oObj = (XInterface)AnyConverter.toObject(
+ new Type(XInterface.class),links.getByName(names[0]));
+
+ log.println("Creating object - " +
+ ((oObj == null) ? "FAILED" : "OK"));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sc/ScStyleObj.java b/qadevOOo/tests/java/mod/_sc/ScStyleObj.java
new file mode 100644
index 000000000..8705c6d7d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScStyleObj.java
@@ -0,0 +1,193 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.style.Style</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::style::Style</code></li>
+* <li> <code>com::sun::star::style::XStyle</code></li>
+* </ul>
+* @see com.sun.star.style.Style
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.style.Style
+* @see com.sun.star.style.XStyle
+* @see ifc.container._XNamed
+* @see ifc.style._Style
+* @see ifc.style._XStyle
+*/
+public class ScStyleObj extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a Spreadsheet document" );
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc);
+ util.DesktopTools.closeDoc(oComp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of style families from the document
+ * using the interface <code>XStyleFamiliesSupplier</code>.
+ * Obtains style family with index 0 from the collection and obtains
+ * style with index 0 from this style family. Creates the instance of the
+ * service <code>com.sun.star.style.CellStyle</code>. Inserts the created
+ * style to the obtained style family. Retrieves a collection of spreadsheets
+ * from the document and takes one of them. Gets a cell from the spreadsheet
+ * and sets the value of property <code>'CellStyle'</code> to the created
+ * style. The created style is the instance of the service
+ * <code>com.sun.star.style.Style</code> also.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PoolStyle'</code> for
+ * {@link ifc.style._XStyle}(the style with index 0 that was obtained
+ * from the collection)</li>
+ * </ul>
+ * @see com.sun.star.style.CellStyle
+ * @see com.sun.star.style.Style
+ * @see com.sun.star.style.XStyleFamiliesSupplier
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+
+ // creation of the testobject here
+ // first we write what we are intend to do to log file
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oStyleFamiliesSupplier = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class, xSpreadsheetDoc);
+ XNameAccess oStyleFamilies = oStyleFamiliesSupplier.getStyleFamilies();
+ XIndexAccess oStyleFamiliesIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, oStyleFamilies);
+ XNameAccess oStyleFamilyNameAccess = null;
+ XStyle oStyle = null;
+ oStyleFamilyNameAccess = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),
+ oStyleFamiliesIndexAccess.getByIndex(0));
+
+ XIndexAccess oStyleFamilyIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class,
+ oStyleFamilyNameAccess);
+ oStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oStyleFamilyIndexAccess.getByIndex(0));
+
+ log.println("Creating a user-defined style");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, xSpreadsheetDoc);
+
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.CellStyle");
+ XStyle oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+ XNameContainer oStyleFamilyNameContainer = UnoRuntime.
+ queryInterface(XNameContainer.class, oStyleFamilyNameAccess);
+
+ if (oStyleFamilyNameContainer.hasByName("My Style")) {
+ oStyleFamilyNameContainer.removeByName("My Style");
+ }
+
+ oStyleFamilyNameContainer.insertByName("My Style", oMyStyle);
+
+
+ //using the style
+ log.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSpreadsheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+
+ XCell aCell = null;
+ XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+ log.println("Getting a cell from sheet") ;
+ aCell = oSheet.getCellByPosition(2,3) ;
+
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, aCell);
+
+ xProp.setPropertyValue("CellStyle", oMyStyle.getName());
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment(oMyStyle);
+
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ tEnv.addObjRelation("PropertyNames", getPropertyNames
+ (UnoRuntime.queryInterface
+ (XPropertySet.class, oMyStyle)));
+
+ return tEnv;
+ }
+
+ public String[] getPropertyNames(XPropertySet props) {
+ Property[] the_props = props.getPropertySetInfo().getProperties();
+ ArrayList<String> names = new ArrayList<String>() ;
+
+ for (int i=0;i<the_props.length;i++) {
+ boolean isWritable =
+ ((the_props[i].Attributes & PropertyAttribute.READONLY) == 0);
+ if (isWritable) {
+ names.add(the_props[i].Name);
+ }
+ }
+ return names.toArray(new String[names.size()]) ;
+ }
+} // finish class ScStyleObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScTabViewObj.java b/qadevOOo/tests/java/mod/_sc/ScTabViewObj.java
new file mode 100644
index 000000000..a00b2724d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScTabViewObj.java
@@ -0,0 +1,233 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.form.XForm;
+import com.sun.star.lang.WrappedTargetException;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XCellRangeAddressable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.sheet.SpreadsheetView</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::sheet::XViewSplitable</code></li>
+ * <li> <code>com::sun::star::sheet::XViewFreezable</code></li>
+ * <li> <code>com::sun::star::sheet::SpreadsheetViewSettings</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::sheet::XSpreadsheetView</code></li>
+ * <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+ * </ul>
+ * @see com.sun.star.sheet.XViewSplitable
+ * @see com.sun.star.sheet.XViewFreezable
+ * @see com.sun.star.sheet.SpreadsheetViewSettings
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.sheet.XSpreadsheetView
+ * @see com.sun.star.view.XSelectionSupplier
+ * @see ifc.sheet._XViewSplitable
+ * @see ifc.sheet._XViewFreezable
+ * @see ifc.sheet._SpreadsheetViewSettings
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.sheet._XSpreadsheetView
+ * @see ifc.view._XSelectionSupplier
+ */
+public class ScTabViewObj extends TestCase {
+ private XSpreadsheetDocument xSpreadsheetDoc;
+ private XSpreadsheetDocument xSpreadsheetDoc2;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ public void initialize( TestParameters Param, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println("creating two spreadsheet documents");
+ xSpreadsheetDoc = SOF.createCalcDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xSpreadsheetDoc2 = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xSheetDoc " );
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc) ;
+ util.DesktopTools.closeDoc(oComp);
+ XComponent oComp2 = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc2) ;
+ util.DesktopTools.closeDoc(oComp2);
+ }
+
+ /*
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the current controller of the spreadsheet document using the
+ * interface <code>XModel</code>. The controller is the instance of the
+ * service <code>com.sun.star.sheet.SpreadsheetView</code>. Retrieves
+ * a collection of spreadsheets from the document and takes one of them.
+ * Fills two cells in the spreadsheet.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Sheet'</code> for
+ * {@link ifc.sheet._XSpreadsheetView}(the retrieved spreadsheet)</li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.sheet.SpreadsheetView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XDrawPage oDrawPage = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XModel aSecondModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc2);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ log.println("getting sheets");
+ XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets();
+
+ log.println("getting a sheet");
+ XSpreadsheet oSheet = null;
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class), oIndexAccess.getByIndex(1));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XDispatchProvider.URL", ".uno:Copy") ;
+
+ log.println("adding 'Sheet' as ObjRelation");
+ tEnv.addObjRelation("Sheet", oSheet);
+ tEnv.addObjRelation("Frame",aModel.getCurrentController().getFrame());
+ tEnv.addObjRelation("SecondModel",aSecondModel);
+ tEnv.addObjRelation("FirstModel",aModel);
+
+ //Relation for XControlAccess
+ tEnv.addObjRelation("DOCUMENT", UnoRuntime.queryInterface(XComponent.class,xSpreadsheetDoc));
+ tEnv.addObjRelation("XControlAccess.isSheet", Boolean.TRUE);
+ //Relations for XSelectionSupplier
+ XCell cell_1 = null;
+ XCell cell_2 = null;
+ Object cellRange = null;
+ cellRange = oSheet.getCellRangeByPosition(0, 0, 3, 3);
+ cell_1 = oSheet.getCellByPosition(5,5);
+ cell_2 = oSheet.getCellByPosition(7,7);
+ cell_2.setValue(17.5);
+ cell_1.setValue(5.5);
+
+ Object[] selections = {oSheet, cellRange, cell_1, cell_2};
+ tEnv.addObjRelation("Selections", selections);
+
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XCellRangeAddressable adr1 = UnoRuntime.queryInterface(XCellRangeAddressable.class, o1);
+ XCellRangeAddressable adr2 = UnoRuntime.queryInterface(XCellRangeAddressable.class, o2);
+ if (adr1 == null || adr2 == null) return -1;
+ CellRangeAddress range1 = adr1.getRangeAddress();
+ CellRangeAddress range2 = adr2.getRangeAddress();
+ return ValueComparer.equalValue(range1, range2) ? 0 : 1 ;
+ }});
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ // XForm for com.sun.star.view.XFormLayerAccess
+
+ XForm myForm = null;
+ String kindOfControl="CommandButton";
+ XShape aShape = null;
+ log.println("adding control shape '" + kindOfControl + "'");
+ XComponent oComp = UnoRuntime.queryInterface(XComponent.class, xSpreadsheetDoc) ;
+
+ aShape = FormTools.createControlShape(oComp, 3000, 4500, 15000, 10000, kindOfControl);
+
+ log.println("adding relation for com.sun.star.view.XFormLayerAccess: XForm");
+ try {
+ log.println( "getting Drawpages" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class,xSpreadsheetDoc);
+ XDrawPages oDP = oDPS.getDrawPages();
+ oDP.insertNewByIndex(1);
+ oDP.insertNewByIndex(2);
+ oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDP.getByIndex(0));
+ if (oDrawPage == null)
+ log.println("ERROR: could not get DrawPage: null");
+
+ oDrawPage.add(aShape);
+ log.println("getting XForm");
+ XNameContainer xForm = FormTools.getForms(oDrawPage);
+ try {
+ myForm = (XForm) AnyConverter.toObject(new Type(XForm.class),xForm.getByName("Standard"));
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not XForm 'Standard': " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not XForm 'Standard': " + ex.toString());
+ } catch (NoSuchElementException ex) {
+ log.println("ERROR: could not XForm 'Standard': " + ex.toString());
+ }
+ if (myForm == null)
+ log.println("ERROR: could not get XForm: null");
+ tEnv.addObjRelation("XFormLayerAccess.XForm", myForm);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ }
+ return tEnv;
+ }
+
+} // finish class ScTabViewObj
diff --git a/qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java b/qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java
new file mode 100644
index 000000000..436901258
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java
@@ -0,0 +1,384 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.sheet.XScenariosSupplier;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+import ifc.sheet._XCellRangesQuery;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.sheet.Spreadsheet</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+* <li> <code>com::sun::star::table::XTableChartsSupplier</code></li>
+* <li> <code>com::sun::star::sheet::XSpreadsheet</code></li>
+* <li> <code>com::sun::star::table::CellProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetAnnotationsSupplier</code></li>
+* <li> <code>com::sun::star::table::XCellRange</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeAddressable</code></li>
+* <li> <code>com::sun::star::sheet::XDataPilotTablesSupplier</code></li>
+* <li> <code>com::sun::star::sheet::Spreadsheet</code></li>
+* <li> <code>com::sun::star::sheet::XCellRangeMovement</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::sheet::XSheetOperation</code></li>
+* <li> <code>com::sun::star::sheet::XScenariosSupplier</code></li>
+* <li> <code>com::sun::star::sheet::XSheetPageBreak</code></li>
+* <li> <code>com::sun::star::sheet::XArrayFormulaRange</code></li>
+* <li> <code>com::sun::star::sheet::XSheetCellRange</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::sheet::SheetCellRange</code></li>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::util::XMergeable</code></li>
+* <li> <code>com::sun::star::table::XColumnRowRange</code></li>
+* </ul>
+* @see com.sun.star.style.ParagraphProperties
+* @see com.sun.star.table.XTableChartsSupplier
+* @see com.sun.star.sheet.XSpreadsheet
+* @see com.sun.star.table.CellProperties
+* @see com.sun.star.sheet.XSheetAnnotationsSupplier
+* @see com.sun.star.table.XCellRange
+* @see com.sun.star.sheet.XCellRangeAddressable
+* @see com.sun.star.sheet.XDataPilotTablesSupplier
+* @see com.sun.star.sheet.Spreadsheet
+* @see com.sun.star.sheet.XCellRangeMovement
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.sheet.XSheetOperation
+* @see com.sun.star.sheet.XScenariosSupplier
+* @see com.sun.star.sheet.XSheetPageBreak
+* @see com.sun.star.sheet.XArrayFormulaRange
+* @see com.sun.star.sheet.XSheetCellRange
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.sheet.SheetCellRange
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.util.XMergeable
+* @see com.sun.star.table.XColumnRowRange
+* @see ifc.style._ParagraphProperties
+* @see ifc.table._XTableChartsSupplier
+* @see ifc.sheet._XSpreadsheet
+* @see ifc.table._CellProperties
+* @see ifc.sheet._XSheetAnnotationsSupplier
+* @see ifc.table._XCellRange
+* @see ifc.sheet._XCellRangeAddressable
+* @see ifc.sheet._XDataPilotTablesSupplier
+* @see ifc.sheet._Spreadsheet
+* @see ifc.sheet._XCellRangeMovement
+* @see ifc.style._CharacterProperties
+* @see ifc.sheet._XSheetOperation
+* @see ifc.sheet._XScenariosSupplier
+* @see ifc.sheet._XSheetPageBreak
+* @see ifc.sheet._XArrayFormulaRange
+* @see ifc.sheet._XSheetCellRange
+* @see ifc.container._XNamed
+* @see ifc.sheet._SheetCellRange
+* @see ifc.chart._XChartData
+* @see ifc.beans._XPropertySet
+* @see ifc.util._XMergeable
+* @see ifc.table._XColumnRowRange
+*/
+public class ScTableSheetObj extends TestCase {
+ private XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a sheetdocument");
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+
+ try {
+ XCloseable oCloser = UnoRuntime.queryInterface(
+ XCloseable.class, xSheetDoc);
+ oCloser.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Document already disposed");
+ } catch (NullPointerException e) {
+ log.println("Couldn't get XCloseable");
+ }
+
+ util.utils.pause(500);
+
+ log.println("... Done");
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from the document and takes one of
+ * them. Fills some cell in the spreadsheet. The retrieved spreadsheet is the
+ * instance of the service <code>com.sun.star.sheet.Spreadsheet</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'noArray'</code> for
+ * {@link ifc.sheet._XArrayFormulaRange}(to avoid the test of
+ * the interface <code>XArrayFormulaRange</code>)</li>
+ * </ul>
+ * @see com.sun.star.sheet.XArrayFormulaRange
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ log.println("getting sheets");
+
+ XSpreadsheets xSpreadsheets = xSheetDoc.getSheets();
+
+ log.println("getting a sheet");
+
+ XSpreadsheet oSheet = null;
+ XIndexAccess oIndexAccess = UnoRuntime.queryInterface(
+ XIndexAccess.class, xSpreadsheets);
+
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),
+ oIndexAccess.getByIndex(0));
+
+ log.println("filling some cells");
+
+ oSheet.getCellByPosition(5, 5).setValue(15);
+ oSheet.getCellByPosition(1, 4).setValue(10);
+ oSheet.getCellByPosition(2, 0).setValue(-5.15);
+ oSheet.getCellByPosition(8, 8).setFormula("= B5 + C1");
+ // fill cells for XSheetOtline::autooutline
+ oSheet.getCellByPosition(6, 6).setValue(3);
+ oSheet.getCellByPosition(7, 6).setValue(3);
+ oSheet.getCellByPosition(8, 6).setFormula("= SUM(G7:H7)");
+ oSheet.getCellByPosition(9, 6).setFormula("= G7*I7");
+
+ oObj = UnoRuntime.queryInterface(XInterface.class, oSheet);
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ // set the address ranges of the cells (see values set above): for e.g. XSheetOutline test
+ tEnv.addObjRelation("CellRangeAddress",
+ new CellRangeAddress((short)0, 6, 6, 8, 8));
+ tEnv.addObjRelation("CellRangeSubAddress",
+ new CellRangeAddress((short)0, 6, 6, 7, 8));
+ // pick a cell with a formula for XSheetAuditing, a dependent cell and a precedent cell
+ tEnv.addObjRelation("XSheetAuditing.CellAddress", new CellAddress((short)0, 8, 6));
+ tEnv.addObjRelation("XSheetAuditing.PrecedentCellAddress", new CellAddress((short)0, 7, 6));
+ tEnv.addObjRelation("XSheetAuditing.DependentCellAddress", new CellAddress((short)0, 9, 6));
+
+ // add an existing sheet for linking
+ tEnv.addObjRelation("XSheetLinkable.LinkSheet", "ScSheetLinksObj.ods");
+
+ //adding Scenario and with that a ScenarioSheet-Relation for Scenario and XScenarioEnhanced
+ XScenariosSupplier scene = UnoRuntime.queryInterface(
+ XScenariosSupplier.class,
+ tEnv.getTestObject());
+ scene.getScenarios()
+ .addNewByName("Scenario",
+ new CellRangeAddress[] {
+ new CellRangeAddress((short) 0, 0, 0, 10, 10)
+ }, "Comment");
+
+ XSpreadsheet sSheet = null;
+
+ try {
+ sSheet = UnoRuntime.queryInterface(
+ XSpreadsheet.class,
+ xSpreadsheets.getByName("Scenario"));
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ log.println("Couldn't get Scenario");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't get Scenario");
+ }
+
+ tEnv.addObjRelation("ScenarioSheet", sSheet);
+
+ log.println("adding ObjRelation 'noArray' to avoid the test" +
+ " 'XArrayFormulaRange'");
+ tEnv.addObjRelation("noArray", "ScTableSheetObj");
+
+ XPropertySet PropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+ tEnv.addObjRelation("PropSet", PropSet);
+ tEnv.addObjRelation("SHEET", oSheet);
+
+ // add expected results for the XCellRangesQuery interface test
+ String[] expectedResults = new String[7];
+ expectedResults[_XCellRangesQuery.QUERYCOLUMNDIFFERENCES] = "Sheet1.B5;Sheet1.C1";
+ expectedResults[_XCellRangesQuery.QUERYCONTENTCELLS] = "Sheet1.B5;Sheet1.C1;Sheet1.F6";
+ expectedResults[_XCellRangesQuery.QUERYEMPTYCELLS] = "Sheet1.A1 ... Sheet1.B1 ... Sheet1.B6 ... Sheet1.C2 ... Sheet1.D1 ... Sheet1.F1 ... Sheet1.F7 ... Sheet1.G1";
+ expectedResults[_XCellRangesQuery.QUERYFORMULACELLS] = "Sheet1.I7:J7;Sheet1.I9";
+ expectedResults[_XCellRangesQuery.QUERYINTERSECTION] = "Sheet1.D4";
+ expectedResults[_XCellRangesQuery.QUERYROWDIFFERENCES] = "Sheet1.A5;Sheet1.C1";
+ expectedResults[_XCellRangesQuery.QUERYVISIBLECELLS] = "Sheet1.A2";
+ tEnv.addObjRelation("XCellRangesQuery.EXPECTEDRESULTS",
+ expectedResults);
+
+ // for XFormulaQuery interface test
+ try {
+ tEnv.addObjRelation("MAKEENTRYINCELL",
+ oSheet.getCellByPosition(15, 15));
+ tEnv.addObjRelation("RANGEINDICES", new int[] { 0, 0 });
+ tEnv.addObjRelation("EXPECTEDDEPENDENTVALUES",
+ new int[] { 0, 255, 0, 65535 });
+ tEnv.addObjRelation("EXPECTEDPRECEDENTVALUES",
+ new int[] { 0, 255, 0, 65535 });
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println(
+ "Cannot add the necessary object relation for XFormulaQuery test.");
+ }
+
+ // XSearchable interface test
+ try {
+ tEnv.addObjRelation("XSearchable.MAKEENTRYINCELL",
+ new XCell[] {
+ oSheet.getCellByPosition(15, 15),
+ oSheet.getCellByPosition(15, 16)
+ });
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ log.println(
+ "Cannot make required object relation 'XSearchable.MAKEENTRYINCELL'.");
+ }
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XCellRange oTable = oSheet;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ try {
+ oTable.getCellByPosition(0, 0).setValue(4);
+ oTable.getCellByPosition(0, 1).setFormula("b");
+ oTable.getCellByPosition(0, 2).setValue(3);
+ oTable.getCellByPosition(0, 3).setValue(23);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[4];
+
+ for (int i = 0; i < 4; i++) {
+ try {
+ XCell cell = oTable.getCellByPosition(0, i);
+ value[i] = cell.getFormula();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ out.println("Exception while checking sort");
+ }
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ out.println("Sorting ascending");
+
+ String[] rightVal = { "3", "4", "23", "b" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2], value[3] };
+ res = ValueComparer.equalValue(vals, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected 3, 4, 23, b");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ } else {
+ String[] rightVal = { "b", "23", "4", "3" };
+ res = ValueComparer.equalValue(value, rightVal);
+ out.println("Expected b, 23, 4, 3");
+ out.println("getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] + ", " +
+ value[3]);
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sc/XMLContentExporter.java b/qadevOOo/tests/java/mod/_sc/XMLContentExporter.java
new file mode 100644
index 000000000..098866ff0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLContentExporter.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLContentExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLContentExporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLContentExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. A cell in the sheet is set to some value. This made
+ * for checking if this value is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String CELL_TEXT = "XMLContentExporter";
+
+ ContentFilterChecker Filter = new ContentFilterChecker(log);
+
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLContentExporter",
+ new Object[] {arg} );
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ // Setting some string to a cell
+ XSpreadsheetDocument xSpreadsheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+ XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets();
+ XIndexAccess xSheetsIndexArray = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+ XSpreadsheet xSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),xSheetsIndexArray.getByIndex(0));
+ XCell xCell = xSheet.getCellByPosition(0, 0);
+ xCell.setFormula(CELL_TEXT);
+
+ log.println("fill sheet 1 with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc, 1, 1, 1, 5, 5);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag("office:document-content");
+ Filter.addTagEnclosed("office:body", "office:document-content");
+ Filter.addTagEnclosed("office:script", "office:document-content");
+ Filter.addTagEnclosed("table:table", "office:body");
+ Filter.addTagEnclosed("table:table-column", "table:table");
+ Filter.addTagEnclosed("table:table-row", "table:table");
+ Filter.addTagEnclosed("table:table-cell", "table:table-row");
+ Filter.addTagEnclosed("text:p", "table:table-cell");
+ Filter.addCharactersEnclosed(CELL_TEXT, "text:p");
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter);
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class ContentFilterChecker extends XMLTools.XMLTagsChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private ContentFilterChecker(PrintWriter log) {
+ super(log) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return checkTags();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLContentImporter.java b/qadevOOo/tests/java/mod/_sc/XMLContentImporter.java
new file mode 100644
index 000000000..5f3d65547
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLContentImporter.java
@@ -0,0 +1,180 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLContentImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLContentImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLContentImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only content tags including table
+ * with test table name.
+ * After import table name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLContentImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp);
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relations
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ final String impValue = "XMLContentImporter_test" ;
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-content",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table",
+ "office:class", "CDATA", "spreadsheet"
+ },
+ {"start", "office:body"},
+ {"start", "table:table",
+ "table:name", "CDATA", impValue},
+ {"end", "table:table"},
+ {"end", "office:body"},
+ {"end", "office:document-content"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ //save to log content before import
+ final PrintWriter fLog = log;
+ final XSpreadsheets xSheets = xSheetDoc.getSheets();
+
+ log.println("Sheets before importing :") ;
+ String[] names = xSheets.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ fLog.println("Sheet names :") ;
+ String[] snames = xSheets.getElementNames() ;
+ for (int i = 0; i < snames.length; i++) {
+ fLog.println(" " + snames[i]) ;
+ }
+ return xSheets.hasByName(impValue) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLExporter.java b/qadevOOo/tests/java/mod/_sc/XMLExporter.java
new file mode 100644
index 000000000..c9edb37ab
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLExporter.java
@@ -0,0 +1,199 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. Checking whether tags for table corresponding to some sheet
+ * is exported.<p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker Filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+ final String SHEET_NAME = "XMLExporter_SheetTestName";
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLExporter", new Object[] {arg} );
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ //set name of sheet
+ XSpreadsheetDocument xSpreadsheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+ XSpreadsheets xSpreadsheets = xSpreadsheetDoc.getSheets();
+ XIndexAccess xSheetsIndexArray = UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+ XSpreadsheet xSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),xSheetsIndexArray.getByIndex(0));
+ XNamed xSheetNamed = UnoRuntime.queryInterface(XNamed.class, xSheet);
+ xSheetNamed.setName(SHEET_NAME);
+
+ log.println("fill sheet with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheet, 3, 3, 50, 50);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag( new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:meta"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:settings"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:script"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:styles"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:body"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("table:table"),
+ new XMLTools.Tag("office:body") );
+ Filter.addTag(
+ new XMLTools.Tag("table:table", "table:name", SHEET_NAME) );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLImporter.java b/qadevOOo/tests/java/mod/_sc/XMLImporter.java
new file mode 100644
index 000000000..ff5e94063
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLImporter.java
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ XSpreadsheetDocument xSpreadsheetDoc = SOF.createCalcDoc( null );
+ xSheetDoc = UnoRuntime.queryInterface
+ (XComponent.class, xSpreadsheetDoc);
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported tags contain new value for table name.
+ * After import table name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impValue = "XMLImporter_test" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance("com.sun.star.comp.Calc.XMLImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(xSheetDoc);
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xSheetDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table",
+ "office:class", "CDATA", "spreadsheet"
+ },
+ {"start", "office:body"},
+ {"start", "table:table",
+ "table:name", "CDATA", impValue},
+ {"end", "table:table"},
+ {"end", "office:body"},
+ {"end", "office:document"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter fLog = log ;
+ XSpreadsheetDocument xSpreadsheetDoc = UnoRuntime.queryInterface(XSpreadsheetDocument.class, xSheetDoc);
+ final XSpreadsheets sheets = xSpreadsheetDoc.getSheets() ;
+ log.println("Sheets before importing :") ;
+ String[] names = sheets.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ fLog.println("Sheet names :") ;
+ String[] snames = sheets.getElementNames() ;
+ for (int i = 0; i < snames.length; i++) {
+ fLog.println(" " + snames[i]) ;
+ }
+
+ return sheets.hasByName(impValue) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java b/qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java
new file mode 100644
index 000000000..0f49662c1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java
@@ -0,0 +1,181 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLMetaExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLMetaExporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLMetaExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. A meta property 'Title' is set to some value. This made
+ * for checking if this value is successfully exported within
+ * the document meta information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ // Checking tags existence and changed property value
+ filter.addTag(new XMLTools.Tag ("office:document-meta"));
+ filter.addTag(new XMLTools.Tag ("office:meta"));
+ filter.addCharactersEnclosed("TestDocument",
+ new XMLTools.Tag ("dc:title"));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLMetaExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ // Obtaining and changing property values
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xSheetDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ xDocProps.setTitle("TestDocument");
+
+ log.println("fill sheet 1 with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc,1, 3, 3, 50, 50);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java b/qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java
new file mode 100644
index 000000000..b7e26d0bb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java
@@ -0,0 +1,171 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLMetaImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLMetaImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLMetaImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only meta tags including title tag
+ * with test title name.
+ * After import title name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impTitle = "XMLMetaImporter" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLMetaImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp) ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-meta" ,
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:meta", "CDATA", "http://openoffice.org/2000/meta",
+ "xmlns:dc", "CDATA", "http://purl.org/dc/elements/1.1/"},
+ {"start", "office:meta"} ,
+ {"start", "dc:title"},
+ {"chars", impTitle},
+ {"end", "dc:title"},
+ {"end", "office:meta"},
+ {"end", "office:document-meta"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xSheetDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String title = xDocProps.getTitle();
+ logF.println("Title returned = '" + title + "'") ;
+ return impTitle.equals(title) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java b/qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java
new file mode 100644
index 000000000..9386a233d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java
@@ -0,0 +1,182 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLSettingsExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLSettingsExporter extends TestCase {
+
+ static XComponent xSheetDoc;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLSettingsExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. Sets settings' property 'ShowGrid' to 'false', then checks
+ * it in the exported xml document.<p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ SettingsFilterChecker filter = new SettingsFilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), filter);
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLSettingsExporter",
+ new Object[] {arg} );
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ //set some settings
+ XModel xSheetModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+ XController xController = xSheetModel.getCurrentController();
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+ xPropSet.setPropertyValue("ShowGrid", "false");
+
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc, 0, 3, 3, 50, 50);
+
+ //Create and prepare filter
+ // adding tags which must be contained in XML output
+ filter.addTag(new XMLTools.Tag("office:document-settings") );
+ filter.addTagEnclosed(
+ new XMLTools.Tag("office:settings"),
+ new XMLTools.Tag("office:document-settings") );
+ filter.addCharactersEnclosed(
+ "false",
+ new XMLTools.Tag("config:config-item", "config:name", "ShowGrid") );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class SettingsFilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private SettingsFilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java b/qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java
new file mode 100644
index 000000000..fc83d3e3b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java
@@ -0,0 +1,199 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XImporter;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLSettingsImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLSettingsImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLSettingsImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only settings tags including tag
+ * with new number of iteration steps.
+ * After import 'IterationCount' property getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ final XPropertySet xPropSet ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLSettingsImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp) ;
+
+ XModel xSheetModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc);
+ XController xController = xSheetModel.getCurrentController();
+ xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-settings",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink",
+ "xmlns:config", "CDATA", "http://openoffice.org/2001/config"},
+ {"start", "office:settings"},
+ {"start", "config:config-item-set",
+ "config:name", "CDATA", "view-settings"},
+ {"start", "config:config-item-map-indexed",
+ "config:name", "CDATA", "Views"},
+ {"start", "config:config-item-map-entry"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ShowGrid",
+ "config:type", "CDATA", "boolean"},
+ {"chars", "false"},
+ {"end", "config:config-item"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ZoomType",
+ "config:type", "CDATA", "short"},
+ {"chars", "0"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ZoomValue",
+ "config:type", "CDATA", "int"},
+ {"chars", "124"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item-map-entry"},
+ {"end", "config:config-item-map-indexed"},
+ {"end", "config:config-item-set"},
+ {"end", "office:settings"},
+ {"end", "office:document-settings"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ Object gVal = xPropSet.getPropertyValue("ShowGrid") ;
+ logF.println("ShowGrid = " + gVal ) ;
+ return "false".equals(gVal) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java
new file mode 100644
index 000000000..36b1bc7e7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java
@@ -0,0 +1,185 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLStylesExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLStylesExporter extends TestCase {
+ static XComponent xSheetDoc;
+ protected int counter = 0;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a calc document" );
+ xSheetDoc = SOF.openDoc("scalc","_blank");
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xCalcDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLStylesExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The calc document is set as a source document for exporter
+ * created. New style 'NewStyle' added to style family "Cell Styles".
+ * This made for checking if this style is successfully exported within
+ * the document styles information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ String newName = "NewStyle" + counter++;
+ // Adding tags for checking existence of head tag and property value
+ filter.addTag(new XMLTools.Tag("office:document-styles"));
+ filter.addTag(new XMLTools.Tag("style:style","style:name", newName));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Calc.XMLStylesExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xSheetDoc);
+
+ // Obtaining and changing property values
+ XStyleFamiliesSupplier styleSup = UnoRuntime.queryInterface(
+ XStyleFamiliesSupplier.class, xSheetDoc);
+ XNameAccess StyleFamilies = styleSup.getStyleFamilies();
+ String[] styleFamiliesNames = StyleFamilies.getElementNames();
+ XNameContainer StyleFamilyName = (XNameContainer)
+ AnyConverter.toObject(new Type(XNameContainer.class),
+ StyleFamilies.getByName(styleFamiliesNames[0]));
+ Object SC = SOF.createInstance(
+ xSheetDoc, "com.sun.star.style.CellStyle");
+ XStyle StyleCell = UnoRuntime.queryInterface(XStyle.class,SC);
+ StyleFamilyName.insertByName(newName, StyleCell);
+
+ log.println("fill sheet 1 with content...");
+ util.CalcTools.fillCalcSheetWithContent(xSheetDoc, 0, 3, 3, 50, 100);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"scalc: StarOffice XML (Calc)"}));
+ tEnv.addObjRelation("SourceDocument",xSheetDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java
new file mode 100644
index 000000000..49cb036de
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java
@@ -0,0 +1,196 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sc;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLStylesImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLStylesImporter extends TestCase {
+ private XSpreadsheetDocument xSheetDoc;
+ static XComponent comp ;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a Spreadsheet document" );
+ xSheetDoc = SOF.createCalcDoc( null );
+ comp = UnoRuntime.queryInterface
+ (XComponent.class, xSheetDoc) ;
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ util.DesktopTools.closeDoc(comp);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLStylesImporter</code><p>
+ *
+ * The calc document is set as a target document for importer.
+ * Imported XML-data contains only style tags including tag
+ * with new style name.
+ * After import style names getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Calc.XMLStylesImporter") ;
+ XImporter imp = UnoRuntime.queryInterface
+ (XImporter.class, oInt) ;
+ imp.setTargetDocument(comp) ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ final String impStyleName = "XMLStylesImporter" ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-styles",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:style", "CDATA", "http://openoffice.org/2000/style",
+ "xmlns:fo", "CDATA", "http://www.w3.org/1999/XSL/Format",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table"},
+ {"start", "office:styles"},
+ {"start", "style:style",
+ "style:name", "CDATA", impStyleName,
+ "style:family", "CDATA", "table-cell",
+ "style:parent-style-name", "CDATA", "Default"},
+ { "start", "style:properties",
+ "fo:width", "CDATA", "12cm",
+ "fo:background-color", "CDATA", "light-grey"},
+ {"end", "style:properties"},
+ {"end", "style:style"},
+ {"end", "office:styles"},
+ {"end", "office:document-styles"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XNameAccess styles = null ;
+ try {
+ XStyleFamiliesSupplier sup = UnoRuntime.queryInterface
+ (XStyleFamiliesSupplier.class, xSheetDoc);
+ XNameAccess oStyleFamilies = sup.getStyleFamilies();
+ Object family = oStyleFamilies.getByName("CellStyles") ;
+ styles = UnoRuntime.queryInterface
+ (XNameAccess.class, family) ;
+ log.println("Styles before:") ;
+ String[] names = styles.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ }
+ final XNameAccess stylesF = styles ;
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ logF.println("Styles after:") ;
+ String[] names = stylesF.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ logF.println(" " + names[i]) ;
+ }
+ return stylesF.hasByName(impStyleName) ;
+ }
+ }) ;
+
+ return tEnv ;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sc/package.html b/qadevOOo/tests/java/mod/_sc/package.html
new file mode 100644
index 000000000..198d6b17d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sc/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'sc'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_sch/AccArea.java b/qadevOOo/tests/java/mod/_sch/AccArea.java
new file mode 100644
index 000000000..19cf04550
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccArea.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccArea extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccArea");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..8b3eb65c4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccAxis.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccAxis extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccAxis");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..b5ce67dfc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccDataPoint.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccDataPoint extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccDataPoint");
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..007ef7d58
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccDataSeries.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccDataSeries extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccDataSeries");
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..55593914c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccDiagram.java
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccDiagram extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccDiagram");
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..3d5426fab
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccFloor.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccFloor extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ log.println("Change Diagram to 3D");
+ XPropertySet ChartProps = UnoRuntime.queryInterface( XPropertySet.class, xChartDoc.getDiagram() );
+ ChartProps.setPropertyValue("Dim3D", Boolean.TRUE);
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccFloor");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..c0d6e6c20
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccGrid.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccGrid extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccGrid");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..5cda48c80
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccLegend.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccLegend extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccLegend");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..28635af5c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccLegendEntry.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccLegendEntry extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccLegendEntry");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..27486a00e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccTitle.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccTitle extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccTitle");
+
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..fe3f0388e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccWall.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccWall extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ if (xChartDoc != null) cleanup(Param, log);
+ log.println( "creating a chart document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ log.println("Change Diagram to 3D");
+ XPropertySet ChartProps = UnoRuntime.queryInterface( XPropertySet.class, xChartDoc.getDiagram() );
+ ChartProps.setPropertyValue("Dim3D", Boolean.TRUE);
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext cont = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.SHAPE, "", "AccWall");
+
+ oObj = cont;
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ log.println("AccessibleName " + cont.getAccessibleName());
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acc = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acc.grabFocus();
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ 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
new file mode 100644
index 000000000..f2217435e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java
@@ -0,0 +1,112 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessibleDocumentView extends TestCase {
+
+ XChartDocument xChartDoc = null;
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT);
+
+ if (oObj == null) {
+ log.println("DocumentView hasn't the role 'Document'");
+ log.println("trying the role 'Shape'");
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.SHAPE);
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XWindow xDocWin = xWindow;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle rect = xDocWin.getPosSize();
+ xDocWin.setPosSize(100,100,100,100,PosSize.POSSIZE);
+ xDocWin.setPosSize(rect.X,rect.Y,rect.Width,rect.Height,
+ PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a chart document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java b/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java
new file mode 100644
index 000000000..844d1ce9c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java
@@ -0,0 +1,113 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XAxisYSupplier;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.drawing.XShape;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartAxis</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::chart::ChartAxis</code></li>
+* </ul>
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.chart.ChartAxis
+* @see ifc.drawing._LineProperties
+* @see ifc.style._CharacterProperties
+* @see ifc.beans._XPropertySet
+* @see ifc.chart._ChartAxis
+*/
+public class ChXChartAxis extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the diagram of the chart document. Then obtains the properties
+ * of the y-axis of the diagram using the interface
+ * <code>XAxisYSupplier</code>. The obatined property is the instance
+ * of the service <code>com.sun.star.chart.ChartAxis</code>.
+ * @see com.sun.star.chart.XAxisYSupplier
+ * @see com.sun.star.chart.ChartAxis
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ XPropertySet oObj = null;
+ XShape oDiagram = null;
+
+ // create testobject here
+ // get the Diagram
+ log.println( "getting Diagram" );
+ oDiagram = xChartDoc.getDiagram();
+
+ // get the Axis
+ log.println( "getting ChartAxis" );
+ XAxisYSupplier oAxisSup = UnoRuntime.queryInterface(XAxisYSupplier.class,oDiagram);
+ oObj = oAxisSup.getYAxis();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+
+} // finish class ChXChartAxis
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartData.java b/qadevOOo/tests/java/mod/_sch/ChXChartData.java
new file mode 100644
index 000000000..ffe925925
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartData.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.chart.XChartData;
+import com.sun.star.chart.XChartDocument;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartData</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* </ul>
+* @see com.sun.star.chart.ChartData
+* @see com.sun.star.chart.XChartData
+* @see ifc.chart._XChartData
+*/
+public class ChXChartData extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the data source of the chart. This data source is the instance
+ * of the service <code>com.sun.star.chart.ChartData</code>.
+ * @see com.sun.star.chart.ChartData
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ // get the Data
+ log.println( "getting Data" );
+ XChartData oObj = xChartDoc.getData();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ChXChartData
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java b/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java
new file mode 100644
index 000000000..fca97a6ab
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java
@@ -0,0 +1,91 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.chart.XChartData;
+import com.sun.star.chart.XChartDocument;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartDataArray</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::chart::XChartData</code></li>
+* <li> <code>com::sun::star::chart::XChartDataArray</code></li>
+* </ul>
+* @see com.sun.star.chart.ChartDataArray
+* @see com.sun.star.chart.XChartData
+* @see com.sun.star.chart.XChartDataArray
+* @see ifc.chart._XChartData
+* @see ifc.chart._XChartDataArray
+*/
+public class ChXChartDataArray extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the data source of the chart. This data source is the instance
+ * of the service <code>com.sun.star.chart.ChartDataArray</code>.
+ * <code>com.sun.star.chart.ChartDataArray</code>.
+ * @see com.sun.star.chart.ChartDataArray
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ // get the Data
+ log.println( "getting Data" );
+ XChartData oObj = xChartDoc.getData();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ChXChartDataArray
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java b/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java
new file mode 100644
index 000000000..91388fd92
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sch;
+
+import com.sun.star.chart.XChartData;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.frame.XController;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XSelectionSupplier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartDocument</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::frame::XModel</code></li>
+* <li> <code>com::sun::star::chart::XChartDocument</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::chart::ChartTableAddressSupplier</code></li>
+* <li> <code>com::sun::star::chart::ChartDocument</code></li>
+* </ul>
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.frame.XModel
+* @see com.sun.star.chart.XChartDocument
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.chart.ChartTableAddressSupplier
+* @see com.sun.star.chart.ChartDocument
+* @see ifc.lang._XComponent
+* @see ifc.frame._XModel
+* @see ifc.chart._XChartDocument
+* @see ifc.beans._XPropertySet
+* @see ifc.chart._ChartTableAddressSupplier
+* @see ifc.chart._ChartDocument
+*/
+public class ChXChartDocument extends TestCase {
+ XChartDocument xChartDoc = null;
+ XChartDocument doc2 = null;
+
+ /**
+ * Disposes Chart documents.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ 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;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two chart documents and retrieves current controllers from them
+ * using the interface <code>XChartDocument</code>. The created documents
+ * is the instances of the service <code>com.sun.star.chart.ChartDocument</code>.
+ * Obtains the data source of the second created chart and creates
+ * a pie diagram.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SELSUPP'</code> for
+ * {@link ifc.frame._XModel}(the controller of the first created chart
+ * document)</li>
+ * <li> <code>'TOSELECT'</code> for
+ * {@link ifc.frame._XModel}(the shape of the main title of
+ * the first created chart document)</li>
+ * <li> <code>'CONT2'</code> for
+ * {@link ifc.frame._XModel}(the second created chart document)</li>
+ * <li> <code>'DIAGRAM'</code> for
+ * {@link ifc.chart._XChartDocument}(the created pie diagram)</li>
+ * <li> <code>'CHARTDATA'</code> for
+ * {@link ifc.chart._XChartDocument}(the data source of the second
+ * created chart)</li>
+ * </ul>
+ * @see com.sun.star.chart.XChartData
+ * @see com.sun.star.chart.ChartDocument
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a chartdocument");
+ xChartDoc = SOF.createChartDoc();
+ log.println("Waiting before opening second document");
+ doc2 = SOF.createChartDoc();
+
+
+ // get the chartdocument
+ log.println("getting ChartDocument");
+
+ XInterface oObj = xChartDoc;
+
+ XController cont1 = xChartDoc.getCurrentController();
+ XController cont2 = doc2.getCurrentController();
+
+ cont1.getFrame().setName("cont1");
+ cont2.getFrame().setName("cont2");
+
+ XSelectionSupplier sel = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, cont1);
+
+ log.println("creating a new environment for chartdocument object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("Adding SelectionSupplier and Shape to select for XModel");
+ tEnv.addObjRelation("SELSUPP", sel);
+ tEnv.addObjRelation("TOSELECT", xChartDoc.getTitle());
+
+ log.println("adding Controller as ObjRelation for XModel");
+ tEnv.addObjRelation("CONT2", cont2);
+
+ log.println("adding another Diagram as mod relation to environment");
+ tEnv.addObjRelation("DIAGRAM",
+ SOF.createDiagram(xChartDoc, "PieDiagram"));
+
+ log.println("adding another ChartData as mod relation to environment");
+
+ XChartData ChartData = doc2.getData();
+ tEnv.addObjRelation("CHARTDATA", ChartData);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class ChXChartDocument
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartView.java b/qadevOOo/tests/java/mod/_sch/ChXChartView.java
new file mode 100644
index 000000000..89873574d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartView.java
@@ -0,0 +1,127 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.drawing.XShapeDescriptor;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.view.OfficeDocumentView</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::view::XViewSettingsSupplier</code></li>
+* <li> <code>com::sun::star::view::XControlAccess</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* </ul>
+* @see com.sun.star.view.OfficeDocumentView
+* @see com.sun.star.view.XViewSettingsSupplier
+* @see com.sun.star.view.XControlAccess
+* @see com.sun.star.view.XSelectionSupplier
+* @see ifc.view._XViewSettingsSupplier
+* @see ifc.view._XControlAccess
+* @see ifc.view._XSelectionSupplier
+*/
+public class ChXChartView extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the current controller of the chart document using
+ * the interface <code>XModel</code>.The retrieved controller is the instance
+ * of the service <code>com.sun.star.view.OfficeDocumentView</code>.
+ * Obtains the main title and the legend of the chart document.
+ * Object relations created :
+ * <ul>
+ *
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ XController oObj = null;
+ XModel oModel = null;
+
+ // get the ChartView
+ log.println( "getting ChartView" );
+ oModel = UnoRuntime.queryInterface(XModel.class, xChartDoc);
+ oObj = oModel.getCurrentController();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("Selections", new Object[]
+ {xChartDoc.getArea(), xChartDoc.getDiagram(), xChartDoc.getTitle(),
+ xChartDoc.getLegend()} );
+
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XShapeDescriptor descr1 = UnoRuntime.queryInterface(XShapeDescriptor.class, o1);
+ XShapeDescriptor descr2 = UnoRuntime.queryInterface(XShapeDescriptor.class, o2);
+ if (descr1 == null || descr2 == null) {
+ return -1;
+ }
+ if (descr1.getShapeType().equals(descr2.getShapeType())) {
+ return 0;
+ }
+ return 1;
+ }
+ } );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class ChXChartView
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java b/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java
new file mode 100644
index 000000000..abad0f6ca
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartDataPointProperties</code>. <p>
+* Object implements the following interfaces
+* <ul>
+* <li> <code>com::sun::star::chart::ChartDataPointProperties</code></li>
+* <li> <code>com::sun::star::drawing::FillProperties</code></li>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::chart::Chart3DBarProperties</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TransparencyChart.sxs </b> : to load predefined chart
+* document where two 'automatic' transparency styles exists :
+* 'Transparency 1' and 'Transparency 2'.</li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartDataPointProperties
+* @see com.sun.star.drawing.FillProperties
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.chart.Chart3DBarProperties
+* @see ifc.chart._ChartDataPointProperties
+* @see ifc.drawing._FillProperties
+* @see ifc.drawing._LineProperties
+* @see ifc.style._CharacterProperties
+* @see ifc.beans._XPropertySet
+* @see ifc.chart._Chart3DBarProperties
+*/
+public class ChXDataPoint extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ XComponent xComp = SOF.loadDocument(
+ utils.getFullTestURL("TransparencyChart.sxs"));
+ xChartDoc = UnoRuntime.queryInterface(XChartDocument.class,xComp);
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the diagram of the chart document. Obtains the properties of
+ * the specified data point. The obtained properties is the instance of
+ * the service <code>com.sun.star.chart.ChartDataPointProperties</code>.
+ * Creates a XY-diagram and bar-diagram also.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'LINE'</code> for
+ * {@link ifc.chart._ChartDataPointProperties}(the created XY-diagram)</li>
+ * <li> <code>'CHARTDOC'</code> for
+ * {@link ifc.chart._ChartDataPointProperties},
+ * {@link ifc.chart._Chart3DBarProperties}(the chart document)</li>
+ * <li> <code>'BAR'</code> for
+ * {@link ifc.chart._Chart3DBarProperties}(the created bar-diagram)</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XPropertySet oObj = null;
+ XDiagram oDiagram = null;
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ // get the DataRowPoint_Point
+ log.println( "getting ChXDataRowPoint_Point" );
+ oDiagram = xChartDoc.getDiagram();
+ oObj = oDiagram.getDataPointProperties(1,1);
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ Object line = SOF.createDiagram(xChartDoc,"XYDiagram");
+ tEnv.addObjRelation("LINE",line);
+
+ Object bar = SOF.createDiagram(xChartDoc,"BarDiagram");
+ tEnv.addObjRelation("BAR",bar);
+
+ log.println( "adding ChartDocument as mod relation to environment" );
+ tEnv.addObjRelation("CHARTDOC", xChartDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ChXDataPoint
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChXDataRow.java b/qadevOOo/tests/java/mod/_sch/ChXDataRow.java
new file mode 100644
index 000000000..e723aa716
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXDataRow.java
@@ -0,0 +1,147 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartDataRowProperties</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::FillProperties</code></li>
+* <li> <code>com::sun::star::chart::ChartStatistics</code></li>
+* <li> <code>com::sun::star::chart::ChartDataRowProperties</code></li>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::chart::ChartDataPointProperties</code></li>
+* <li> <code>com::sun::star::chart::Chart3DBarProperties</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TransparencyChart.sxs </b> : to load predefined chart
+* document where two 'automatic' transparency styles exists :
+* 'Transparency 1' and 'Transparency 2'.</li>
+* </ul> <p>
+* @see com.sun.star.drawing.FillProperties
+* @see com.sun.star.chart.ChartStatistics
+* @see com.sun.star.chart.ChartDataRowProperties
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.chart.ChartDataPointProperties
+* @see com.sun.star.chart.Chart3DBarProperties
+* @see com.sun.star.style.CharacterProperties
+* @see ifc.drawing._FillProperties
+* @see ifc.chart._ChartStatistics
+* @see ifc.chart._ChartDataRowProperties
+* @see ifc.drawing._LineProperties
+* @see ifc.beans._XPropertySet
+* @see ifc.chart._ChartDataPointProperties
+* @see ifc.chart._Chart3DBarProperties
+* @see ifc.style._CharacterProperties
+*/
+public class ChXDataRow extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ XComponent xComp = SOF.loadDocument(
+ utils.getFullTestURL("TransparencyChart.sxs"));
+ xChartDoc = UnoRuntime.queryInterface(XChartDocument.class,xComp);
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected synchronized void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the diagram of the chart document. Obtains the properties of
+ * the specified data row. The obtained properties is the instance of
+ * the service <code>com.sun.star.chart.ChartDataRowProperties</code>.
+ * Creates a XY-diagram and bar-diagram also.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'LINE'</code> for
+ * {@link ifc.chart._ChartDataPointProperties}(the created XY-diagram)</li>
+ * <li> <code>'CHARTDOC'</code> for
+ * {@link ifc.chart._ChartDataPointProperties},
+ * {@link ifc.chart._Chart3DBarProperties}(the chart document)</li>
+ * <li> <code>'BAR'</code> for
+ * {@link ifc.chart._Chart3DBarProperties}(the created bar-diagram)</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XPropertySet oObj = null;
+ XDiagram oDiagram = null;
+ // get the ChXDataRowPoint_Row
+ log.println( "getting ChXDataRowPoint_Row" );
+ oDiagram = xChartDoc.getDiagram();
+ oObj = oDiagram.getDataRowProperties(1);
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ Object line = SOF.createDiagram(xChartDoc,"XYDiagram");
+ tEnv.addObjRelation("LINE",line);
+
+ Object bar = SOF.createDiagram(xChartDoc,"BarDiagram");
+ tEnv.addObjRelation("BAR",bar);
+
+ log.println( "adding ChartDocument as mod relation to environment" );
+ tEnv.addObjRelation("CHARTDOC", xChartDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class ChXDataRow
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChXDiagram.java b/qadevOOo/tests/java/mod/_sch/ChXDiagram.java
new file mode 100644
index 000000000..c9433e6b9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChXDiagram.java
@@ -0,0 +1,367 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.awt.Rectangle;
+import com.sun.star.chart.XChartDataArray;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.document.XEmbeddedObjectSupplier;
+import com.sun.star.sheet.XCellRangeAddressable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.table.XCell;
+import com.sun.star.table.XCellRange;
+import com.sun.star.table.XTableChart;
+import com.sun.star.table.XTableCharts;
+import com.sun.star.table.XTableChartsSupplier;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by the following services:
+* <ul>
+* <li> <code>com.sun.star.chart.Dim3DDiagram</code> </li>
+* <li> <code>com.sun.star.chart.StockDiagram</code> </li>
+* <li> <code>com.sun.star.chart.LineDiagram</code> </li>
+* <li> <code>com.sun.star.chart.BarDiagram</code> </li>
+* <li> <code>com.sun.star.chart.StackableDiagram</code> </li>
+* </ul>
+* <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::chart::XDiagram</code></li>
+* <li> <code>com::sun::star::chart::ChartAxisXSupplier</code></li>
+* <li> <code>com::sun::star::chart::Dim3DDiagram</code></li>
+* <li> <code>com::sun::star::chart::StockDiagram</code></li>
+* <li> <code>com::sun::star::chart::ChartAxisZSupplier</code></li>
+* <li> <code>com::sun::star::chart::XTwoAxisXSupplier</code></li>
+* <li> <code>com::sun::star::chart::LineDiagram</code></li>
+* <li> <code>com::sun::star::chart::BarDiagram</code></li>
+* <li> <code>com::sun::star::chart::XAxisYSupplier</code></li>
+* <li> <code>com::sun::star::chart::Diagram</code></li>
+* <li> <code>com::sun::star::chart::X3DDisplay</code></li>
+* <li> <code>com::sun::star::chart::ChartTwoAxisYSupplier</code></li>
+* <li> <code>com::sun::star::chart::StackableDiagram</code></li>
+* <li> <code>com::sun::star::chart::ChartAxisYSupplier</code></li>
+* <li> <code>com::sun::star::chart::XAxisXSupplier</code></li>
+* <li> <code>com::sun::star::chart::ChartTwoAxisXSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XShape</code></li>
+* <li> <code>com::sun::star::chart::XTwoAxisYSupplier</code></li>
+* <li> <code>com::sun::star::chart::ChartStatistics</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+* <li> <code>com::sun::star::chart::XAxisZSupplier</code></li>
+* <li> <code>com::sun::star::chart::XStatisticDisplay</code></li>
+* </ul>
+* @see com.sun.star.chart.XDiagram
+* @see com.sun.star.chart.ChartAxisXSupplier
+* @see com.sun.star.chart.Dim3DDiagram
+* @see com.sun.star.chart.StockDiagram
+* @see com.sun.star.chart.ChartAxisZSupplier
+* @see com.sun.star.chart.XTwoAxisXSupplier
+* @see com.sun.star.chart.LineDiagram
+* @see com.sun.star.chart.BarDiagram
+* @see com.sun.star.chart.XAxisYSupplier
+* @see com.sun.star.chart.Diagram
+* @see com.sun.star.chart.X3DDisplay
+* @see com.sun.star.chart.ChartTwoAxisYSupplier
+* @see com.sun.star.chart.StackableDiagram
+* @see com.sun.star.chart.ChartAxisYSupplier
+* @see com.sun.star.chart.XAxisXSupplier
+* @see com.sun.star.chart.ChartTwoAxisXSupplier
+* @see com.sun.star.drawing.XShape
+* @see com.sun.star.chart.XTwoAxisYSupplier
+* @see com.sun.star.chart.ChartStatistics
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.drawing.XShapeDescriptor
+* @see com.sun.star.chart.XAxisZSupplier
+* @see com.sun.star.chart.XStatisticDisplay
+* @see ifc.chart._XDiagram
+* @see ifc.chart._ChartAxisXSupplier
+* @see ifc.chart._Dim3DDiagram
+* @see ifc.chart._StockDiagram
+* @see ifc.chart._ChartAxisZSupplier
+* @see ifc.chart._XTwoAxisXSupplier
+* @see ifc.chart._LineDiagram
+* @see ifc.chart._BarDiagram
+* @see ifc.chart._XAxisYSupplier
+* @see ifc.chart._Diagram
+* @see ifc.chart._X3DDisplay
+* @see ifc.chart._ChartTwoAxisYSupplier
+* @see ifc.chart._StackableDiagram
+* @see ifc.chart._ChartAxisYSupplier
+* @see ifc.chart._XAxisXSupplier
+* @see ifc.chart._ChartTwoAxisXSupplier
+* @see ifc.drawing._XShape
+* @see ifc.chart._XTwoAxisYSupplier
+* @see ifc.chart._ChartStatistics
+* @see ifc.beans._XPropertySet
+* @see ifc.drawing._XShapeDescriptor
+* @see ifc.chart._XAxisZSupplier
+* @see ifc.chart._XStatisticDisplay
+*/
+public class ChXDiagram extends TestCase {
+ XSpreadsheetDocument xSheetDoc = null;
+
+ /**
+ * Creates Spreadsheet document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a sheetdocument" );
+ xSheetDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes Spreadsheet document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " closing xSheetDoc " );
+ util.DesktopTools.closeDoc(xSheetDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves a collection of spreadsheets from a document
+ * and takes one of them. Inserts some values into the cells of the same cell
+ * range address. Adds and retrieves the chart that using the data from
+ * the cells of this cell range address. Obtains the chart document which is
+ * embedded into the retrieved chart using the interface
+ * <code>XEmbeddedObjectSupplier</code>. Retrieves the diagram from
+ * the obtained chart document. The retrieved diagram is the instance of
+ * the service <code>com.sun.star.chart.Diagram</code>.
+ * Obtains the data source of the chart from the chart document.
+ * Creates a stock-diagram, a bar-diagram, a XY-diagram and line-diagram
+ * that are the instances of the following services:
+ * <ul>
+ * <li> <code>com.sun.star.chart.StockDiagram</code> </li>
+ * <li> <code>com.sun.star.chart.BarDiagram</code> </li>
+ * <li> <code>com.sun.star.chart.LineDiagram</code> </li>
+ * <li> <code>com.sun.star.chart.StackableDiagram</code> </li>
+ * </ul>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CHARTDOC'</code> for
+ * {@link ifc.chart._Dim3DDiagram}, {@link ifc.chart._StockDiagram},
+ * {@link ifc.chart._ChartAxisZSupplier}, {@link ifc.chart._LineDiagram},
+ * {@link ifc.chart._BarDiagram}, {@link ifc.chart._Diagram},
+ * {@link ifc.chart._ChartTwoAxisYSupplier},
+ * {@link ifc.chart._StackableDiagram}, {@link ifc.chart._Diagram},
+ * {@link ifc.chart._ChartAxisYSupplier},
+ * {@link ifc.chart._ChartTwoAxisXSupplier},
+ * {@link ifc.chart._ChartStatistics} (the obtained chart document)</li>
+ * <li> <code>'ROWAMOUNT', 'COLAMOUNT'</code> for
+ * {@link ifc.chart._XDiagram}(the number of chart columns and
+ * the number of chart rows) </li>
+ * <li> <code>'STOCK'</code> for
+ * {@link ifc.chart._StockDiagram}(the created stock-diagram) </li>
+ * <li> <code>'BAR'</code> for
+ * {@link ifc.chart._BarDiagram}, {@link ifc.chart._ChartAxisZSupplier},
+ * {@link ifc.chart._ChartTwoAxisXSupplier},
+ * {@link ifc.chart._ChartTwoAxisYSupplier}(the created bar-diagram)</li>
+ * <li> <code>'LINE'</code> for
+ * {@link ifc.chart._LineDiagram}(the created XY-diagram) </li>
+ * <li> <code>'STACK'</code> for
+ * {@link ifc.chart._StackableDiagram}(the created Line-diagram) </li>
+ * </ul>
+ * @see com.sun.star.document.XEmbeddedObjectSupplier
+ * @see com.sun.star.chart.Diagram
+ * @see com.sun.star.chart.StockDiagram
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ XSpreadsheet oSheet=null;
+ XChartDocument xChartDoc=null;
+ XDiagram oObj = null;
+
+ System.out.println("Getting spreadsheet") ;
+ XSpreadsheets oSheets = xSheetDoc.getSheets() ;
+ XIndexAccess oIndexSheets = UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
+ oSheet = (XSpreadsheet) AnyConverter.toObject(
+ new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
+
+ log.println("Creating the Header") ;
+
+ insertIntoCell(1,0,"JAN",oSheet,"");
+ insertIntoCell(2,0,"FEB",oSheet,"");
+ insertIntoCell(3,0,"MAR",oSheet,"");
+ insertIntoCell(4,0,"APR",oSheet,"");
+ insertIntoCell(5,0,"MAI",oSheet,"");
+ insertIntoCell(6,0,"JUN",oSheet,"");
+ insertIntoCell(7,0,"JUL",oSheet,"");
+ insertIntoCell(8,0,"AUG",oSheet,"");
+ insertIntoCell(9,0,"SEP",oSheet,"");
+ insertIntoCell(10,0,"OCT",oSheet,"");
+ insertIntoCell(11,0,"NOV",oSheet,"");
+ insertIntoCell(12,0,"DEC",oSheet,"");
+ insertIntoCell(13,0,"SUM",oSheet,"");
+
+ log.println("Fill the lines");
+
+ insertIntoCell(0,1,"Smith",oSheet,"");
+ insertIntoCell(1,1,"42",oSheet,"V");
+ insertIntoCell(2,1,"58.9",oSheet,"V");
+ insertIntoCell(3,1,"-66.5",oSheet,"V");
+ insertIntoCell(4,1,"43.4",oSheet,"V");
+ insertIntoCell(5,1,"44.5",oSheet,"V");
+ insertIntoCell(6,1,"45.3",oSheet,"V");
+ insertIntoCell(7,1,"-67.3",oSheet,"V");
+ insertIntoCell(8,1,"30.5",oSheet,"V");
+ insertIntoCell(9,1,"23.2",oSheet,"V");
+ insertIntoCell(10,1,"-97.3",oSheet,"V");
+ insertIntoCell(11,1,"22.4",oSheet,"V");
+ insertIntoCell(12,1,"23.5",oSheet,"V");
+ insertIntoCell(13,1,"=SUM(B2:M2)",oSheet,"");
+
+ insertIntoCell(0,2,"Jones",oSheet,"");
+ insertIntoCell(1,2,"21",oSheet,"V");
+ insertIntoCell(2,2,"40.9",oSheet,"V");
+ insertIntoCell(3,2,"-57.5",oSheet,"V");
+ insertIntoCell(4,2,"-23.4",oSheet,"V");
+ insertIntoCell(5,2,"34.5",oSheet,"V");
+ insertIntoCell(6,2,"59.3",oSheet,"V");
+ insertIntoCell(7,2,"27.3",oSheet,"V");
+ insertIntoCell(8,2,"-38.5",oSheet,"V");
+ insertIntoCell(9,2,"43.2",oSheet,"V");
+ insertIntoCell(10,2,"57.3",oSheet,"V");
+ insertIntoCell(11,2,"25.4",oSheet,"V");
+ insertIntoCell(12,2,"28.5",oSheet,"V");
+ insertIntoCell(13,2,"=SUM(B3:M3)",oSheet,"");
+
+ insertIntoCell(0,3,"Brown",oSheet,"");
+ insertIntoCell(1,3,"31.45",oSheet,"V");
+ insertIntoCell(2,3,"-20.9",oSheet,"V");
+ insertIntoCell(3,3,"-117.5",oSheet,"V");
+ insertIntoCell(4,3,"23.4",oSheet,"V");
+ insertIntoCell(5,3,"-114.5",oSheet,"V");
+ insertIntoCell(6,3,"115.3",oSheet,"V");
+ insertIntoCell(7,3,"-171.3",oSheet,"V");
+ insertIntoCell(8,3,"89.5",oSheet,"V");
+ insertIntoCell(9,3,"41.2",oSheet,"V");
+ insertIntoCell(10,3,"71.3",oSheet,"V");
+ insertIntoCell(11,3,"25.4",oSheet,"V");
+ insertIntoCell(12,3,"38.5",oSheet,"V");
+ insertIntoCell(13,3,"=SUM(A4:L4)",oSheet,"");
+
+ // insert a chart
+ Rectangle oRect = new Rectangle(500, 3000, 25000, 11000);
+
+ XCellRange oRange = UnoRuntime.queryInterface(XCellRange.class, oSheet);
+ XCellRange myRange = oRange.getCellRangeByName("A1:N4");
+ XCellRangeAddressable oRangeAddr = UnoRuntime.queryInterface(XCellRangeAddressable.class, myRange);
+ CellRangeAddress myAddr = oRangeAddr.getRangeAddress();
+
+ CellRangeAddress[] oAddr = new CellRangeAddress[1];
+ oAddr[0] = myAddr;
+ XTableChartsSupplier oSupp = UnoRuntime.queryInterface(XTableChartsSupplier.class, oSheet);
+
+ log.println("Insert Chart");
+ XTableCharts oCharts = oSupp.getCharts();
+
+
+ if (!oCharts.hasByName("ChXDiagram")) {
+ oCharts.addNewByName("ChXDiagram", oRect, oAddr, true, true);
+ }
+
+ // get the TableChart
+ XTableChart oChart = (XTableChart) AnyConverter.toObject(
+ new Type(XTableChart.class),UnoRuntime.queryInterface(
+ XNameAccess.class, oCharts).getByName("ChXDiagram"));
+
+ XEmbeddedObjectSupplier oEOS = UnoRuntime.queryInterface(XEmbeddedObjectSupplier.class, oChart);
+ XInterface oInt = oEOS.getEmbeddedObject();
+ xChartDoc = UnoRuntime.queryInterface(XChartDocument.class,oInt);
+ oObj = xChartDoc.getDiagram();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding ChartDocument as mod relation to environment" );
+ tEnv.addObjRelation("CHARTDOC", xChartDoc);
+
+ XChartDataArray da = UnoRuntime.queryInterface(XChartDataArray.class, xChartDoc.getData());
+ int cols = da.getColumnDescriptions().length;
+ int rows = da.getRowDescriptions().length;
+
+ tEnv.addObjRelation("ROWAMOUNT", Integer.valueOf(rows));
+ tEnv.addObjRelation("COLAMOUNT", Integer.valueOf(cols));
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ Object stock = SOF.createDiagram(xChartDoc,"StockDiagram");
+ tEnv.addObjRelation("STOCK",stock);
+
+ Object bar = SOF.createDiagram(xChartDoc,"BarDiagram");
+ tEnv.addObjRelation("BAR",bar);
+
+ Object line = SOF.createDiagram(xChartDoc,"XYDiagram");
+ tEnv.addObjRelation("LINE",line);
+
+ Object stack = SOF.createDiagram(xChartDoc,"LineDiagram");
+ tEnv.addObjRelation("STACK",stack);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * Inserts a value or a formula in the cell of the spreadsheet.
+ * @param CellX is the column index of the cell
+ * @param CellY is the row index of the cell
+ * @param theValue string representation of the value
+ * @param TT1 specify the spreadsheet, the interface
+ * <code>com.sun.star.sheet.XSpreadsheet</code>
+ * @param flag if it's equal to <code>'V'</code> then the method inserts
+ * a double-value in the cell else it inserts a formula in the cell
+ */
+ public static void insertIntoCell(
+ int CellX, int CellY, String theValue, XSpreadsheet TT1, String flag)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+
+ XCell oCell = TT1.getCellByPosition(CellX, CellY);
+
+ if (flag.equals("V")) {
+ oCell.setValue(Float.parseFloat(theValue));
+ }
+ else {
+ oCell.setFormula(theValue);
+ }
+
+ } // end of insertIntoCell
+
+
+} // finish class ChXDiagram
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChartArea.java b/qadevOOo/tests/java/mod/_sch/ChartArea.java
new file mode 100644
index 000000000..c81a7cea2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChartArea.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartArea</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::FillProperties</code></li>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TransparencyChart.sxs </b> : to load predefined chart
+* document where two 'automatic' transparency styles exists :
+* 'Transparency 1' and 'Transparency 2'.</li>
+* </ul> <p>
+* @see com.sun.star.chart.ChartArea
+* @see com.sun.star.drawing.FillProperties
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.drawing._FillProperties
+* @see ifc.drawing._LineProperties
+* @see ifc.beans._XPropertySet
+*/
+public class ChartArea extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ XComponent xComp = SOF.loadDocument(
+ utils.getFullTestURL("TransparencyChart.sxs"));
+ xChartDoc = UnoRuntime.queryInterface(XChartDocument.class,xComp);
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieved the instance of the service <code>com.sun.star.chart.ChartArea</code>
+ * using the interface <code>XChartDocument</code>.
+ * @see com.sun.star.chart.XChartDocument
+ * @see com.sun.star.chart.ChartArea
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ // get the Area
+ log.println( "getting Area" );
+ XPropertySet oObj = xChartDoc.getArea();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ChartArea
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChartGrid.java b/qadevOOo/tests/java/mod/_sch/ChartGrid.java
new file mode 100644
index 000000000..79b3aa3f0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChartGrid.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XAxisXSupplier;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.drawing.XShape;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartGrid</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.chart.ChartGrid
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.drawing._LineProperties
+* @see ifc.beans._XPropertySet
+*/
+public class ChartGrid extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the diagram of the chart document. Then obtains
+ * the properties of the main grid of the x-axis of the diagram
+ * using the interface <code>XAxisXSupplier</code>. This properties is
+ * the instance of the service <code>com.sun.star.chart.ChartGrid</code>.
+ * @see com.sun.star.chart.XAxisXSupplier
+ * @see com.sun.star.chart.ChartGrid
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+ XPropertySet oObj = null;
+ XShape oDiagram = null;
+
+ // get the Diagram
+ log.println( "getting Diagram" );
+ oDiagram = xChartDoc.getDiagram();
+
+ // get the Grid
+ log.println( "getting ChartGrid" );
+ XAxisXSupplier oAxisSup = UnoRuntime.queryInterface(XAxisXSupplier.class,oDiagram);
+ oObj = oAxisSup.getXMainGrid();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class ChartGrid
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChartLegend.java b/qadevOOo/tests/java/mod/_sch/ChartLegend.java
new file mode 100644
index 000000000..c8cfaa477
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChartLegend.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartLegend</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::FillProperties</code></li>
+* <li> <code>com::sun::star::drawing::XShape</code></li>
+* <li> <code>com::sun::star::drawing::Shape</code></li>
+* <li> <code>com::sun::star::chart::ChartLegend</code></li>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> TransparencyChart.sxs </b> : to load predefined chart
+* document where two 'automatic' transparency styles exists :
+* 'Transparency 1' and 'Transparency 2'.</li>
+* </ul> <p>
+* @see com.sun.star.drawing.FillProperties
+* @see com.sun.star.drawing.XShape
+* @see com.sun.star.drawing.Shape
+* @see com.sun.star.chart.ChartLegend
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.drawing.XShapeDescriptor
+* @see com.sun.star.lang.XComponent
+* @see ifc.drawing._FillProperties
+* @see ifc.drawing._XShape
+* @see ifc.drawing._Shape
+* @see ifc.chart._ChartLegend
+* @see ifc.drawing._LineProperties
+* @see ifc.beans._XPropertySet
+* @see ifc.style._CharacterProperties
+* @see ifc.drawing._XShapeDescriptor
+* @see ifc.lang._XComponent
+*/
+public class ChartLegend extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ XComponent xComp = SOF.loadDocument(
+ utils.getFullTestURL("TransparencyChart.sxs"));
+ xChartDoc = UnoRuntime.queryInterface(XChartDocument.class,xComp);
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the diagram of the chart document. The retrieved
+ * diagram is the instance of the service
+ * <code>com.sun.star.chart.ChartLegend</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ XShape oObj = null;
+
+ // get the Legend
+ log.println( "getting Legend" );
+ oObj = xChartDoc.getLegend();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("NoSetSize", "sch.ChartLegend");
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class ChartLegend
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChartLine.java b/qadevOOo/tests/java/mod/_sch/ChartLine.java
new file mode 100644
index 000000000..69c0a510a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChartLine.java
@@ -0,0 +1,112 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.chart.XDiagram;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartLine</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::LineProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.drawing.LineProperties
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.drawing._LineProperties
+* @see ifc.beans._XPropertySet
+*/
+public class ChartLine extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates a bar diagram and sets the created diagram for the chart document.
+ * Retrieves the property <code>'DataMeanValueProperties'</code> of
+ * the specified data row. The retrieved property is the instance of
+ * the service <code>com.sun.star.chart.ChartLine</code>.
+ * @see com.sun.star.chart.ChartLine
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XPropertySet oObj = null;
+ XDiagram oDiagram = null;
+ SOfficeFactory SOF = null;
+
+ //get LineDiagram
+ SOF = SOfficeFactory.getFactory( Param.getMSF());
+ oDiagram = SOF.createDiagram(xChartDoc, "LineDiagram");
+
+ log.println( "getting Line-Diagram" );
+ xChartDoc.setDiagram(oDiagram);
+
+ // get the Line
+ log.println( "getting Line" );
+ XPropertySet RowProps = oDiagram.getDataRowProperties(1);
+ RowProps.setPropertyValue("MeanValue", Boolean.TRUE);
+ oObj = (XPropertySet) AnyConverter.toObject(
+ new Type(XPropertySet.class),
+ RowProps.getPropertyValue("DataMeanValueProperties"));
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class ChartLine
+
diff --git a/qadevOOo/tests/java/mod/_sch/ChartTitle.java b/qadevOOo/tests/java/mod/_sch/ChartTitle.java
new file mode 100644
index 000000000..1a4aaccfb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sch/ChartTitle.java
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sch;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.drawing.XShape;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.chart.ChartTitle</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::chart::ChartTitle</code></li>
+* <li> <code>com::sun::star::drawing::XShape</code></li>
+* <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+* <li> <code>com::sun::star::style::CharacterProperties</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::drawing::Shape</code></li>
+* </ul>
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.chart.ChartTitle
+* @see com.sun.star.drawing.XShape
+* @see com.sun.star.drawing.XShapeDescriptor
+* @see com.sun.star.style.CharacterProperties
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.drawing.Shape
+* @see ifc.lang._XComponent
+* @see ifc.chart._ChartTitle
+* @see ifc.drawing._XShape
+* @see ifc.drawing._XShapeDescriptor
+* @see ifc.style._CharacterProperties
+* @see ifc.beans._XPropertySet
+* @see ifc.drawing._Shape
+*/
+public class ChartTitle extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * Creates Chart document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Disposes Chart document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the shape of the main title of the chart document.
+ * The retrieved shape is the instance of the service
+ * <code>com.sun.star.chart.ChartTitle</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ // get the Title
+ log.println( "getting Title" );
+ XShape oObj = xChartDoc.getTitle();
+
+ log.println( "creating a new environment for chartdocument object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ tEnv.addObjRelation("NoSetSize","sch.ChartTitle");
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class ChXChartObject_Title
+
diff --git a/qadevOOo/tests/java/mod/_sd/AccessibleDrawDocumentView.java b/qadevOOo/tests/java/mod/_sd/AccessibleDrawDocumentView.java
new file mode 100644
index 000000000..42b63f593
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/AccessibleDrawDocumentView.java
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XDrawView;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessibleDrawDocumentView extends TestCase {
+
+ XComponent xDrawDoc;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ final XDrawPage fDP2 = oDPn.insertNewByIndex(1);
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class, oDPn);
+ XDrawPage oDP = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //get a Shape
+ log.println( "inserting a Shape" );
+ XShape oShape = SOF.createShape(xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (
+ aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ //com.sun.star.accessibility.AccessibleRole
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT);
+
+ log.println("ImplementationName "+utils.getImplName(oObj));
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XDrawView xView = UnoRuntime.queryInterface
+ (XDrawView.class, aModel.getCurrentController()) ;
+ final XDrawPage fDP1 = oDP;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ xView.setCurrentPage(fDP2);
+ xView.setCurrentPage(fDP1);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing Draw document");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sd/AccessibleOutlineView.java b/qadevOOo/tests/java/mod/_sd/AccessibleOutlineView.java
new file mode 100644
index 000000000..5765c87d1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/AccessibleOutlineView.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+public class AccessibleOutlineView extends TestCase {
+
+ XModel aModel = null;
+ XComponent xImpressDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) {
+ XInterface oObj = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (
+ aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT);
+
+ log.println("ImplementationName "+utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, aModel);
+ final XDrawPages oDPn = oDPS.getDrawPages();
+
+ tEnv.addObjRelation("EventMsg","Inserting a drawpage via API has no "+
+ "effect to the outline view #101050# \r\n"+
+ "Therefore the listener isn't called");
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ oDPn.insertNewByIndex(1);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log ) {
+ log.println("disposing Impress document");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ //Change to Outline view
+ try {
+ String aSlotID = "slot:27010";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface( XDispatchProvider.class, oObj );
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().
+ createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch( aURL,"",0);
+ if( xDispatcher != null )
+ xDispatcher.dispatch( aURL, null );
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't change mode");
+ }
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/AccessibleSlideView.java b/qadevOOo/tests/java/mod/_sd/AccessibleSlideView.java
new file mode 100644
index 000000000..ea42567af
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/AccessibleSlideView.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+public class AccessibleSlideView extends TestCase {
+
+ XModel aModel = null;
+ XComponent xImpressDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) {
+ XInterface oObj = null;
+
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, aModel);
+ XDrawPages oDPn = oDPS.getDrawPages();
+
+ oDPn.insertNewByIndex(0);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (
+ aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT);
+
+ System.out.println("ImplementationName "+utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //util.dbg.printInterfaces(oObj);
+ log.println("Implementationname: "+util.utils.getImplName(oObj));
+
+ final XDrawPages DrawPages = oDPn;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ DrawPages.insertNewByIndex(2);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log ) {
+ log.println("disposing impress document");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+
+ //Change to Outline view
+ try {
+ String aSlotID = "slot:27011";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface( XDispatchProvider.class,
+ aModel.getCurrentController() );
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().
+ createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch( aURL,"",0);
+ if( xDispatcher != null )
+ xDispatcher.dispatch( aURL, null );
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't change mode");
+ }
+
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java b/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java
new file mode 100644
index 000000000..9a1fb6d70
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java
@@ -0,0 +1,248 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class DrawController_DrawView extends TestCase {
+ static XComponent xDrawDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating
+ * of the documents makes short
+ * wait to allow frames to be loaded. Retrieves
+ * the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page. Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._DrawingDocumentDrawView}(the draw page which will
+ * be new current page) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating two impress documents" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xSecondDrawDoc = SOF.createDrawDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ XShape shape2 = SOF.createShape(
+ xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ XShape shape3 = SOF.createShape(
+ xDrawDoc, 3000, 500, 5000, 1000, "Line");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ XController aController2 = aModel2.getCurrentController();
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class, aController2);
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+ Object oShapeCol1 = null;
+ Object oShapeCol2 = null;
+ oShapeCol1 = Param.getMSF().
+ createInstance("com.sun.star.drawing.ShapeCollection");
+ oShapeCol2 = Param.getMSF().
+ createInstance("com.sun.star.drawing.ShapeCollection");
+
+ XShapes xShapes1 = UnoRuntime.queryInterface(XShapes.class, oShapeCol1);
+ XShapes xShapes2 = UnoRuntime.queryInterface(XShapes.class, oShapeCol2);
+ xShapes1.add(shape2);
+ xShapes1.add(shape3);
+ xShapes2.add(shape1);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oDrawPage, oShapeCol1, oShapeCol2});
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = aController2.getFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel2);
+
+ tEnv.addObjRelation("SecondController", aController2);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27009");
+
+ //Adding relations for DrawingDocumentDrawView
+ XDrawPage new_page = the_pages.insertNewByIndex(1);
+ tEnv.addObjRelation("DrawPage", new_page);
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xDrawDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xDrawDoc);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/DrawController_HandoutView.java b/qadevOOo/tests/java/mod/_sd/DrawController_HandoutView.java
new file mode 100644
index 000000000..eb3144e21
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/DrawController_HandoutView.java
@@ -0,0 +1,276 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* The view was switched to <b>HandoutMode</b>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class DrawController_HandoutView extends TestCase {
+ static XDesktop xDesktop;
+ static XComponent xDrawDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service
+ * <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating
+ * of the documents makes short
+ * wait to allow frames to be loaded. Retrieves
+ * the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page.
+ * Switch to the <b>HandoutMode</b>.
+ * Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._DrawingDocumentDrawView}(the draw page which will
+ * be new current page) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory xMSF = Param.getMSF();
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMSF);
+
+ log.println( "creating two impress documents" );
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ for (int i = 1; i < 10; i++){
+ the_pages.insertNewByIndex(i);
+ }
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ XShape shape2 = SOF.createShape(
+ xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ XShape shape3 = SOF.createShape(
+ xDrawDoc, 3000, 500, 5000, 1000, "Line");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ log.println("switch to HandoutView...");
+ utils.dispatchURL(xMSF, xDrawDoc, ".uno:HandoutMode");
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ log.println("bring first document to front...");
+ DesktopTools.bringWindowToFront(aModel);
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+ Object oShapeCol1 = null;
+ Object oShapeCol2 = null;
+ oShapeCol1 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+ oShapeCol2 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+
+ XShapes xShapes1 = UnoRuntime.queryInterface(XShapes.class, oShapeCol1);
+ XShapes xShapes2 = UnoRuntime.queryInterface(XShapes.class, oShapeCol2);
+ xShapes1.add(shape2);
+ xShapes1.add(shape3);
+ xShapes2.add(shape1);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oDrawPage, oShapeCol1, oShapeCol2});
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27009");
+
+ //Adding relations for DrawingDocumentDrawView
+ XDrawPage new_page = the_pages.insertNewByIndex(1);
+ tEnv.addObjRelation("DrawPage", new_page);
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xDrawDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xDrawDoc);
+
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/DrawController_NotesView.java b/qadevOOo/tests/java/mod/_sd/DrawController_NotesView.java
new file mode 100644
index 000000000..36b57debb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/DrawController_NotesView.java
@@ -0,0 +1,273 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* The view was switched to <b>NotesMode</b>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class DrawController_NotesView extends TestCase {
+ static XDesktop xDesktop;
+ static XComponent xDrawDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service
+ * <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating
+ * of the documents makes short
+ * wait to allow frames to be loaded. Retrieves
+ * the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page.
+ * Switch to the <b>NotesMode</b>.
+ * Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._DrawingDocumentDrawView}(the draw page which will
+ * be new current page) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory xMSF = Param.getMSF();
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMSF);
+
+ log.println( "creating two impress documents" );
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ XShape shape2 = SOF.createShape(
+ xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ XShape shape3 = SOF.createShape(
+ xDrawDoc, 3000, 500, 5000, 1000, "Line");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ log.println("switch to HandoutView...");
+ utils.dispatchURL(xMSF, xDrawDoc, ".uno:NotesMode");
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ log.println("bring first document to front...");
+ DesktopTools.bringWindowToFront(aModel);
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+ Object oShapeCol1 = null;
+ Object oShapeCol2 = null;
+ oShapeCol1 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+ oShapeCol2 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+
+ XShapes xShapes1 = UnoRuntime.queryInterface(XShapes.class, oShapeCol1);
+ XShapes xShapes2 = UnoRuntime.queryInterface(XShapes.class, oShapeCol2);
+ xShapes1.add(shape2);
+ xShapes1.add(shape3);
+ xShapes2.add(shape1);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oDrawPage, oShapeCol1, oShapeCol2});
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27009");
+
+ //Adding relations for DrawingDocumentDrawView
+ XDrawPage new_page = the_pages.insertNewByIndex(1);
+ tEnv.addObjRelation("DrawPage", new_page);
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xDrawDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xDrawDoc);
+
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/DrawController_OutlineView.java b/qadevOOo/tests/java/mod/_sd/DrawController_OutlineView.java
new file mode 100644
index 000000000..85bea8bc5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/DrawController_OutlineView.java
@@ -0,0 +1,273 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* The view was switched to <b>OutlineMode</b>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class DrawController_OutlineView extends TestCase {
+ static XDesktop xDesktop;
+ static XComponent xDrawDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service
+ * <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating
+ * of the documents makes short
+ * wait to allow frames to be loaded. Retrieves
+ * the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page.
+ * Switch to the <b>OutlineMode</b>.
+ * Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._DrawingDocumentDrawView}(the draw page which will
+ * be new current page) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory xMSF = Param.getMSF();
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMSF);
+
+ log.println( "creating two impress documents" );
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ XShape shape2 = SOF.createShape(
+ xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ XShape shape3 = SOF.createShape(
+ xDrawDoc, 3000, 500, 5000, 1000, "Line");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ log.println("switch to HandoutView...");
+ utils.dispatchURL(xMSF, xDrawDoc, ".uno:OutlineMode");
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ log.println("bring first document to front...");
+ DesktopTools.bringWindowToFront(aModel);
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+ Object oShapeCol1 = null;
+ Object oShapeCol2 = null;
+ oShapeCol1 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+ oShapeCol2 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+
+ XShapes xShapes1 = UnoRuntime.queryInterface(XShapes.class, oShapeCol1);
+ XShapes xShapes2 = UnoRuntime.queryInterface(XShapes.class, oShapeCol2);
+ xShapes1.add(shape2);
+ xShapes1.add(shape3);
+ xShapes2.add(shape1);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oDrawPage, oShapeCol1, oShapeCol2});
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27009");
+
+ //Adding relations for DrawingDocumentDrawView
+ XDrawPage new_page = the_pages.insertNewByIndex(1);
+ tEnv.addObjRelation("DrawPage", new_page);
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xDrawDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xDrawDoc);
+
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/DrawController_PresentationView.java b/qadevOOo/tests/java/mod/_sd/DrawController_PresentationView.java
new file mode 100644
index 000000000..07609f22a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/DrawController_PresentationView.java
@@ -0,0 +1,273 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* The view was switched to <b>DiaMode</b>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class DrawController_PresentationView extends TestCase {
+ static XDesktop xDesktop;
+ static XComponent xDrawDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service
+ * <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating
+ * of the documents makes short
+ * wait to allow frames to be loaded. Retrieves
+ * the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page.
+ * Switch to the <b>DiaMode</b>.
+ * Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._DrawingDocumentDrawView}(the draw page which will
+ * be new current page) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory xMSF = Param.getMSF();
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMSF);
+
+ log.println( "creating two impress documents" );
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ XShape shape2 = SOF.createShape(
+ xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ XShape shape3 = SOF.createShape(
+ xDrawDoc, 3000, 500, 5000, 1000, "Line");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ log.println("switch to PresentationView...");
+ utils.dispatchURL(xMSF, xDrawDoc, ".uno:DiaMode");
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ log.println("bring first document to front...");
+ DesktopTools.bringWindowToFront(aModel);
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+ Object oShapeCol1 = null;
+ Object oShapeCol2 = null;
+ oShapeCol1 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+ oShapeCol2 = xMSF.
+ createInstance("com.sun.star.drawing.ShapeCollection");
+
+ XShapes xShapes1 = UnoRuntime.queryInterface(XShapes.class, oShapeCol1);
+ XShapes xShapes2 = UnoRuntime.queryInterface(XShapes.class, oShapeCol2);
+ xShapes1.add(shape2);
+ xShapes1.add(shape3);
+ xShapes2.add(shape1);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oDrawPage, oShapeCol1, oShapeCol2});
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27009");
+
+ //Adding relations for DrawingDocumentDrawView
+ XDrawPage new_page = the_pages.insertNewByIndex(1);
+ tEnv.addObjRelation("DrawPage", new_page);
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xDrawDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xDrawDoc);
+
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdDocLinkTargets.java b/qadevOOo/tests/java/mod/_sd/SdDocLinkTargets.java
new file mode 100644
index 000000000..e3ca75539
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdDocLinkTargets.java
@@ -0,0 +1,96 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XLinkTargetSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.document.LinkTargets</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* </ul>
+* @see com.sun.star.document.LinkTargets
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.container.XElementAccess
+* @see ifc.container._XNameAccess
+* @see ifc.container._XElementAccess
+*/
+public class SdDocLinkTargets extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the possible links to children of the drawing document using
+ * the interface <code>XLinkTargetSupplier</code>. The retrieved collection
+ * is the instance of the service <code>com.sun.star.document.LinkTargets</code>.
+ * @see com.sun.star.document.XLinkTargetSupplier
+ * @see com.sun.star.document.LinkTargets
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws StatusException {
+
+ // get the Links here
+ log.println( "getting Links" );
+ XLinkTargetSupplier oLTS = UnoRuntime.queryInterface(XLinkTargetSupplier.class,xDrawDoc);
+ XInterface oObj = oLTS.getLinks();
+
+ log.println( "creating a new environment for drawpage object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdDocLinkTargets
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdDrawPage.java b/qadevOOo/tests/java/mod/_sd/SdDrawPage.java
new file mode 100644
index 000000000..bcf8f9630
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdDrawPage.java
@@ -0,0 +1,186 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XMasterPagesSupplier;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawPage</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::GenericDrawPage</code></li>
+* <li> <code>com::sun::star::drawing::XShapeBinder</code></li>
+* <li> <code>com::sun::star::drawing::XShapeGrouper</code></li>
+* <li> <code>com::sun::star::drawing::XShapes</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::drawing::XMasterPageTarget</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::drawing::XShapeCombiner</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawPage
+* @see com.sun.star.drawing.GenericDrawPage
+* @see com.sun.star.drawing.XShapeBinder
+* @see com.sun.star.drawing.XShapeGrouper
+* @see com.sun.star.drawing.XShapes
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.drawing.XMasterPageTarget
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.drawing.XShapeCombiner
+* @see ifc.drawing._GenericDrawPage
+* @see ifc.drawing._XShapeBinder
+* @see ifc.drawing._XShapeGrouper
+* @see ifc.drawing._XShapes
+* @see ifc.lang._XServiceInfo
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.drawing._XMasterPageTarget
+* @see ifc.container._XNamed
+* @see ifc.drawing._XShapeCombiner
+*/
+public class SdDrawPage extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the draw pages from the drawing document using
+ * the interface <code>XDrawPagesSupplier</code> and take one of them.
+ * The retrieved draw page is the instance of the service
+ * <code>com.sun.star.drawing.DrawPage</code>. Inserts some shapes
+ * into the draw page. Obtains the MasterPages collection. Creates
+ * the rectangle shape.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Shape'</code> for
+ * {@link ifc.drawing._XShapes}( the created rectangle shape )</li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._XShapeBinder}, {@link ifc.drawing._XShapeGrouper},
+ * {@link ifc.drawing._XShapeCombiner}( the retrieved draw page )</li>
+ * <li> <code>'MasterPageSupplier'</code> for
+ * {@link ifc.drawing._XMasterPageTarget}(the obtained master pages
+ * collection)</li>
+ * </ul>
+ * @see com.sun.star.drawing.DrawPage
+ * @see com.sun.star.drawing.XDrawPagesSupplier
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,oDPn);
+ oObj = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface
+ (XShapes.class,oObj);
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 2000, 1500, 1000, 1000, "Line"));
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse"));
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle"));
+
+ //get the XMasterPagesSupplier
+ log.println("get XMasterPagesSupplier");
+ XMasterPagesSupplier oMPS = UnoRuntime.queryInterface(XMasterPagesSupplier.class, xDrawDoc);
+ XDrawPages oGroup = oMPS.getMasterPages();
+
+ log.println( "creating a new environment for drawpage object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XControlShape aShape = FormTools.createControlShape(
+ xDrawDoc,3000,4500,15000,10000,"CommandButton");
+
+ oShapes.add(aShape);
+
+ ShapeDsc sDsc = new ShapeDsc(5000, 3500, 7500, 10000, "Rectangle");
+ log.println( "adding Shape as mod relation to environment" );
+ tEnv.addObjRelation("Shape", new InstCreator( xDrawDoc, sDsc));
+ tEnv.addObjRelation("DrawPage", oObj);
+ tEnv.addObjRelation("MasterPageSupplier",oGroup);
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdDrawPage
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdDrawPagesAccess.java b/qadevOOo/tests/java/mod/_sd/SdDrawPagesAccess.java
new file mode 100644
index 000000000..20e69e34b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdDrawPagesAccess.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawPages</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::drawing::XDrawPages</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawPages
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.drawing.XDrawPages
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.drawing._XDrawPages
+*/
+public class SdDrawPagesAccess extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the draw pages from the drawing document using
+ * the interface <code>XDrawPagesSupplier</code>. Inserts two new draw pages.
+ * The retrieved collection is the instance of the service
+ * <code>com.sun.star.drawing.DrawPages</code>.
+ * @see com.sun.star.drawing.DrawPages
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws StatusException {
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpages" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages oDP = oDPS.getDrawPages();
+ oDP.insertNewByIndex(1);
+ oDP.insertNewByIndex(2);
+ XInterface oObj = oDP;
+
+ log.println( "creating a new environment for drawpage object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+
+} // finish class SdDrawPagesAccess
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdGenericDrawPage.java b/qadevOOo/tests/java/mod/_sd/SdGenericDrawPage.java
new file mode 100644
index 000000000..6190b3693
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdGenericDrawPage.java
@@ -0,0 +1,169 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.GenericDrawPage</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::GenericDrawPage</code></li>
+* <li> <code>com::sun::star::drawing::XShapeBinder</code></li>
+* <li> <code>com::sun::star::drawing::XShapeGrouper</code></li>
+* <li> <code>com::sun::star::drawing::XShapes</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::drawing::XShapeCombiner</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* </ul>
+* @see com.sun.star.drawing.GenericDrawPage
+* @see com.sun.star.drawing.XShapeBinder
+* @see com.sun.star.drawing.XShapeGrouper
+* @see com.sun.star.drawing.XShapes
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.drawing.XShapeCombiner
+* @see com.sun.star.container.XNamed
+* @see ifc.drawing._GenericDrawPage
+* @see ifc.drawing._XShapeBinder
+* @see ifc.drawing._XShapeGrouper
+* @see ifc.drawing._XShapes
+* @see ifc.lang._XServiceInfo
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.drawing._XShapeCombiner
+* @see ifc.container._XNamed
+*/
+public class SdGenericDrawPage extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the draw pages from the drawing document using
+ * the interface <code>XDrawPagesSupplier</code> and take one of them.
+ * The retrieved draw page is the instance of the service
+ * <code>com.sun.star.drawing.DrawPage</code>. Inserts some shapes
+ * into the draw page. Creates the rectangle shape.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Shape'</code> for
+ * {@link ifc.drawing._XShapes}( the created rectangle shape )</li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._XShapeBinder}, {@link ifc.drawing._XShapeGrouper},
+ * {@link ifc.drawing._XShapeCombiner}( the retrieved draw page )</li>
+ * </ul>
+ * @see com.sun.star.drawing.DrawPage
+ * @see com.sun.star.drawing.XDrawPagesSupplier
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShapes oShapes = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class,xDrawDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface
+ (XIndexAccess.class,oDPn);
+ oObj = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ oShapes = UnoRuntime.queryInterface(XShapes.class,oObj);
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 2000, 1500, 1000, 1000, "Line"));
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse"));
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle"));
+
+ log.println( "creating a new environment for drawpage object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ ShapeDsc sDsc = new ShapeDsc(5000, 3500, 7500, 10000, "Rectangle");
+ log.println( "adding Shape as mod relation to environment" );
+ tEnv.addObjRelation("Shape", new InstCreator( xDrawDoc, sDsc));
+
+ // adding relation for XShapeGrouper
+ tEnv.addObjRelation("DrawPage", oObj);
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+
+} // finish class SdGenericDrawPage
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdLayer.java b/qadevOOo/tests/java/mod/_sd/SdLayer.java
new file mode 100644
index 000000000..1c1019abc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdLayer.java
@@ -0,0 +1,111 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.drawing.XLayer;
+import com.sun.star.drawing.XLayerManager;
+import com.sun.star.drawing.XLayerSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.Layer</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::Layer</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.drawing.Layer
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.drawing._Layer
+* @see ifc.beans._XPropertySet
+*/
+public class SdLayer extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the layer manager from the document and takes one of the layer.
+ * The obtained layer is the instance of the service
+ * <code>com.sun.star.drawing.Layer</code>.
+ * @see com.sun.star.drawing.Layer
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XLayerManager oLM = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // get the drawpage of drawing here
+ log.println( "getting LayerManager" );
+ XLayerSupplier oLS = UnoRuntime.queryInterface(XLayerSupplier.class, xDrawDoc);
+ XNameAccess oNA = oLS.getLayerManager();
+ oLM = UnoRuntime.queryInterface(XLayerManager.class, oNA);
+ XIndexAccess oIA = UnoRuntime.queryInterface(XIndexAccess.class,oLM);
+ log.println( "getting LayerManager" );
+ oObj = (XLayer) AnyConverter.toObject(
+ new Type(XLayer.class),oIA.getByIndex(0));
+
+ log.println( "creating a new environment for drawpage object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdLayer
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdLayerManager.java b/qadevOOo/tests/java/mod/_sd/SdLayerManager.java
new file mode 100644
index 000000000..8d42ce8a9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdLayerManager.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XLayerSupplier;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.LayerManager</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::XLayerManager</code></li>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* </ul>
+* @see com.sun.star.drawing.LayerManager
+* @see com.sun.star.drawing.XLayerManager
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see ifc.drawing._XLayerManager
+* @see ifc.container._XNameAccess
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+*/
+public class SdLayerManager extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the layer manager using the interface <code>XLayerSupplier</code>.
+ * The manager is the instance of the service
+ * <code>com.sun.star.drawing.LayerManager</code>. Creates a rectangle shape.
+ * Retrieves the collection of the draw pages and take one of them.
+ * <ul>
+ * <li> <code>'Shape'</code> for
+ * {@link ifc.drawing._XLayerManager}(the created shape)</li>
+ * <li> <code>'Shapes'</code> for
+ * {@link ifc.drawing._XLayerManager}(the shape collection of
+ * the retrieved draw page)</li>
+ * </ul>
+ * @see com.sun.star.drawing.XLayerSupplier
+ * @see com.sun.star.drawing.LayerManager
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+ XLayerSupplier oLS = UnoRuntime.queryInterface(XLayerSupplier.class, xDrawDoc);
+ XInterface oObj = oLS.getLayerManager();
+
+ log.println( "creating a new environment for XLayerManager object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ ShapeDsc sDsc = new ShapeDsc(5000, 3500, 7500, 10000, "Rectangle");
+ log.println( "adding Shape as mod relation to environment" );
+ tEnv.addObjRelation("Shape", new InstCreator(xDrawDoc, sDsc));
+
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class,xDrawDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,oDPn);
+
+ XDrawPage oDP = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDP);
+
+ log.println( "adding Shapes as mod relation to environment" );
+ tEnv.addObjRelation("Shapes", oShapes);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SdLayerManager
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdMasterPage.java b/qadevOOo/tests/java/mod/_sd/SdMasterPage.java
new file mode 100644
index 000000000..d23c1d5d0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdMasterPage.java
@@ -0,0 +1,165 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XMasterPagesSupplier;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.MasterPage</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::GenericDrawPage</code></li>
+* <li> <code>com::sun::star::drawing::XShapeBinder</code></li>
+* <li> <code>com::sun::star::drawing::XShapeGrouper</code></li>
+* <li> <code>com::sun::star::drawing::XShapes</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::drawing::XShapeCombiner</code></li>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* </ul>
+* @see com.sun.star.drawing.MasterPage
+* @see com.sun.star.drawing.GenericDrawPage
+* @see com.sun.star.drawing.XShapeBinder
+* @see com.sun.star.drawing.XShapeGrouper
+* @see com.sun.star.drawing.XShapes
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.drawing.XShapeCombiner
+* @see com.sun.star.container.XNamed
+* @see ifc.drawing._GenericDrawPage
+* @see ifc.drawing._XShapeBinder
+* @see ifc.drawing._XShapeGrouper
+* @see ifc.drawing._XShapes
+* @see ifc.lang._XServiceInfo
+* @see ifc.beans._XPropertySet
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.drawing._XShapeCombiner
+* @see ifc.container._XNamed
+*/
+public class SdMasterPage extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the master pages from the document using the
+ * interface <code>XMasterPagesSupplier</code> and takes
+ * one of them. Inserts some shapes into the document. Creates a rectangle
+ * shape. The retrieved master page is the instance of the service
+ * <code>com.sun.star.drawing.MasterPage</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._XShapeBinder}, {@link ifc.drawing._XShapeGrouper},
+ * {@link ifc.drawing._XShapeCombiner}( the draw page of the retrieved
+ * master page)</li>
+ * <li> <code>'Shape'</code> for
+ * {@link ifc.drawing._XShapes}(the created rectangle shape)</li>
+ * </ul>
+ * @see com.sun.star.drawing.XMasterPagesSupplier
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get the MasterPages here
+ log.println( "getting MasterPages" );
+ XMasterPagesSupplier oMPS = UnoRuntime.queryInterface(XMasterPagesSupplier.class, xDrawDoc);
+ XDrawPages oMPn = oMPS.getMasterPages();
+ XIndexAccess oMPi = UnoRuntime.queryInterface(XIndexAccess.class, oMPn);
+
+ log.println( "getting MasterPage" );
+ XInterface oObj = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oMPi.getByIndex(0));
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ //put something on the masterpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oObj);
+ oShapes.add(SOF.createShape(xDrawDoc, 2000, 1500, 1000, 1000, "Line"));
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse"));
+ oShapes.add(SOF.createShape
+ (xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle"));
+
+ log.println( "creating a new environment for MasterPage object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding DrawPage as mod relation to environment" );
+ tEnv.addObjRelation("DrawPage", oObj);
+
+ ShapeDsc sDsc = new ShapeDsc(5000, 3500, 7500, 10000, "Rectangle");
+ log.println( "adding Shape as mod relation to environment" );
+ tEnv.addObjRelation("Shape", new InstCreator( xDrawDoc, sDsc));
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdMasterPage
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdMasterPagesAccess.java b/qadevOOo/tests/java/mod/_sd/SdMasterPagesAccess.java
new file mode 100644
index 000000000..647762087
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdMasterPagesAccess.java
@@ -0,0 +1,107 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XMasterPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.MasterPages</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::drawing::XDrawPages</code></li>
+* </ul>
+* @see com.sun.star.drawing.MasterPages
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.drawing.XDrawPages
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.drawing._XDrawPages
+*/
+public class SdMasterPagesAccess extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the master pages from the document using the
+ * interface <code>XMasterPagesSupplier</code>. Inserts two new draw pages.
+ * The retrieved collection is the instance of the service
+ * <code>com.sun.star.drawing.MasterPages</code>.
+ * @see com.sun.star.drawing.XMasterPagesSupplier
+ * @see com.sun.star.drawing.MasterPages
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws StatusException {
+
+ log.println( "creating a test environment" );
+
+ // get the MasterPages here
+ log.println( "getting MasterPages" );
+ XMasterPagesSupplier oMPS = UnoRuntime.queryInterface( XMasterPagesSupplier.class, xDrawDoc);
+ XDrawPages oMP = oMPS.getMasterPages();
+ log.println( "insert MasterPages" );
+ oMP.insertNewByIndex(1);
+ oMP.insertNewByIndex(2);
+ XInterface oObj = oMP;
+
+ log.println( "creating a new environment for MasterPagesAccess object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdMasterPagesAccess
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdPageLinkTargets.java b/qadevOOo/tests/java/mod/_sd/SdPageLinkTargets.java
new file mode 100644
index 000000000..7d314645e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdPageLinkTargets.java
@@ -0,0 +1,121 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XLinkTargetSupplier;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.document.LinkTargets</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* </ul>
+* @see com.sun.star.document.LinkTargets
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.container.XElementAccess
+* @see ifc.container._XNameAccess
+* @see ifc.container._XElementAccess
+*/
+public class SdPageLinkTargets extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of draw pages and take one of them.
+ * Obtains the collection of possible links using the interface
+ * <code>XLinkTargetSupplier</code>. The obtained collection is
+ * the instance of the service <code>com.sun.star.document.LinkTargets</code>.
+ * Inserts some shapes into the document.
+ * @see com.sun.star.document.XLinkTargetSupplier
+ * @see com.sun.star.document.LinkTargets
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+ XDrawPage the_page = DrawTools.getDrawPage(xDrawDoc, 0);
+ XLinkTargetSupplier oLTS = UnoRuntime.queryInterface(XLinkTargetSupplier.class, the_page);
+ XInterface oObj = oLTS.getLinks();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class,the_page);
+ XShape oShape =
+ SOF.createShape(xDrawDoc, 15000, 13500, 5000, 5000, "OLE2");
+ oShapes.add(oShape);
+
+ XPropertySet shape_props = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+
+ log.println("Inserting a Chart");
+
+ shape_props.
+ setPropertyValue("CLSID","12DCAE26-281F-416F-a234-c3086127382e");
+
+ log.println( "creating a new environment for LinkTargets object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdPageLinkTargets
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdUnoDrawView.java b/qadevOOo/tests/java/mod/_sd/SdUnoDrawView.java
new file mode 100644
index 000000000..fc4bd27c1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdUnoDrawView.java
@@ -0,0 +1,249 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class SdUnoDrawView extends TestCase {
+ static XDesktop xDesktop;
+ static XComponent xDrawDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service
+ * <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing draw documents");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating
+ * of the documents makes short
+ * wait to allow frames to be loaded. Retrieves
+ * the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page. Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._DrawingDocumentDrawView}(the draw page which will
+ * be new current page) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ public lib.TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating two draw documents" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xSecondDrawDoc = SOF.createDrawDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ XShape shape2 = SOF.createShape(
+ xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ XShape shape3 = SOF.createShape(
+ xDrawDoc, 3000, 500, 5000, 1000, "Line");
+ oShapes.add(shape1);
+ oShapes.add(shape2);
+ oShapes.add(shape3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ shape1, shape2, shape3});
+
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27009");
+
+ //Adding relations for DrawingDocumentDrawView
+ XDrawPage new_page = the_pages.insertNewByIndex(1);
+ tEnv.addObjRelation("DrawPage", new_page);
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xDrawDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xDrawDoc);
+
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+} // finish class SdUnoDrawView
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdUnoOutlineView.java b/qadevOOo/tests/java/mod/_sd/SdUnoOutlineView.java
new file mode 100644
index 000000000..ee4aa536d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdUnoOutlineView.java
@@ -0,0 +1,209 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.present.OutlineView</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::presentation::OutlineView</code></li>
+* <li> <code>com::sun::star::frame::XDispatchProvider</code></li>
+* <li> <code>com::sun::star::awt::XWindow</code></li>
+* </ul>
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.presentation.OutlineView
+* @see com.sun.star.awt.XWindow
+* @see com.sun.star.frame.XDispatchProvider
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.awt._XWindow
+* @see ifc.presentation._OutlineView
+* @see ifc.frame._XDispatchProvider
+*/
+public class SdUnoOutlineView extends TestCase {
+ XDesktop xDesktop;
+ XComponent xImpressDoc;
+ XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating of the documents makes short
+ * wait to allow frames to be loaded. Retrieves the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page. Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service <code>com.sun.star.presentation.OutlineView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xImpressDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ //Change to Outline view
+ try {
+ String aSlotID = "slot:27010";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface( XDispatchProvider.class, oObj );
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch( aURL,"",0);
+ if( xDispatcher != null )
+ xDispatcher.dispatch( aURL, null );
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't change mode");
+ }
+
+ log.println( "creating a second impress document" );
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ oObj = aModel.getCurrentController();
+
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow", anotherWindow);
+ }
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27069");
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+} // finish class SdUnoOutlineView
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdUnoPresView.java b/qadevOOo/tests/java/mod/_sd/SdUnoPresView.java
new file mode 100644
index 000000000..f8860c876
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdUnoPresView.java
@@ -0,0 +1,249 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XModifiable;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.DrawingDocumentDrawView</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::drawing::DrawingDocumentDrawView</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+* <li> <code>com::sun::star::frame::XController</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
+* <li> <code>com::sun::star::drawing::XDrawView</code></li>
+* </ul>
+* @see com.sun.star.drawing.DrawingDocumentDrawView
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.lang.XServiceInfo
+* @see com.sun.star.frame.XController
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.view.XSelectionSupplier
+* @see com.sun.star.drawing.XDrawView
+* @see ifc.drawing._DrawingDocumentDrawView
+* @see ifc.lang._XComponent
+* @see ifc.lang._XServiceInfo
+* @see ifc.frame._XController
+* @see ifc.beans._XPropertySet
+* @see ifc.view._XSelectionSupplier
+* @see ifc.drawing._XDrawView
+*/
+public class SdUnoPresView extends TestCase {
+ static XDesktop xDesktop;
+ static XComponent xImpressDoc;
+ static XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a Test environment for the interfaces to be tested.
+ * Creates two impress documents. After creating of the documents makes short
+ * wait to allow frames to be loaded. Retrieves the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page. Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service
+ * <code>com.sun.star.drawing.DrawingDocumentDrawView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'First'</code> for
+ * {@link ifc.view._XSelectionSupplier}(the first created shape) </li>
+ * <li> <code>'Second'</code> for
+ * {@link ifc.view._XSelectionSupplier}(the second created shape) </li>
+ * <li> <code>'Pages'</code> for
+ * {@link ifc.drawing._XDrawView}(the retrieved collection of the draw
+ * pages) </li>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ * @see com.sun.star.drawing.DrawingDocumentDrawView
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating two impress documents" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xImpressDoc);
+ XDrawPages the_pages = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class,the_pages);
+
+ XDrawPage oDrawPage = null;
+ XDrawPage secondDrawPage = null;
+ oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+ the_pages.insertNewByIndex(0);
+ the_pages.insertNewByIndex(0);
+ the_pages.insertNewByIndex(0);
+ the_pages.insertNewByIndex(0);
+ secondDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(3));
+
+ //put something on the drawpage
+ log.println( "inserting some Shapes" );
+ XShapes oShapes = UnoRuntime.queryInterface(XShapes.class, oDrawPage);
+ XShape shape1 = SOF.createShape(
+ xImpressDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ oShapes.add(shape1);
+
+ oShapes = UnoRuntime.queryInterface(XShapes.class, secondDrawPage);
+ shape1 = SOF.createShape(
+ xImpressDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ oShapes.add(shape1);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ log.println( "creating a new environment for impress view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow",anotherWindow);
+ }
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oDrawPage, secondDrawPage});
+
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+ if (indAc1 == null || indAc2 == null) return -1;
+ if (indAc1.getCount() == indAc2.getCount()) {
+ return 0;
+ }
+ return 1;
+ }});
+
+ tEnv.addObjRelation("FirstPage", oDrawPage);
+ tEnv.addObjRelation("SecondPage", secondDrawPage);
+
+ tEnv.addObjRelation("Pages", the_pages);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ aModel = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel);
+
+ XController secondController = aModel.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27010");
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ XModifiable modify = UnoRuntime.queryInterface(XModifiable.class,xImpressDoc);
+
+ tEnv.addObjRelation("Modifiable",modify);
+
+
+ tEnv.addObjRelation("XComponent.DisposeThis", xImpressDoc);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+} // finish class SdUnoDrawView
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdUnoSlideView.java b/qadevOOo/tests/java/mod/_sd/SdUnoSlideView.java
new file mode 100644
index 000000000..25016309a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdUnoSlideView.java
@@ -0,0 +1,189 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import com.sun.star.drawing.XDrawPages;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+public class SdUnoSlideView extends TestCase {
+ XDesktop xDesktop;
+ XComponent xImpressDoc;
+ XComponent xSecondDrawDoc;
+
+ /**
+ * Creates the instance of the service <code>com.sun.star.frame.Desktop</code>.
+ * @see com.sun.star.frame.Desktop
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress documents.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing impress documents");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ util.DesktopTools.closeDoc(xSecondDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates two impress documents. After creating of the documents makes short
+ * wait to allow frames to be loaded. Retrieves the collection of the draw pages
+ * from the first document and takes one of them. Inserts some shapes to the
+ * retrieved draw page. Obtains a current controller from the first document
+ * using the interface <code>XModel</code>. The obtained controller is the
+ * instance of the service <code>com.sun.star.presentation.OutlineView</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FirstModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the first created document) </li>
+ * <li> <code>'Frame'</code> for
+ * {@link ifc.frame._XController}(the frame of the created
+ * document) </li>
+ * <li> <code>'SecondModel'</code> for
+ * {@link ifc.frame._XController}(the interface <code>XModel</code> of
+ * the second created document) </li>
+ * <li> <code>'SecondController'</code> for
+ * {@link ifc.frame._XController}(the current controller of the second
+ * created document) </li>
+ * </ul>
+ * @see com.sun.star.frame.XModel
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ XDrawPages xDP = null;
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+ xDP = DrawTools.getDrawPages(xImpressDoc);
+ xDP.insertNewByIndex(0);
+ xDP.insertNewByIndex(0);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+
+ XInterface oObj = aModel.getCurrentController();
+
+ //Change to Slide view
+ try {
+ String aSlotID = "slot:27011";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface( XDispatchProvider.class, oObj );
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch( aURL,"",0);
+ if( xDispatcher != null )
+ xDispatcher.dispatch( aURL, null );
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't change to slide view");
+ }
+
+ log.println( "creating a second impress document" );
+ xSecondDrawDoc = SOF.createImpressDoc(null);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel2 = UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+
+ XWindow anotherWindow = UnoRuntime.queryInterface(
+ XWindow.class,aModel2.getCurrentController());
+
+ oObj = aModel.getCurrentController();
+
+ log.println( "creating a new environment for slide view object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ if (anotherWindow != null) {
+ tEnv.addObjRelation("XWindow.AnotherWindow", anotherWindow);
+ }
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("FirstModel", aModel);
+
+ XFrame the_frame = xDesktop.getCurrentFrame();
+ tEnv.addObjRelation("Frame", the_frame);
+
+ //Adding ObjRelations for XController
+ tEnv.addObjRelation("SecondModel", aModel2);
+
+ XController secondController = aModel2.getCurrentController();
+ tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "slot:27069");
+
+ tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
+
+ //creating obj-relation for the XSelectionSupplier
+ try {
+ Object[] selections =
+ new Object[]{xDP.getByIndex(0),xDP.getByIndex(1),xDP.getByIndex(2)};
+ tEnv.addObjRelation("Selections", selections);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace(log);
+ }
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+
+} // finish class SdUnoOutlineView
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdXCustomPresentation.java b/qadevOOo/tests/java/mod/_sd/SdXCustomPresentation.java
new file mode 100644
index 000000000..a969aab0f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdXCustomPresentation.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XIndexContainer;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.presentation.XCustomPresentationSupplier;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.presentation.CustomPresentation</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNamed</code></li>
+* <li> <code>com::sun::star::container::XIndexContainer</code></li>
+* <li> <code>com::sun::star::container::XIndexAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XIndexReplace</code></li>
+* </ul>
+* @see com.sun.star.presentation.CustomPresentation
+* @see com.sun.star.container.XNamed
+* @see com.sun.star.container.XIndexContainer
+* @see com.sun.star.container.XIndexAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XIndexReplace
+* @see ifc.container._XNamed
+* @see ifc.container._XIndexContainer
+* @see ifc.container._XIndexAccess
+* @see ifc.container._XElementAccess
+* @see ifc.container._XIndexReplace
+*/
+public class SdXCustomPresentation extends TestCase {
+ XComponent xImpressDoc;
+
+ /**
+ * Creates Impress document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Disposes Impress document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xImpressDoc");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the CustomPresentation from the document
+ * using the interface <code>XCustomPresentationSupplier</code>. Creates and
+ * inserts new instance of the presentation to the collection. The created
+ * instance is the instance of the service
+ * <code>com.sun.star.presentation.CustomPresentation</code>. Obtains
+ * the collection of draw pages from the document and takes one of them.
+ * Inserts the obtained draw page to the created instance. Inserts some new
+ * draw pages.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XIndexContainerINDEX'</code> for
+ * {@link ifc.container._XIndexContainer}(the string representation of
+ * the zero)</li>
+ * <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> for
+ * {@link ifc.container._XIndexContainer}(the new inserted draw pages)</li>
+ * </ul>
+ * @see com.sun.star.presentation.XCustomPresentationSupplier
+ * @see com.sun.star.presentation.CustomPresentation
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+
+ log.println( "creating a test environment" );
+
+ log.println( "get presentation" );
+ XCustomPresentationSupplier oPS = UnoRuntime.queryInterface(
+ XCustomPresentationSupplier.class, xImpressDoc);
+ XInterface oObj = oPS.getCustomPresentations();
+
+ XSingleServiceFactory oSingleMSF = UnoRuntime.queryInterface(XSingleServiceFactory.class, oObj);
+
+ XInterface oInstance = (XInterface) oSingleMSF.createInstance();
+
+ XNameContainer aContainer = UnoRuntime.queryInterface(XNameContainer.class, oObj);
+
+ aContainer.insertByName("FirstPresentation", oInstance);
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xImpressDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class, oDPn);
+
+ XDrawPage oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ XIndexContainer aIContainer = UnoRuntime.queryInterface(XIndexContainer.class,oInstance);
+
+ aIContainer.insertByIndex(0, oDrawPage);
+
+ log.println( "creating a new environment for XPresentation object" );
+ TestEnvironment tEnv = new TestEnvironment( oInstance );
+
+ int THRCNT=1;
+ if ((String)Param.get("THRCNT") != null) {
+ THRCNT = Integer.parseInt((String)Param.get("THRCNT"));
+ }
+
+ // INDEX : _XNameContainer
+ log.println( "adding XIndexContainerINDEX as mod relation to environment" );
+ tEnv.addObjRelation("XIndexContainerINDEX", "0");
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println( "adding INSTANCEn as mod relation to environment" );
+ for (int n = 1; n < (2*THRCNT+1) ;n++ ) {
+ log.println( "adding INSTANCE" + n
+ +" as mod relation to environment" );
+ oDPn.insertNewByIndex(0);
+ oDrawPage = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+ tEnv.addObjRelation("INSTANCE" + n, oDrawPage);
+ }
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SdXCustomPresentation
diff --git a/qadevOOo/tests/java/mod/_sd/SdXCustomPresentationAccess.java b/qadevOOo/tests/java/mod/_sd/SdXCustomPresentationAccess.java
new file mode 100644
index 000000000..99dc87240
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdXCustomPresentationAccess.java
@@ -0,0 +1,169 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.presentation.XCustomPresentationSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.presentation.CustomPresentationAccess</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::container::XNameReplace</code></li>
+* <li> <code>com::sun::star::lang::XSingleServiceFactory</code></li>
+* <li> <code>com::sun::star::container::XNameContainer</code></li>
+* </ul>
+* @see com.sun.star.presentation.CustomPresentationAccess
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.container.XNameReplace
+* @see com.sun.star.lang.XSingleServiceFactory
+* @see com.sun.star.container.XNameContainer
+* @see ifc.container._XNameAccess
+* @see ifc.container._XElementAccess
+* @see ifc.container._XNameReplace
+* @see ifc.lang._XSingleServiceFactory
+* @see ifc.container._XNameContainer
+*/
+public class SdXCustomPresentationAccess extends TestCase {
+ XComponent xImpressDoc;
+
+ /**
+ * Creates Impress document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Disposes Impress document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xImpressDoc");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the CustomPresentation from the document
+ * using the interface <code>XCustomPresentationSupplier</code>.
+ * The retrieved collection is the instance of the service
+ * <code>com.sun.star.presentation.CustomPresentationAccess</code>.
+ * Creates two new instances of the custom presentation using the interface
+ * <code>XSingleServiceFactory</code>. Inserts one of them to the
+ * retrieved collection. Creates and inserts several instances of
+ * the presentation.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SecondInstance'</code> for
+ * {@link ifc.container._XNameContainer}(the second created instance
+ * of the custom presentation)</li>
+ * <li> <code>'XNameContainerINDEX'</code> for
+ * {@link ifc.container._XNameContainer}(the number of current running
+ * threads)</li>
+ * <li> <code>'INSTANCE1', ..., 'INSTANCEN'</code> for
+ * {@link ifc.container._XNameReplace},
+ * {@link ifc.container._XNameContainer}(the created instances of
+ * the presentation)</li>
+ * </ul>
+ * @see com.sun.star.presentation.XCustomPresentationSupplier
+ * @see com.sun.star.lang.XSingleServiceFactory
+ * @see com.sun.star.presentation.CustomPresentationAccess
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+
+ log.println( "creating a test environment" );
+
+ log.println( "get presentation" );
+ XCustomPresentationSupplier oPS = UnoRuntime.queryInterface(
+ XCustomPresentationSupplier.class, xImpressDoc);
+ XInterface oObj = oPS.getCustomPresentations();
+
+
+ XSingleServiceFactory oSingleMSF = UnoRuntime.queryInterface(XSingleServiceFactory.class, oObj);
+
+ XInterface oInstance = null;
+ XInterface oSecondInstance = null;
+ oInstance = (XInterface) oSingleMSF.createInstance();
+ oSecondInstance = (XInterface) oSingleMSF.createInstance();
+
+ XNameContainer aContainer = UnoRuntime.queryInterface(XNameContainer.class, oObj);
+
+ if (aContainer.hasByName("FirstPresentation")) {
+ aContainer.removeByName("FirstPresentation");
+ }
+
+ aContainer.insertByName("FirstPresentation",oInstance);
+
+ log.println( "creating a new environment for XPresentation object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding an instance for insertByName ('XNameContainer')
+ tEnv.addObjRelation("SecondInstance", oSecondInstance);
+
+ int THRCNT = 1;
+ if ((String)Param.get("THRCNT") != null) {
+ THRCNT = Integer.parseInt((String)Param.get("THRCNT"));
+ }
+
+ // INDEX : _XNameContainer
+ log.println( "adding XNameContainerINDEX as mod relation to environment" );
+ tEnv.addObjRelation("XNameContainerINDEX", Integer.valueOf(THRCNT).toString());
+
+ // INSTANCEn : _XNameContainer; _XNameReplace
+ log.println( "adding INSTANCEn as mod relation to environment" );
+ try {
+ for (int n = 1; n < (2*THRCNT+1) ;n++ ) {
+ log.println( "adding INSTANCE" + n
+ +" as mod relation to environment" );
+ oInstance = (XInterface) oSingleMSF.createInstance();
+ tEnv.addObjRelation("INSTANCE" + n, oInstance);
+ }
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't adding INSTANCEn: " + e);
+ }
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SdXCustomPresentationAccess
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdXImpressDocument.java b/qadevOOo/tests/java/mod/_sd/SdXImpressDocument.java
new file mode 100644
index 000000000..12519fc03
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdXImpressDocument.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sd;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.view.XSelectionSupplier;
+import ifc.view._XPrintJobBroadcaster;
+import java.io.File;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.presentation.PresentationDocument</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * <li> <code>com::sun::star::drawing::XMasterPagesSupplier</code></li>
+ * <li> <code>com::sun::star::presentation::XCustomPresentationSupplier</code></li>
+ * <li> <code>com::sun::star::document::XLinkTargetSupplier</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::drawing::XLayerSupplier</code></li>
+ * <li> <code>com::sun::star::presentation::XPresentationSupplier</code></li>
+ * <li> <code>com::sun::star::style::XStyleFamiliesSupplier</code></li>
+ * <li> <code>com::sun::star::drawing::DrawingDocument</code></li>
+ * <li> <code>com::sun::star::drawing::XDrawPageDuplicator</code></li>
+ * <li> <code>com::sun::star::drawing::XDrawPagesSupplier</code></li>
+ * </ul>
+ * @see com.sun.star.presentation.PresentationDocument
+ * @see com.sun.star.lang.XMultiServiceFactory
+ * @see com.sun.star.drawing.XMasterPagesSupplier
+ * @see com.sun.star.presentation.XCustomPresentationSupplier
+ * @see com.sun.star.document.XLinkTargetSupplier
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.drawing.XLayerSupplier
+ * @see com.sun.star.presentation.XPresentationSupplier
+ * @see com.sun.star.style.XStyleFamiliesSupplier
+ * @see com.sun.star.drawing.DrawingDocument
+ * @see com.sun.star.drawing.XDrawPageDuplicator
+ * @see com.sun.star.drawing.XDrawPagesSupplier
+ * @see ifc.lang._XMultiServiceFactory
+ * @see ifc.drawing._XMasterPagesSupplier
+ * @see ifc.presentation._XCustomPresentationSupplier
+ * @see ifc.document._XLinkTargetSupplier
+ * @see ifc.beans._XPropertySet
+ * @see ifc.drawing._XLayerSupplier
+ * @see ifc.presentation._XPresentationSupplier
+ * @see ifc.style._XStyleFamiliesSupplier
+ * @see ifc.drawing._DrawingDocument
+ * @see ifc.drawing._XDrawPageDuplicator
+ * @see ifc.drawing._XDrawPagesSupplier
+ */
+public class SdXImpressDocument extends TestCase {
+ XComponent xImpressDoc;
+ XComponent xImpressDoc2;
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes Impress document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xImpressDoc");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ util.DesktopTools.closeDoc(xImpressDoc2);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates new impress document that is the instance of the service
+ * <code>com.sun.star.presentation.PresentationDocument</code>.
+ * @see com.sun.star.presentation.PresentationDocument
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws Exception {
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating two impress documents");
+ xImpressDoc2 = SOF.createImpressDoc(null);
+ xImpressDoc = SOF.createImpressDoc(null);
+
+ XModel xModel1 = UnoRuntime.queryInterface(XModel.class,
+ xImpressDoc);
+ XModel xModel2 = UnoRuntime.queryInterface(XModel.class,
+ xImpressDoc2);
+
+ XController cont1 = xModel1.getCurrentController();
+ XController cont2 = xModel2.getCurrentController();
+
+ cont1.getFrame().setName("cont1");
+ cont2.getFrame().setName("cont2");
+
+ XSelectionSupplier sel = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, cont1);
+
+ XShape aShape = SOF.createShape(xImpressDoc, 5000, 3500, 7500, 5000,
+ "Rectangle");
+
+
+ XPropertySet xShapeProps = UnoRuntime.queryInterface(XPropertySet.class, aShape);
+
+ xShapeProps.setPropertyValue("FillStyle", com.sun.star.drawing.FillStyle.SOLID);
+ xShapeProps.setPropertyValue("FillTransparence", Integer.valueOf(50));
+
+ DrawTools.getDrawPage(xImpressDoc, 0).add(aShape);
+
+ log.println("creating a new environment for drawpage object");
+
+ TestEnvironment tEnv = new TestEnvironment(xImpressDoc);
+
+ log.println("adding Controller as ObjRelation for XModel");
+ tEnv.addObjRelation("CONT2", cont2);
+
+ log.println("Adding SelectionSupplier and Shape to select for XModel");
+ tEnv.addObjRelation("SELSUPP", sel);
+ tEnv.addObjRelation("TOSELECT", aShape);
+
+ // create object relation for XPrintJobBroadcaster
+ String fileName = utils.getOfficeTempDirSys(Param.getMSF())+"printfile.prt" ;
+ File f = new File(fileName);
+ if (f.exists()) {
+ boolean bDeleteOk = f.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+ _XPrintJobBroadcaster.MyPrintJobListener listener = new _XPrintJobBroadcaster.MyPrintJobListener(xImpressDoc, fileName);
+ tEnv.addObjRelation("XPrintJobBroadcaster.XPrintJobListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SdDrawPage
diff --git a/qadevOOo/tests/java/mod/_sd/SdXPresentation.java b/qadevOOo/tests/java/mod/_sd/SdXPresentation.java
new file mode 100644
index 000000000..344eb205b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdXPresentation.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.presentation.XCustomPresentationSupplier;
+import com.sun.star.presentation.XPresentationSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.presentation.Presentation</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::presentation::Presentation</code></li>
+* <li> <code>com::sun::star::presentation::XPresentation</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* </ul>
+* @see com.sun.star.presentation.Presentation
+* @see com.sun.star.presentation.XPresentation
+* @see com.sun.star.beans.XPropertySet
+* @see ifc.presentation._Presentation
+* @see ifc.presentation._XPresentation
+* @see ifc.beans._XPropertySet
+*/
+public class SdXPresentation extends TestCase {
+ XComponent xImpressDoc;
+
+ /**
+ * Creates Impress document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ log.println( "creating a draw document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Disposes Impress document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xImpressDoc");
+ util.DesktopTools.closeDoc(xImpressDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the presentation from the document using the interface
+ * <code>XPresentationSupplier</code>. The retrieved presentation is the
+ * instance of the service <code>com.sun.star.presentation.Presentation</code>.
+ * Retrieves the collection of the customized presentations from the document
+ * using the interface <code>XCustomPresentationSupplier</code>.
+ * Creates and inserts two new instances of presentation to the retrieved
+ * collection.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Presentation'</code> for
+ * {@link ifc.presentation._Presentation}(the retrieved presentation)</li>
+ * </ul>
+ * @see com.sun.star.presentation.XCustomPresentationSupplier
+ * @see com.sun.star.presentation.Presentation
+ * @see com.sun.star.presentation.XCustomPresentationSupplier
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ log.println( "get presentation" );
+ XPresentationSupplier oPS = UnoRuntime.queryInterface(XPresentationSupplier.class, xImpressDoc);
+ XInterface oObj = oPS.getPresentation();
+
+ log.println( "get custom presentation" );
+ XCustomPresentationSupplier oCPS = UnoRuntime.queryInterface(
+ XCustomPresentationSupplier.class, xImpressDoc);
+ XNameContainer xCP = oCPS.getCustomPresentations();
+
+ XInterface oInstance = null;
+ XInterface oInstance2 = null;
+
+ XSingleServiceFactory oSingleMSF = UnoRuntime.queryInterface(XSingleServiceFactory.class, xCP);
+
+ oInstance = (XInterface) oSingleMSF.createInstance();
+ oInstance2 = (XInterface) oSingleMSF.createInstance();
+
+ xCP.insertByName("FirstPresentation",oInstance);
+ xCP.insertByName("SecondPresentation", oInstance2);
+
+ log.println( "creating a new environment for XPresentation object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("Presentation",oObj);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SdPresentation
+
diff --git a/qadevOOo/tests/java/mod/_sd/SdXShape.java b/qadevOOo/tests/java/mod/_sd/SdXShape.java
new file mode 100644
index 000000000..049adedf0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/SdXShape.java
@@ -0,0 +1,165 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sd;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.drawing.Shape</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::drawing::XShape</code></li>
+* <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::drawing::Shape</code></li>
+* </ul>
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.drawing.XShape
+* @see com.sun.star.drawing.XShapeDescriptor
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.drawing.Shape
+* @see ifc.lang._XComponent
+* @see ifc.drawing._XShape
+* @see ifc.drawing._XShapeDescriptor
+* @see ifc.beans._XPropertySet
+* @see ifc.drawing._Shape
+*/
+public class SdXShape extends TestCase {
+ XComponent xDrawDoc;
+
+ /**
+ * Creates Drawing document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println( "creating a draw document" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Disposes Drawing document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Retrieves the collection of the draw pages from the drawing document using
+ * the interface <code>XDrawPagesSupplier</code>. Creates a rectangle shape
+ * that is the instance of the service <code>com.sun.star.drawing.Shape</code>.
+ * Creates and adds several new rectangle shapes and one ellipse shape to
+ * the retrieved draw page. Sets and gets some properties of the created
+ * rectangle shape.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Style1'</code> for
+ * {@link ifc.drawing._XShapeDescriptor}, {@link ifc.drawing._XShape}
+ * (the value of the property 'Style' that was retrieved from the created
+ * rectangle shape) </li>
+ * <li> <code>'Style2'</code> for
+ * {@link ifc.drawing._XShapeDescriptor}, {@link ifc.drawing._XShape}
+ * (the value of the property 'Style' that was retrieved from the created
+ * ellipse shape) </li>
+ * </ul>
+ * @see com.sun.star.drawing.XDrawPagesSupplier
+ * @see com.sun.star.drawing.Shape
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println( "getting Drawpage" );
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class, oDPn);
+ XDrawPage oDP = (XDrawPage) AnyConverter.toObject(
+ new Type(XDrawPage.class),oDPi.getByIndex(0));
+
+ //get a Shape
+ log.println( "getting Shape" );
+ XShapes oShapes = UnoRuntime.queryInterface
+ (XShapes.class, oDP);
+ XInterface oObj = SOF.createShape
+ (xDrawDoc, 5000, 3500, 7500, 5000, "Rectangle");
+ for (int i=0; i < 10; i++) {
+ oShapes.add(
+ SOF.createShape(xDrawDoc,
+ 5000, 3500, 7510 + 10 * i, 5010 + 10 * i, "Rectangle"));
+ }
+ XShape oShape = SOF.createShape
+ (xDrawDoc, 3000, 4500, 15000, 1000, "Ellipse");
+ oShapes.add((XShape) oObj);
+ oShapes.add(oShape);
+
+ log.println( "creating a new environment for XShape object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding two style as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ XStyle aStyle = null;
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ oShapeProps.setPropertyValue("ZOrder", Integer.valueOf(1));
+
+ tEnv.addObjRelation("Style1", aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class, oShape);
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+
+ tEnv.addObjRelation("Style2", aStyle);
+
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SdXShape
diff --git a/qadevOOo/tests/java/mod/_sd/package.html b/qadevOOo/tests/java/mod/_sd/package.html
new file mode 100644
index 000000000..cd1299cd6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sd/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'sd'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_servicemgr/uno/OServiceManager.java b/qadevOOo/tests/java/mod/_servicemgr/uno/OServiceManager.java
new file mode 100644
index 000000000..3e904d74a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_servicemgr/uno/OServiceManager.java
@@ -0,0 +1,158 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._servicemgr.uno;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XSet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.stoc.OServiceManager</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::container::XSet</code></li>
+ * <li> <code>com::sun::star::lang::XMultiComponentFactory</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XMultiServiceFactory
+ * @see com.sun.star.container.XContentEnumerationAccess
+ * @see com.sun.star.container.XSet
+ * @see com.sun.star.lang.XMultiComponentFactory
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.lang._XMultiServiceFactory
+ * @see ifc.container._XContentEnumerationAccess
+ * @see ifc.container._XSet
+ * @see ifc.lang._XMultiComponentFactory
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.lang._XComponent
+ */
+public class OServiceManager extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.stoc.OServiceManager</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'NewElement'</code> for
+ * {@link ifc.container._XSet} :
+ * element to be inserted into manager. Here
+ * a new <code>ServiceManager</code> implementation is
+ * create using
+ * <code>tools.SOConnect.createSimpleServiceManager()</code>
+ * and one of services contained in it is taken.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.stoc.OServiceManager" );
+ } catch( com.sun.star.uno.Exception e ) {
+ log.println("ServiceManager service not available" );
+ }
+
+ // adding a service to the manager
+ Object newElement = null ;
+ XMultiServiceFactory srvMan = null;
+ XComponentContext xContext = null;
+
+ try {
+
+ srvMan = com.sun.star.comp.helper.Bootstrap.createSimpleServiceManager();
+
+ } catch ( java.lang.Exception ex) {
+ log.println("Error creating SimpleServiceManager :");
+ ex.printStackTrace(log);
+ }
+
+ XSet set = UnoRuntime.queryInterface
+ (XSet.class, oInterface) ;
+ XSet set1 = UnoRuntime.queryInterface
+ (XSet.class, srvMan) ;
+ XEnumeration oEnum = set1.createEnumeration();
+ Object srv = oEnum.nextElement();
+
+ set.insert(srv) ;
+
+ newElement = oEnum.nextElement();
+
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, oInterface);
+ if (xProp != null) {
+ xContext = (XComponentContext) AnyConverter.toObject(
+ new Type(XComponentContext.class),
+ xProp.getPropertyValue("DefaultContext"));
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XSet interface
+ tEnv.addObjRelation("NewElement", newElement) ;
+
+ // adding relation for XPropertySet
+ tEnv.addObjRelation("PTT",new String[]{"DefaultContext","none","none"});
+
+ //adding relation for XMultiComponentFactory
+ if (xContext != null) {
+ tEnv.addObjRelation("DC", xContext);
+ }
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class OServiceManager
+
diff --git a/qadevOOo/tests/java/mod/_servicemgr/uno/package.html b/qadevOOo/tests/java/mod/_servicemgr/uno/package.html
new file mode 100644
index 000000000..bef49b8c5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_servicemgr/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'smgr'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_sfx/AppDispatchProvider.java b/qadevOOo/tests/java/mod/_sfx/AppDispatchProvider.java
new file mode 100644
index 000000000..3592c387e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sfx/AppDispatchProvider.java
@@ -0,0 +1,84 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sfx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.dbg;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.sfx2.SfxMacroLoader</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::frame::XDispatchProvider</code></li>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.frame.XDispatchProvider
+ * @see com.sun.star.lang.XInitialization
+ * @see ifc.frame._XDispatchProvider
+ * @see ifc.lang._XInitialization
+ */
+public class AppDispatchProvider extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.sfx2.SfxMacroLoader</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FrameLoader.URL"'</code> for
+ * {@link ifc.frame._XFrameLoader} </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null ;
+
+ //now get the OButtonControl
+ oInterface = Param.getMSF().createInstance
+ ("com.sun.star.comp.sfx2.AppDispatchProvider") ;
+
+ oObj = (XInterface) oInterface ;
+ System.out.println("ImplName: "+utils.getImplName(oObj));
+ dbg.printInterfaces(oObj);
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for :XDispatchProvider
+ tEnv.addObjRelation("XDispatchProvider.URL", ".uno:BibliographyComponent") ;
+
+ tEnv.addObjRelation("XInitialization.args", new Object[] { null });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sfx/DocumentTemplates.java b/qadevOOo/tests/java/mod/_sfx/DocumentTemplates.java
new file mode 100644
index 000000000..835e5c643
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sfx/DocumentTemplates.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sfx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.frame.XStorable;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.frame.DocumentTemplates</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::frame::XDocumentTemplates</code></li>
+ * </ul> <p>
+ *
+ */
+public class DocumentTemplates extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ String aURL=util.utils.getFullTestURL("report2.stw");
+ xTextDoc = util.WriterTools.loadTextDoc(tParam.getMSF(),aURL);
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ xTextDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.frame.DocumentTemplates</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XInterface oObj = null;
+ XStorable store = null;
+
+ oObj = (XInterface)xMSF.createInstance
+ ("com.sun.star.frame.DocumentTemplates");
+ store = UnoRuntime.queryInterface
+ (XStorable.class,xTextDoc);
+
+ String Iname = util.utils.getImplName(oObj);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ tEnv.addObjRelation("Store",store);
+ return tEnv;
+ }
+
+} // finish class TestCase
+
diff --git a/qadevOOo/tests/java/mod/_sfx/FrameLoader.java b/qadevOOo/tests/java/mod/_sfx/FrameLoader.java
new file mode 100644
index 000000000..7822d9208
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sfx/FrameLoader.java
@@ -0,0 +1,79 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sfx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.dbg;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.comp.office.FrameLoader</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::frame::XFrameLoader</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.frame.FrameLoader
+* @see com.sun.star.frame.XSynchronousFrameLoader
+*/
+public class FrameLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.office.FrameLoader</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FrameLoader.URL"'</code> for
+ * {@link ifc.frame._XFrameLoader} </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null ;
+
+ //now get the OButtonControl
+ oInterface = Param.getMSF().createInstance
+ ("com.sun.star.comp.office.FrameLoader") ;
+
+ oObj = (XInterface) oInterface ;
+ System.out.println("ImplName: "+utils.getImplName(oObj));
+ dbg.printInterfaces(oObj);
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XFrameLoader
+ tEnv.addObjRelation("FrameLoader.URL","private:factory/swriter");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sfx/SfxMacroLoader.java b/qadevOOo/tests/java/mod/_sfx/SfxMacroLoader.java
new file mode 100644
index 000000000..9d2fbb4d9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sfx/SfxMacroLoader.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sfx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.dbg;
+import util.utils;
+
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.sfx2.SfxMacroLoader</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::frame::XDispatchProvider</code></li>
+ * <li> <code>com::sun::star::lang::XInitialization</code></li>
+ * </ul>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.frame.XDispatchProvider
+ * @see com.sun.star.lang.XInitialization
+ * @see ifc.frame._XDispatchProvider
+ * @see ifc.lang._XInitialization
+ */
+public class SfxMacroLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.sfx2.SfxMacroLoader</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FrameLoader.URL"'</code> for
+ * {@link ifc.frame._XFrameLoader} </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null ;
+
+ //now get the OButtonControl
+ oInterface = Param.getMSF().createInstance
+ ("com.sun.star.comp.sfx2.SfxMacroLoader");
+
+ oObj = (XInterface) oInterface ;
+ System.out.println("ImplName: "+utils.getImplName(oObj));
+ dbg.printInterfaces(oObj);
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XFrameLoader
+ tEnv.addObjRelation("XDispatchProvider.URL",
+ "macro:tools.UCB.CreateFolder(\"" +
+ utils.getOfficeTemp(Param.getMSF()) + "/SfxMacroLoader\")") ;
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_shlibloader/uno/DLLComponentLoader.java b/qadevOOo/tests/java/mod/_shlibloader/uno/DLLComponentLoader.java
new file mode 100644
index 000000000..18e7a2d9e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_shlibloader/uno/DLLComponentLoader.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._shlibloader.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+* Test for <code>com.sun.star.comp.stoc.DLLComponentLoader</code> service <p>
+* Files which are used :
+* <ul>
+* <li> <code>XImpReg.dll</code> : DLL which will be loaded in
+* <code>XImplementationLoader</code> interface test. </li>
+* <ul>
+* Multithread testing compliant.
+* @see com.sun.star.loader.XImplementationLoader
+* @see com.sun.star.lang.XServiceInfo
+* @see ifc.loader._XImplementationLoader
+* @see ifc.lang._XServiceInfo
+*/
+public class DLLComponentLoader extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.comp.stoc.DLLComponentLoader</code>
+ * service. <p>
+ * The following object relations created :
+ * <ul>
+ * <li> <code>'ImplementationLoader'</code> : service which is
+ * responsible for loading DLL implementations. </li>
+ * <li> <code>'ImplementationUrl'</code> : DLL file location. </li>
+ * <li> <code>'ImplementationName'</code> : Name of the implementation.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws com.sun.star.uno.Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+ XMultiServiceFactory xMSF = null;
+
+ try {
+ xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.stoc.DLLComponentLoader" );
+ }
+ catch( Exception e ) {
+ log.println("DLLComponentLoader Service not available" );
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for DLLComponentLoader object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding object relation for XImplementationLoader ifc test
+ tEnv.addObjRelation("ImplementationLoader",
+ "com.sun.star.loader.SharedLibrary") ;
+ String os = (String) Param.get("OS");
+ if (os == null || os.equals(""))
+ throw new StatusException(
+ "Couldn't determine operating system for naming convention.",
+ new NullPointerException());
+ String name = "javaloader.uno";
+ if (!os.equals("wntmsci"))
+ name = name + ".so";
+ else
+ name += ".dll";
+ String implURL = utils.getOfficeURL(xMSF)+"/"+name;
+ tEnv.addObjRelation("ImplementationUrl", implURL) ;
+ log.println("looking for shared lib: " + implURL);
+ tEnv.addObjRelation("ImplementationName",
+ "com.sun.star.comp.stoc.JavaComponentLoader") ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class DLLComponentLoader
+
diff --git a/qadevOOo/tests/java/mod/_shlibloader/uno/package.html b/qadevOOo/tests/java/mod/_shlibloader/uno/package.html
new file mode 100644
index 000000000..1bc7bf117
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_shlibloader/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'cpld'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_simplereg/uno/SimpleRegistry.java b/qadevOOo/tests/java/mod/_simplereg/uno/SimpleRegistry.java
new file mode 100644
index 000000000..99146f159
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_simplereg/uno/SimpleRegistry.java
@@ -0,0 +1,166 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._simplereg.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.registry.SimpleRegistry</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::registry::XSimpleRegistry</code></li>
+ * </ul> <p>
+ * The following files used by this test :
+ * <ul>
+ * <li><b> XSimpleRegistry.rdb </b> : a registry file with
+ * some key set. </li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.registry.XSimpleRegistry
+ * @see ifc.registry._XSimpleRegistry
+ */
+public class SimpleRegistry extends TestCase {
+
+ /**
+ * Creates a temporary copy of file, which is deleted when VM exits.
+ * @param src Source file path.
+ * @param dst Destination file path.
+ * @param log The log writer.
+ * @throws java.io.IOException If any problems occur during copying.
+ */
+ protected void copyFile(String src, String dst, PrintWriter log)
+ throws java.io.IOException {
+ File srcF = new File(src) ;
+ File dstF = new File(dst) ;
+ System.out.println("H1");
+
+ if (dstF.exists()) {
+ boolean bDeleteOk = dstF.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+
+ System.out.println("H2");
+
+ boolean bCreateOk = dstF.createNewFile();
+ if (!bCreateOk) {
+ System.out.println("create failed");
+ }
+
+ dstF.deleteOnExit() ;
+ System.out.println("H3");
+
+ FileInputStream fIn = new FileInputStream(srcF) ;
+ System.out.println("H4");
+
+ FileOutputStream fOut = new FileOutputStream(dstF) ;
+
+ byte[] buf = new byte[1024] ;
+ int bytesRead = 0 ;
+ while ((bytesRead = fIn.read(buf)) > 0) {
+ fOut.write(buf, 0, bytesRead) ;
+ }
+
+ fIn.close() ;
+ fOut.close() ;
+ }
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.registry.SimpleRegistry</code>. Then
+ * makes three copies of a predefined registry file with different
+ * names in a temporary SOffice directory and passes their URLs as
+ * relations. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XSimpleRegistry.open'</code> for
+ * {@link ifc.registry._XSimpleRegistry} :
+ * URL of 'XSimpleRegistry.rbd' file copy in the
+ * temp directory. </li>
+ * <li> <code>'XSimpleRegistry.merge'</code> for
+ * {@link ifc.registry._XSimpleRegistry} :
+ * URL of 'XSimpleRegistry.rbd' file copy in the
+ * temp directory. </li>
+ * <li> <code>'XSimpleRegistry.destroy'</code> for
+ * {@link ifc.registry._XSimpleRegistry} :
+ * URL of 'XSimpleRegistry.rbd' file copy in the
+ * temp directory. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+ XInterface oObj = null;
+ Object oInterface = null;
+ final String tmpDir = utils.getOfficeTempDirSys(
+ Param.getMSF()) ;
+ final String openF = "XSimpleRegistry_open.rdb" ;
+ final String destroyF = "XSimpleRegistry_destroy.rdb" ;
+ final String mergeF = "XSimpleRegistry_merge.rdb" ;
+
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.registry.SimpleRegistry" );
+ } catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ if (oInterface == null)
+ log.println("Service wasn't created") ;
+
+ oObj = (XInterface) oInterface;
+
+ log.println("creating copies of the registry for XSimpleRegistry");
+ try {
+ String source = utils.getFullTestDocName("XSimpleRegistry.rdb");
+ copyFile(source, tmpDir + openF, log);
+ copyFile(source, tmpDir + destroyF, log);
+ copyFile(source, tmpDir + mergeF, log);
+ } catch (java.io.IOException e) {
+ log.println("Exception occurred while copying files");
+ e.printStackTrace(log);
+ }
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XSimpleRegistry.open", tmpDir + openF);
+ tEnv.addObjRelation("XSimpleRegistry.destroy", tmpDir + destroyF);
+ tEnv.addObjRelation("XSimpleRegistry.merge", tmpDir + mergeF);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SimpleRegistry
+
diff --git a/qadevOOo/tests/java/mod/_simplereg/uno/package.html b/qadevOOo/tests/java/mod/_simplereg/uno/package.html
new file mode 100644
index 000000000..b70d93793
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_simplereg/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'simreg'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_simreg/SimpleRegistry.java b/qadevOOo/tests/java/mod/_simreg/SimpleRegistry.java
new file mode 100644
index 000000000..8c513d7b5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_simreg/SimpleRegistry.java
@@ -0,0 +1,170 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._simreg;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.registry.SimpleRegistry</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::registry::XSimpleRegistry</code></li>
+ * </ul> <p>
+ * The following files used by this test :
+ * <ul>
+ * <li><b> XSimpleRegistry.rdb </b> : a registry file with
+ * some key set. </li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.registry.XSimpleRegistry
+ * @see ifc.registry._XSimpleRegistry
+ */
+public class SimpleRegistry extends TestCase {
+
+ /**
+ * Creates a temporary copy of file, which is deleted when VM exits.
+ * @param src Source file path.
+ * @param dst Destination file path.
+ * @param log The log writer.
+ * @throws java.io.IOException If any problems occur during copying.
+ */
+ protected void copyFile(String src, String dst, PrintWriter log)
+ throws java.io.IOException {
+ File srcF = new File(src) ;
+ File dstF = new File(dst) ;
+ log.println("H1");
+
+ if (dstF.exists()) {
+ boolean bDeleteOk = dstF.delete();
+ if (!bDeleteOk) {
+ System.out.println("delete failed");
+ }
+ }
+
+ System.out.println("H2");
+
+ boolean bCreateOk = dstF.createNewFile();
+ if (!bCreateOk) {
+ System.out.println("create failed");
+ }
+
+ dstF.deleteOnExit() ;
+ log.println("H3");
+
+ FileInputStream fIn = new FileInputStream(srcF) ;
+ System.out.println("H4");
+
+ FileOutputStream fOut = new FileOutputStream(dstF) ;
+
+ byte[] buf = new byte[1024] ;
+ int bytesRead = 0 ;
+ while ((bytesRead = fIn.read(buf)) > 0) {
+ fOut.write(buf, 0, bytesRead) ;
+ }
+
+ fIn.close() ;
+ fOut.close() ;
+ }
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.registry.SimpleRegistry</code>. Then
+ * makes three copies of a predefined registry file with different
+ * names in a temporary SOffice directory and passes their URLs as
+ * relations. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XSimpleRegistry.open'</code> for
+ * {@link ifc.registry._XSimpleRegistry} :
+ * URL of 'XSimpleRegistry.rbd' file copy in the
+ * temp directory. </li>
+ * <li> <code>'XSimpleRegistry.merge'</code> for
+ * {@link ifc.registry._XSimpleRegistry} :
+ * URL of 'XSimpleRegistry.rbd' file copy in the
+ * temp directory. </li>
+ * <li> <code>'XSimpleRegistry.destroy'</code> for
+ * {@link ifc.registry._XSimpleRegistry} :
+ * URL of 'XSimpleRegistry.rbd' file copy in the
+ * temp directory. </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws StatusException {
+ XInterface oObj = null;
+ Object oInterface = null;
+ final String tmpDir = utils.getOfficeTempDirSys(Param.getMSF()) ;
+ final String openF = "XSimpleRegistry_open.rdb" ;
+ final String destroyF = "XSimpleRegistry_destroy.rdb" ;
+ final String mergeF = "XSimpleRegistry_merge.rdb" ;
+
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.registry.SimpleRegistry" );
+ } catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ if (oInterface == null)
+ log.println("Service wasn't created") ;
+
+ oObj = (XInterface) oInterface;
+
+ log.println("creating copies of the registry for XSimpleRegistry");
+ try {
+ String source = utils.getFullTestDocName("XSimpleRegistry.rdb");
+ copyFile(source, tmpDir + openF, log);
+ copyFile(source, tmpDir + destroyF, log);
+ copyFile(source, tmpDir + mergeF, log);
+ } catch (java.io.IOException e) {
+ log.println("Exception occurred while copying files");
+ e.printStackTrace(log);
+ }
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("XSimpleRegistry.open", tmpDir + openF);
+ tEnv.addObjRelation("XSimpleRegistry.destroy", tmpDir + destroyF);
+ tEnv.addObjRelation("XSimpleRegistry.merge", tmpDir + mergeF);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SimpleRegistry
+
diff --git a/qadevOOo/tests/java/mod/_simreg/package.html b/qadevOOo/tests/java/mod/_simreg/package.html
new file mode 100644
index 000000000..b70d93793
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_simreg/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'simreg'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_sm/SmEditAccessible.java b/qadevOOo/tests/java/mod/_sm/SmEditAccessible.java
new file mode 100644
index 000000000..b32e7f4da
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/SmEditAccessible.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessible
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessible
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class SmEditAccessible extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * Creates a <code>StarMath</code> document and obtains an accessibility
+ * component with the role <code>AccessibleRole.TEXT_FRAME</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(final TestParameters Param, PrintWriter log) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ xMathDoc = SOF.openDoc("smath","_blank");
+
+ // setting a formula in document
+ final String expFormula = "sum hat a";
+ final XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, xMathDoc);
+ xPS.setPropertyValue("Formula", expFormula);
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xMathDoc);
+
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.TEXT_FRAME, "", "WeldEditAccessible");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("Destroy", Boolean.TRUE);
+
+ final XAccessibleContext con = UnoRuntime.queryInterface(XAccessibleContext.class, oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ try {
+ System.out.println("Children "+con.getAccessibleChildCount());
+ xPS.setPropertyValue("Formula", "sum hat x \n int a \n sum b");
+ util.utils.waitForEventIdle(Param.getMSF());
+ System.out.println("Children "+con.getAccessibleChildCount());
+ xPS.setPropertyValue("Formula", expFormula);
+ util.utils.waitForEventIdle(Param.getMSF());
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Disposes the document created in <code>createTestEnvironment</code>
+ * method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+} // finish class SmModel
diff --git a/qadevOOo/tests/java/mod/_sm/SmGraphicAccessible.java b/qadevOOo/tests/java/mod/_sm/SmGraphicAccessible.java
new file mode 100644
index 000000000..1d02f98bc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/SmGraphicAccessible.java
@@ -0,0 +1,132 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessible
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessible
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class SmGraphicAccessible extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * Creates a <code>StarMath</code> document and obtains an accessibility
+ * component with the role <code>AccessibleRole.PANEL</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(final TestParameters Param, PrintWriter log) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ xMathDoc = SOF.openDoc("smath","_blank");
+
+ // setting a formula in document
+ final String expFormula = "sum a cdot b";
+ final XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, xMathDoc);
+ xPS.setPropertyValue("Formula", expFormula);
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xMathDoc);
+
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole
+ (xRoot, AccessibleRole.DOCUMENT, "Formula");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ final XAccessibleComponent xAC = UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ try {
+ xAC.grabFocus();
+ xPS.setPropertyValue("Formula", "sum hat x");
+ util.utils.waitForEventIdle(Param.getMSF());
+ xPS.setPropertyValue("Formula", expFormula);
+ util.utils.waitForEventIdle(Param.getMSF());
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ }
+ }});
+
+ return tEnv;
+ }
+
+ /**
+ * Disposes the document created in <code>createTestEnvironment</code>
+ * method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+} // finish class SmModel
diff --git a/qadevOOo/tests/java/mod/_sm/SmModel.java b/qadevOOo/tests/java/mod/_sm/SmModel.java
new file mode 100644
index 000000000..44cf134e5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/SmModel.java
@@ -0,0 +1,80 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XComponent;
+
+/**
+ * Test for object which is represented by
+ * <code>'StarMath'</code> document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::formula::FormulaProperties</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.formula.FormulaProperties
+ * @see ifc.formula._FormulaProperties
+ */
+public class SmModel extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates a <code>StarMath</code> document and passes it as
+ * tested component.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ xMathDoc = SOF.openDoc("smath","_blank");
+
+ String Iname = util.utils.getImplName(xMathDoc);
+ log.println("Implementation Name: "+Iname);
+ TestEnvironment tEnv = new TestEnvironment(xMathDoc);
+ return tEnv;
+ }
+
+ /**
+ * Disposes the document created in <code>createTestEnvironment</code>
+ * method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+
+} // finish class SmModel
+
diff --git a/qadevOOo/tests/java/mod/_sm/XMLExporter.java b/qadevOOo/tests/java/mod/_sm/XMLExporter.java
new file mode 100644
index 000000000..f13275f00
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/XMLExporter.java
@@ -0,0 +1,185 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Math.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * New math document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a math document" );
+ xMathDoc = SOF.createMathDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Math.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The math document is set as a source document for exporter
+ * created. A new formula inserted into document. This made
+ * for checking if this formula is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String expFormula = "a - b" ;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), filter);
+
+ try {
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Math.XMLExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xMathDoc);
+
+ // setting a formula in document
+ XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, xMathDoc) ;
+ xPS.setPropertyValue("Formula", expFormula) ;
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create component.", e) ;
+ }
+
+ // checking tags required
+ filter.addTag(new XMLTools.Tag("math:math")) ;
+ filter.addTagEnclosed(new XMLTools.Tag("math:annotation"),
+ new XMLTools.Tag("math:semantics")) ;
+ filter.addCharactersEnclosed(expFormula,
+ new XMLTools.Tag("math:annotation")) ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"smath: StarOffice XML (Math)"}));
+ tEnv.addObjRelation("SourceDocument",xMathDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+
+} // finish class TestCase
+
diff --git a/qadevOOo/tests/java/mod/_sm/XMLImporter.java b/qadevOOo/tests/java/mod/_sm/XMLImporter.java
new file mode 100644
index 000000000..6b42f254e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/XMLImporter.java
@@ -0,0 +1,153 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Math.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+ XComponent xMathDoc;
+
+
+ /**
+ * New math document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ xMathDoc = SOF.openDoc("smath","_blank");
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Math.XMLImporter</code><p>
+ *
+ * The chart document is set as a target document for importer.
+ * Imported XML-data contains the tag which specifies a formula
+ * in the document.
+ * After import the formula getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = null;
+ final String impFormula = "a - b" ;
+
+ oObj = (XInterface)xMSF.createInstance(
+ "com.sun.star.comp.Math.XMLImporter");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("TargetDocument",xMathDoc);
+
+ String[][] xml = new String[][] {
+ {"start", "math:math",
+ "xmlns:math", "CDATA", "http://www.w3.org/1998/Math/MathML"},
+ {"start", "math:semantics"},
+ {"start", "math:annotation",
+ "math:encoding", "CDATA", "StarMath 5.0"},
+ {"chars", impFormula},
+ {"end", "math:annotation"},
+ {"end", "math:semantics"},
+ {"end", "math:math"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+ final XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, xMathDoc) ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ String gFormula = (String) xPS.getPropertyValue
+ ("Formula") ;
+ logF.println("Formula returned = '" + gFormula + "'") ;
+ return impFormula.equals(gFormula) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sm/XMLMetaExporter.java b/qadevOOo/tests/java/mod/_sm/XMLMetaExporter.java
new file mode 100644
index 000000000..e2e29911b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/XMLMetaExporter.java
@@ -0,0 +1,181 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertyContainer;
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Math.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLMetaExporter extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * New math document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a math document" );
+ xMathDoc = SOF.createMathDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Math.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The math document is set as a source document for exporter
+ * created. A new user info field inserted into document. This made
+ * for checking if this info field is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String expName = "XMLMetaExporterName" ;
+ final String expValue = "XMLMetaExporterValue" ;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Math.XMLMetaExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xMathDoc);
+
+ // setting a new name and value for user info field
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xMathDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ XPropertyContainer xProps = xDocProps.getUserDefinedProperties();
+ xProps.addProperty(expName, (short)0, expValue);
+
+ // checking tags required
+ filter.addTag(new XMLTools.Tag("office:document-meta")) ;
+ filter.addCharactersEnclosed(expValue,
+ new XMLTools.Tag("meta:user-defined", "meta:name", expName)) ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"smath: StarOffice XML (Math)"}));
+ tEnv.addObjRelation("SourceDocument",xMathDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+} // finish class TestCase
+
diff --git a/qadevOOo/tests/java/mod/_sm/XMLMetaImporter.java b/qadevOOo/tests/java/mod/_sm/XMLMetaImporter.java
new file mode 100644
index 000000000..72ba25ccd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/XMLMetaImporter.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.beans.Property;
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Math.XMLMetaImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLMetaImporter extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * New math document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ xMathDoc = SOF.openDoc("smath","_blank");
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Math.XMLMetaImporter</code><p>
+ *
+ * The math document is set as a target document for importer.
+ * Imported XML-data contains the tag which specifies new user info
+ * field and a title of document.
+ * After import user fields info and the title of target document
+ * is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = null;
+ final String impName = "XMLMetaImporter" ;
+ final String impValue = "XMLMetaImporter_Value" ;
+ final String impTitle = "XMLMetaImporter Title" ;
+
+ oObj = (XInterface)xMSF.createInstance(
+ "com.sun.star.comp.Math.XMLMetaImporter");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("TargetDocument",xMathDoc);
+
+ String[][] xml = new String[][] {
+ {"start", "office:document-meta",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:meta", "CDATA", "http://openoffice.org/2000/meta",
+ "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink",
+ "xmlns:dc", "CDATA", "http://purl.org/dc/elements/1.1/"
+ },
+ {"start", "office:meta"},
+ {"start", "dc:title"},
+ {"chars", impTitle},
+ {"end", "dc:title"},
+ {"start", "meta:user-defined",
+ "meta:name", "CDATA", impName},
+ {"chars", impValue},
+ {"end", "meta:user-defined"},
+ {"end", "office:meta"},
+ {"end", "office:document-meta"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ XDocumentPropertiesSupplier xPropSup =
+ UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xMathDoc);
+ final XDocumentProperties xDocProps =
+ xPropSup.getDocumentProperties();
+
+ XPropertySet xUDProps = UnoRuntime.queryInterface(
+ XPropertySet.class,
+ xDocProps.getUserDefinedProperties());
+ XPropertySetInfo xInfo =
+ xUDProps.getPropertySetInfo();
+ Property[] props = xInfo.getProperties();
+ boolean result = false;
+ for (int i = 0; i < props.length; i++) {
+ String gName = props[i].Name;
+ String gValue = (String)
+ xUDProps.getPropertyValue(gName);
+ logF.println("Field '" + gName + "' = '"
+ + gValue + "'") ;
+ if (impName.equals(gName) && impValue.equals(gValue))
+ result = true ;
+ }
+ String gTitle = xDocProps.getTitle();
+ logF.println("Title returned : '" + gTitle + "'");
+ result &= impTitle.equals(gTitle) ;
+
+ return result ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sm/XMLSettingsExporter.java b/qadevOOo/tests/java/mod/_sm/XMLSettingsExporter.java
new file mode 100644
index 000000000..f52ef2b2a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/XMLSettingsExporter.java
@@ -0,0 +1,180 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Math.XMLSettingsExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLSettingsExporter extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * New math document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a math document" );
+ xMathDoc = SOF.createMathDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Math.XMLSettingsExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The math document is set as a source document for exporter
+ * created. A new value for TopMargin property is set for document.
+ * This made
+ * for checking if this property is successfully exported within
+ * the document settings.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final short expMargin = 67 ;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Math.XMLSettingsExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xMathDoc);
+
+ // setting a formula in document
+ XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, xMathDoc) ;
+
+ xPS.setPropertyValue("TopMargin", Short.valueOf(expMargin)) ;
+
+ // checking tags required
+
+ filter.addTag(new XMLTools.Tag("office:document-settings")) ;
+ filter.addCharactersEnclosed(String.valueOf(expMargin),
+ new XMLTools.Tag("config:config-item", "config:name", "TopMargin")) ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"smath: StarOffice XML (Math)"}));
+ tEnv.addObjRelation("SourceDocument",xMathDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+
+} // finish class TestCase
+
diff --git a/qadevOOo/tests/java/mod/_sm/XMLSettingsImporter.java b/qadevOOo/tests/java/mod/_sm/XMLSettingsImporter.java
new file mode 100644
index 000000000..484cd2b6d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sm/XMLSettingsImporter.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Math.XMLSettingsImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLSettingsImporter extends TestCase {
+ XComponent xMathDoc;
+
+ /**
+ * New math document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ xMathDoc = SOF.openDoc("smath","_blank");
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xMathDoc " );
+ xMathDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Math.XMLSettingsImporter</code><p>
+ *
+ * The math document is set as a target document for importer.
+ * Imported XML-data contains the tag which specifies new
+ * 'TopMargin' property value.
+ * After import 'TopMargin' property value of target document
+ * is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log )
+ throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = null;
+ final short impMargin = 67 ;
+
+ oObj = (XInterface)xMSF.createInstance(
+ "com.sun.star.comp.Math.XMLSettingsImporter");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("TargetDocument",xMathDoc);
+
+ String[][] xml = new String[][] {
+ {"start", "office:document-settings",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:config", "CDATA", "http://openoffice.org/2001/config",
+ "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink",
+ "office:version", "CDATA", "1.0"
+ },
+ {"start", "office:settings"},
+ {"start", "config:config-item-set",
+ "config:name", "CDATA", "configuration-settings"},
+
+ {"start", "config:config-item",
+ "config:name", "CDATA", "TopMargin",
+ "config:type", "CDATA", "short"},
+ {"chars", String.valueOf(impMargin)},
+ {"end", "config:config-item"},
+ {"end", "config:config-item-set"},
+ {"end", "office:settings"},
+ {"end", "office:document-settings"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+ final XPropertySet xPS = UnoRuntime.queryInterface
+ (XPropertySet.class, xMathDoc) ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ Short gMargin = (Short) xPS.getPropertyValue
+ ("TopMargin") ;
+ logF.println("Margin returned: " + gMargin);
+ return impMargin == gMargin.shortValue() ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_smgr/OServiceManager.java b/qadevOOo/tests/java/mod/_smgr/OServiceManager.java
new file mode 100644
index 000000000..797246b2c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_smgr/OServiceManager.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._smgr;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XSet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.stoc.OServiceManager</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XMultiServiceFactory</code></li>
+ * <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::container::XSet</code></li>
+ * <li> <code>com::sun::star::lang::XMultiComponentFactory</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.lang.XMultiServiceFactory
+ * @see com.sun.star.container.XContentEnumerationAccess
+ * @see com.sun.star.container.XSet
+ * @see com.sun.star.lang.XMultiComponentFactory
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.lang._XMultiServiceFactory
+ * @see ifc.container._XContentEnumerationAccess
+ * @see ifc.container._XSet
+ * @see ifc.lang._XMultiComponentFactory
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.lang._XComponent
+ */
+public class OServiceManager extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.stoc.OServiceManager</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'NewElement'</code> for
+ * {@link ifc.container._XSet} :
+ * element to be inserted into manager. Here
+ * a new <code>ServiceManager</code> implementation is
+ * create using
+ * <code>tools.SOConnect.createSimpleServiceManager()</code>
+ * and one of services contained in it is taken.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.stoc.OServiceManager" );
+ } catch( com.sun.star.uno.Exception e ) {
+ log.println("ServiceManager service not available" );
+ }
+
+ // adding a service to the manager
+ Object newElement = null ;
+ XMultiServiceFactory srvMan = null;
+ XComponentContext xContext = null;
+
+ try {
+
+ srvMan = com.sun.star.comp.helper.Bootstrap.createSimpleServiceManager();
+
+ } catch ( java.lang.Exception ex) {
+ log.println("Error creating SimpleServiceManager :");
+ ex.printStackTrace(log);
+ }
+
+ XSet set = UnoRuntime.queryInterface
+ (XSet.class, oInterface) ;
+ XSet set1 = UnoRuntime.queryInterface
+ (XSet.class, srvMan) ;
+ XEnumeration oEnum = set1.createEnumeration();
+ Object srv = oEnum.nextElement();
+
+ set.insert(srv) ;
+
+ newElement = oEnum.nextElement();
+
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, oInterface);
+ if (xProp != null) {
+ xContext = (XComponentContext) AnyConverter.toObject(
+ new Type(XComponentContext.class),
+ xProp.getPropertyValue("DefaultContext"));
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XSet interface
+ tEnv.addObjRelation("NewElement", newElement) ;
+
+ // adding relation for XPropertySet
+ tEnv.addObjRelation("PTT",new String[]{"DefaultContext","none","none"});
+
+ //adding relation for XMultiComponentFactory
+ if (xContext != null) {
+ tEnv.addObjRelation("DC", xContext);
+ }
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class OServiceManager
+
diff --git a/qadevOOo/tests/java/mod/_smgr/package.html b/qadevOOo/tests/java/mod/_smgr/package.html
new file mode 100644
index 000000000..bef49b8c5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_smgr/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'smgr'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_smplmail/SimpleSystemMail.java b/qadevOOo/tests/java/mod/_smplmail/SimpleSystemMail.java
new file mode 100644
index 000000000..6e0d1037a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_smplmail/SimpleSystemMail.java
@@ -0,0 +1,107 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._smplmail;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.system.SimpleSystemMail</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::system::XSimpleMailClientSupplier</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::lang::XTypeProvider</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.system.XSimpleMailClientSupplier
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.lang.XTypeProvider
+ * @see ifc.system._XSimpleMailClientSupplier
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.lang._XTypeProvider
+ */
+public class SimpleSystemMail extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * In case if OS is Win or not specified tries to create an instance
+ * of the service <code>com.sun.star.system.SimpleSystemMail</code>. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'SystemMailExist'</code> for
+ * {@link ifc.system._XSimpleMailClientSupplier} :
+ * the value depends on tested platform and
+ * <code>test.system.mail.isExist</code> INI
+ * parameter.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+ boolean isWinOS = false ;
+ boolean isSystemMailExist = false ;
+
+ // if 'OS' parameter is not defined then by default
+ // Win platform is used. If really not the error will occurs.
+ isWinOS = Param.get("OS") == null ||
+ "wntmsci".equals(Param.get("OS")) ;
+ isSystemMailExist = "true".equalsIgnoreCase
+ ((String) Param.get("test.system.mail.isExist")) ;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ if (isWinOS) {
+ log.println("The OS is Win : trying to create service");
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.system.SimpleSystemMail" );
+ } else {
+ log.println("The OS is NOT Win, SKIPPING this component");
+ log.println("Creating Dummy object ...");
+ oInterface = xMSF.createInstance( "com.sun.star.io.Pipe" );
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("SystemMailExist", Boolean.valueOf(isSystemMailExist));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SimpleSystemMail
+
diff --git a/qadevOOo/tests/java/mod/_srtrs/SortedDynamicResultSetFactory.java b/qadevOOo/tests/java/mod/_srtrs/SortedDynamicResultSetFactory.java
new file mode 100644
index 000000000..7449c4907
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_srtrs/SortedDynamicResultSetFactory.java
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._srtrs;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.ucb.SortedDynamicResultSetFactory</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::ucb::XSortedDynamicResultSetFactory</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.ucb.XSortedDynamicResultSetFactory
+ * @see ifc.ucb._XSortedDynamicResultSetFactory
+ */
+public class SortedDynamicResultSetFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.SortedDynamicResultSetFactory</code>.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oInterface = xMSF.createInstance(
+ "com.sun.star.ucb.SortedDynamicResultSetFactory");
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/DataInputStream.java b/qadevOOo/tests/java/mod/_stm/DataInputStream.java
new file mode 100644
index 000000000..ee55f57fa
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/DataInputStream.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XDataOutputStream;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.DataInputStream</code>.
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XDataInputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* </ul>
+* @see com.sun.star.io.DataInputStream
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XDataInputStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XActiveDataSink
+* @see ifc.io._XInputStream
+* @see ifc.io._XDataInputStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XActiveDataSink
+*/
+public class DataInputStream extends TestCase {
+
+ /**
+ * Creates a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.io.DataInputStream</code> object,
+ * connects it to <code>com.sun.star.io.DataOutputStream</code>
+ * through <code>com.sun.star.io.Pipe</code>. All of possible data
+ * types are written into <code>DataOutputStream</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'StreamWriter'</code> for
+ * {@link ifc.io._XDataInputStream}
+ * {@link ifc.io._XInputStream}(a stream to write data to) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}(another object that can be connected) </li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink}(an input stream to set and get) </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance("com.sun.star.io.DataInputStream");
+
+ XInterface oObj = (XInterface) oInterface;
+
+ // creating and connecting DataOutputStream to the
+ // DataInputStream created through the Pipe
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(XActiveDataSink.class, oObj);
+
+ XInterface oPipe = (XInterface)
+ xMSF.createInstance("com.sun.star.io.Pipe");
+
+ XInputStream xPipeInput = UnoRuntime.queryInterface(XInputStream.class, oPipe);
+ XOutputStream xPipeOutput = UnoRuntime.queryInterface(XOutputStream.class, oPipe);
+
+ XInterface oDataOutput = (XInterface)
+ xMSF.createInstance("com.sun.star.io.DataOutputStream");
+
+ XDataOutputStream xDataOutput = UnoRuntime.queryInterface(XDataOutputStream.class, oDataOutput) ;
+ XActiveDataSource xDataSource = UnoRuntime.queryInterface(XActiveDataSource.class, oDataOutput) ;
+
+ xDataSource.setOutputStream(xPipeOutput) ;
+ xDataSink.setInputStream(xPipeInput) ;
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>();
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ // creating a connectable object for XConnectable interface
+ XInterface xConnect = (XInterface)xMSF.createInstance(
+ "com.sun.star.io.DataInputStream") ;
+
+ // creating an input stream to set in XActiveDataSink
+ XInterface oDataInput = (XInterface) xMSF.createInstance(
+ "com.sun.star.io.Pipe" );
+
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding sequence of data that must be read
+ // by XDataInputStream interface methods
+ tEnv.addObjRelation("StreamData", data) ;
+ // add a writer
+ tEnv.addObjRelation("StreamWriter", xDataOutput);
+ // add a connectable
+ tEnv.addObjRelation("Connectable", xConnect);
+ // add an inputStream
+ tEnv.addObjRelation("InputStream", oDataInput);
+ tEnv.addObjRelation("ByteData", byteData);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/DataOutputStream.java b/qadevOOo/tests/java/mod/_stm/DataOutputStream.java
new file mode 100644
index 000000000..ead4fc671
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/DataOutputStream.java
@@ -0,0 +1,164 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.DataOutputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* <li> <code>com::sun::star::io::XDataOutputStream</code></li>
+* </ul>
+* @see com.sun.star.io.DataOutputStream
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+* @see com.sun.star.io.XDataOutputStream
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XOutputStream
+* @see ifc.io._XDataOutputStream
+*/
+public class DataOutputStream extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.io.DataOutputStream</code>
+ * and an instance of the service <code>com.sun.star.io.Pipe</code>.
+ * Plugs the created pipe as output stream for the created DataOutputStream.
+ * @see com.sun.star.io.DataOutputStream
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}
+ * (an input stream to set and get) </li>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ XInterface oPipe = null;
+ XMultiServiceFactory xMSF = null ;
+
+ xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ("com.sun.star.io.DataOutputStream");
+ oPipe = (XInterface)xMSF.createInstance("com.sun.star.io.Pipe");
+
+ oObj = (XInterface) oInterface;
+
+ final XOutputStream xPipeOutput = UnoRuntime.queryInterface(XOutputStream.class, oPipe);
+
+ XActiveDataSource xDataSource = UnoRuntime.queryInterface(XActiveDataSource.class, oObj);
+
+ xDataSource.setOutputStream(xPipeOutput);
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("StreamData", data);
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("OutputStream", oPipe);
+
+ //add relation for io.XOutputStream
+ final XMultiServiceFactory msf = xMSF;
+ final XInputStream xPipeInput = UnoRuntime.queryInterface(XInputStream.class, oPipe);
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ XInputStream xInStream = null;
+ public void resetStreams() {
+ if (xInStream != null) {
+ try {
+ xInStream.closeInput();
+ xInStream = null;
+ } catch(com.sun.star.io.IOException e) {
+ }
+ } else {
+ try {
+ xPipeOutput.closeOutput();
+ } catch(com.sun.star.io.IOException e) {
+ }
+ }
+ }
+
+ public XInputStream getInStream() {
+ resetStreams();
+ try {
+ Object oInStream = msf.createInstance(
+ "com.sun.star.io.DataInputStream");
+ xInStream = UnoRuntime.queryInterface
+ (XInputStream.class, oInStream);
+ } catch(com.sun.star.uno.Exception e) {
+ return null;
+ }
+
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, xInStream);
+ xDataSink.setInputStream(xPipeInput);
+
+ return xInStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/MarkableInputStream.java b/qadevOOo/tests/java/mod/_stm/MarkableInputStream.java
new file mode 100644
index 000000000..a86369867
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/MarkableInputStream.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.MarkableInputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XMarkableStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* </ul>
+* @see com.sun.star.io.MarkableInputStream
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XMarkableStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XActiveDataSink
+* @see ifc.io._XInputStream
+* @see ifc.io._XMarkableStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XActiveDataSink
+*/
+public class MarkableInputStream extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services <code>com.sun.star.io.Pipe</code>,
+ * <code>com.sun.star.io.MarkableInputStream</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>.
+ * Plugs the created pipe as output stream for the created
+ * <code>MarkableOutputStream</code>. Plugs the created pipe as input stream
+ * for the created <code>MarkableInputStream</code>. Writes some data to the
+ * <code>MarkableOutputStream</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamWriter'</code> for
+ * {@link ifc.io._XInputStream}(a stream to write data to) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}(another object that can be connected) </li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink}(an input stream to set and get) </li>
+ * </ul>
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+
+ Object aPipe = null;
+ Object mostream = null;
+ Object mistream = null;
+ Object xConnect = null;
+ aPipe = xMSF.createInstance("com.sun.star.io.Pipe");
+ mistream = xMSF.createInstance("com.sun.star.io.MarkableInputStream");
+ mostream = xMSF.createInstance("com.sun.star.io.MarkableOutputStream");
+ xConnect = xMSF.createInstance("com.sun.star.io.DataInputStream");
+
+ // Creating construction :
+ // MarkableOutputStream -> Pipe -> MarkableInputStream
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class, aPipe);
+ XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class, aPipe);
+
+ xdSmo.setOutputStream(PipeOut);
+
+ XActiveDataSink xmSi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+
+ xmSi.setInputStream(PipeIn) ;
+
+ XInterface oObj = (XInterface) mistream;
+
+ byte[] byteData = new byte[] {1,2,3,4,5,6};
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // add a writer
+ tEnv.addObjRelation("StreamWriter", mostream);
+ // add a connectable
+ tEnv.addObjRelation("Connectable", xConnect);
+ // add an inputStream
+ tEnv.addObjRelation("InputStream", mistream);
+ tEnv.addObjRelation("ByteData", byteData);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/MarkableOutputStream.java b/qadevOOo/tests/java/mod/_stm/MarkableOutputStream.java
new file mode 100644
index 000000000..6765ba721
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/MarkableOutputStream.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.MarkableOutputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XMarkableStream</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* </ul>
+* @see com.sun.star.io.MarkableOutputStream
+* @see com.sun.star.io.XMarkableStream
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+* @see com.sun.star.io.XConnectable
+* @see ifc.io._XMarkableStream
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XOutputStream
+* @see ifc.io._XConnectable
+*/
+public class MarkableOutputStream extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services <code>com.sun.star.io.Pipe</code>,
+ * <code>com.sun.star.io.MarkableInputStream</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>.
+ * Plugs the created pipe as output stream for the created
+ * <code>MarkableOutputStream</code>. Plugs the created pipe as input stream
+ * for the created <code>MarkableInputStream</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XOutputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataOutputStream}(the data that should be
+ * written into the stream) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}
+ * (another object that can be connected) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}
+ * (an input stream to set and get) </li>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object aPipe = null;
+ Object mostream = null;
+ Object mistream = null;
+ XInterface aConnect;
+
+ aPipe = xMSF.createInstance("com.sun.star.io.Pipe");
+ mistream = xMSF.createInstance
+ ("com.sun.star.io.MarkableInputStream");
+ mostream = xMSF.createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+ aConnect = (XInterface)xMSF.createInstance
+ ("com.sun.star.io.DataOutputStream");
+
+ // Creating construction :
+ // MarkableOutputStream -> Pipe -> MarkableInputStream
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ final XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class,aPipe);
+ final XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class,aPipe);
+
+ xdSmo.setOutputStream(PipeOut);
+
+ XActiveDataSink xmSi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+
+ xmSi.setInputStream(PipeIn) ;
+
+ oObj = (XInterface) mostream;
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("StreamData", data);
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("OutputStream", aPipe);
+ tEnv.addObjRelation("Connectable", aConnect);
+
+ //add relation for io.XOutputStream
+ final XMultiServiceFactory msf = xMSF;
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ XInputStream xInStream = null;
+ public void resetStreams() {
+ if (xInStream != null) {
+ try {
+ xInStream.closeInput();
+ xInStream = null;
+ } catch(com.sun.star.io.IOException e) {
+ }
+ } else {
+ try {
+ PipeOut.closeOutput();
+ } catch(com.sun.star.io.IOException e) {
+ }
+ }
+ }
+
+ public XInputStream getInStream() {
+ resetStreams();
+ try {
+ Object oInStream = msf.createInstance(
+ "com.sun.star.io.MarkableInputStream");
+ xInStream = UnoRuntime.queryInterface
+ (XInputStream.class, oInStream);
+ } catch(com.sun.star.uno.Exception e) {
+ return null;
+ }
+
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, xInStream);
+ xDataSink.setInputStream(PipeIn);
+
+ return xInStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/ObjectInputStream.java b/qadevOOo/tests/java/mod/_stm/ObjectInputStream.java
new file mode 100644
index 000000000..e40f2a12e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/ObjectInputStream.java
@@ -0,0 +1,250 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.registry.XImplementationRegistration;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.ObjectInputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XMarkableStream</code></li>
+* <li> <code>com::sun::star::io::XDataInputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* <li> <code>com::sun::star::io::XObjectInputStream</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> MyPersistObjectImpl.jar </b> : the implementation of the persist
+* object</li>
+* </ul> <p>
+* @see com.sun.star.io.ObjectInputStream
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XMarkableStream
+* @see com.sun.star.io.XDataInputStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XActiveDataSink
+* @see com.sun.star.io.XObjectInputStream
+* @see ifc.io._XInputStream
+* @see ifc.io._XMarkableStream
+* @see ifc.io._XDataInputStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XActiveDataSink
+* @see ifc.io._XObjectInputStream
+*/
+public class ObjectInputStream extends TestCase {
+
+ /**
+ * Register the implementation of service
+ * <code>com.sun.star.cmp.PersistObject</code> if not yet registered.
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ public void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ Object oPersObj = null;
+ // test first if object is already registered
+ try {
+ oPersObj = xMSF.createInstance("com.sun.star.cmp.PersistObject");
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Could not create instance of PersistObject");
+ e.printStackTrace(log);
+ log.println("Going on with test...");
+ }
+ if ( oPersObj == null ) {
+ // object is not available: it has to be registered
+ String url = util.utils.getFullTestURL
+ ("qadevlibs/MyPersistObjectImpl.jar");
+ XImplementationRegistration xir;
+ Object o = xMSF.createInstance(
+ "com.sun.star.registry.ImplementationRegistration");
+ xir = UnoRuntime.queryInterface(
+ XImplementationRegistration.class, o);
+
+ XSimpleRegistry xReg = null;
+ System.out.println("Register library: " + url);
+ xir.registerImplementation(
+ "com.sun.star.loader.Java2", url, xReg);
+ System.out.println("...done");
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services
+ * <code>com.sun.star.io.ObjectInputStream</code>,
+ * <code>com.sun.star.io.ObjectOutputStream</code>,
+ * <code>com.sun.star.io.Pipe</code>,
+ * <code>com.sun.star.io.MarkableInputStream</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>. Plugs the created
+ * markable output stream as output stream for the created
+ * <code>ObjectOutputStream</code>. Plugs the created pipe as output stream
+ * for the created <code>MarkableOutputStream</code>. Plugs the created
+ * markable input stream as input stream for the created
+ * <code>ObjectInputStream</code>. Plugs the created pipe as input stream
+ * for the created <code>MarkableInputStream</code>. Creates an instance
+ * of the service <code>com.sun.star.cmp.PersistObject</code> and writes
+ * the created object to the object output stream.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PersistObject'</code> for
+ * {@link ifc.io._XObjectInputStream}(the created instance of the
+ * persist object ) </li>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'StreamWriter'</code> for
+ * {@link ifc.io._XDataInputStream}
+ * {@link ifc.io._XObjectInputStream}
+ * {@link ifc.io._XInputStream}(a stream to write data to) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}
+ * (another object that can be connected) </li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink}(an input stream to set and get) </li>
+ * </ul>
+ * @see com.sun.star.io.ObjectInputStream
+ * @see com.sun.star.io.ObjectOutputStream
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ System.out.println("create TestEnvironment started.");
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object ostream = null;
+ Object aPipe = null;
+ Object mostream = null;
+ Object mistream = null;
+ Object istream = null;
+ Object xConnect = null;
+ istream = xMSF.createInstance
+ ("com.sun.star.io.ObjectInputStream");
+ ostream = xMSF.createInstance
+ ("com.sun.star.io.ObjectOutputStream");
+ aPipe = xMSF.createInstance
+ ("com.sun.star.io.Pipe");
+ mistream = xMSF.createInstance
+ ("com.sun.star.io.MarkableInputStream");
+ mostream = xMSF.createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+ xConnect = xMSF.createInstance
+ ("com.sun.star.io.DataInputStream") ;
+
+ // Creating construction :
+ // ObjectOutputStream -> MarkableOutputStream -> Pipe ->
+ // -> MarkableInputStream -> ObjectInputStream
+ XActiveDataSource xdSo = UnoRuntime.queryInterface(XActiveDataSource.class, ostream);
+
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XOutputStream moStream = UnoRuntime.queryInterface(XOutputStream.class, mostream);
+
+ XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class, aPipe);
+ XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class, aPipe);
+
+ xdSo.setOutputStream(moStream);
+ xdSmo.setOutputStream(PipeOut);
+
+ XObjectInputStream iStream = UnoRuntime.queryInterface(XObjectInputStream.class, istream);
+ XObjectOutputStream oStream = null;
+ oStream = UnoRuntime.queryInterface(XObjectOutputStream.class, ostream);
+
+ XActiveDataSink xmSi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+ XInputStream xmIstream = UnoRuntime.queryInterface(XInputStream.class, mistream);
+
+ XActiveDataSink xdSi = UnoRuntime.queryInterface
+ (XActiveDataSink.class, istream);
+ xdSi.setInputStream(xmIstream);
+ xmSi.setInputStream(PipeIn);
+
+ // creating Persist object which has to be written
+ XPersistObject xPersObj = null;
+ Object oPersObj = xMSF.createInstance
+ ("com.sun.star.cmp.PersistObject");
+ xPersObj = UnoRuntime.queryInterface(XPersistObject.class, oPersObj);
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+
+ System.out.println("create environment");
+ XInterface oObj = iStream;
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding persistent object
+ tEnv.addObjRelation("PersistObject", xPersObj);
+ // add a connectable
+ tEnv.addObjRelation("Connectable", xConnect);
+ tEnv.addObjRelation("StreamWriter", oStream);
+ // for XActiveDataSink
+ tEnv.addObjRelation("InputStream", aPipe);
+ // adding sequence of data that must be read
+ // by XDataInputStream interface methods
+ tEnv.addObjRelation("StreamData", data) ;
+ // and by XInputStream interface methods
+ tEnv.addObjRelation("ByteData", byteData) ;
+
+ System.out.println("create TestEnvironment finished.");
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/ObjectOutputStream.java b/qadevOOo/tests/java/mod/_stm/ObjectOutputStream.java
new file mode 100644
index 000000000..37f091b9f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/ObjectOutputStream.java
@@ -0,0 +1,272 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.registry.XImplementationRegistration;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.ObjectOutputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XDataOutputStream</code></li>
+* <li> <code>com::sun::star::io::XObjectOutputStream</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> MyPersistObjectImpl.jar </b> : the implementation of the persist
+* object</li>
+* </ul> <p>
+* @see com.sun.star.io.ObjectOutputStream
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XDataOutputStream
+* @see com.sun.star.io.XObjectOutputStream
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XOutputStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XDataOutputStream
+* @see ifc.io._XObjectOutputStream
+*/
+public class ObjectOutputStream extends TestCase {
+
+ /**
+ * Register the implementation of service
+ * <code>com.sun.star.cmp.PersistObject</code> if not yet registered.
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ public void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ Object oPersObj = null;
+ // test first if object is already registered
+ try {
+ oPersObj = xMSF.createInstance("com.sun.star.cmp.PersistObject");
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Could not create instance of PersistObject");
+ e.printStackTrace(log);
+ log.println("Going on with test...");
+ }
+ if ( oPersObj == null ) {
+ // object is not available: it has to be registered
+ String url = util.utils.getFullTestURL
+ ("qadevlibs/MyPersistObjectImpl.jar");
+ XImplementationRegistration xir;
+ Object o = xMSF.createInstance(
+ "com.sun.star.registry.ImplementationRegistration");
+ xir = UnoRuntime.queryInterface(
+ XImplementationRegistration.class, o);
+
+ XSimpleRegistry xReg = null;
+ System.out.println("Register library: " + url);
+ xir.registerImplementation(
+ "com.sun.star.loader.Java2", url, xReg);
+ System.out.println("...done");
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services
+ * <code>com.sun.star.io.ObjectOutputStream</code>,
+ * <code>com.sun.star.io.Pipe</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>. Plugs the created
+ * markable output stream as output stream for the created
+ * <code>ObjectOutputStream</code>. Plugs the created pipe as output stream
+ * for the created <code>MarkableOutputStream</code>. Creates an instance
+ * of the service <code>com.sun.star.cmp.PersistObject</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataOutputStream}(the data that should
+ * be written into the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XOutputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}
+ * (another object that can be connected) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}
+ * (an input stream to set and get) </li>
+ * <li> <code>'PersistObject'</code> for
+ * {@link ifc.io._XObjectOutputStream}(the created instance of the
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XObjectInputStream}(the created instance of the
+ * persist object ) </li>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ * @see com.sun.star.io.ObjectInputStream
+ * @see com.sun.star.io.ObjectOutputStream
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ XObjectOutputStream oStream = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object ostream = null, istream = null;
+ Object aPipe = null;
+ Object mostream = null;
+ XInterface aConnect = null;
+ Object minstream = null;
+
+ ostream = xMSF.createInstance
+ ( "com.sun.star.io.ObjectOutputStream" );
+ istream = xMSF.createInstance
+ ("com.sun.star.io.ObjectInputStream");
+ aPipe = xMSF.createInstance("com.sun.star.io.Pipe");
+ mostream = xMSF.createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+ aConnect = (XInterface)xMSF.createInstance
+ ("com.sun.star.io.DataInputStream");
+ minstream = xMSF.createInstance
+ ("com.sun.star.io.MarkableInputStream");
+
+ // creating the pipe where object has to be written to
+ XActiveDataSource xdSo = UnoRuntime.queryInterface(XActiveDataSource.class, ostream);
+
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XOutputStream moStream = UnoRuntime.queryInterface(XOutputStream.class, mostream);
+
+ XActiveDataSink markIn = UnoRuntime.queryInterface(XActiveDataSink.class, minstream);
+ XActiveDataSink inStream = UnoRuntime.queryInterface(XActiveDataSink.class, istream);
+ XInputStream markInStream = UnoRuntime.queryInterface(XInputStream.class, minstream);
+
+ final XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class,aPipe);
+ final XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class,aPipe);
+
+ markIn.setInputStream(PipeIn);
+ inStream.setInputStream(markInStream);
+ XObjectInputStream objInputStream = UnoRuntime.queryInterface(XObjectInputStream.class, istream);
+ xdSo.setOutputStream(moStream);
+ xdSmo.setOutputStream(PipeOut);
+
+ oStream = UnoRuntime.queryInterface(XObjectOutputStream.class, ostream);
+
+ // creating Persistent object which has to be written
+ XPersistObject xPersObj = null ;
+ Object oPersObj = xMSF.createInstance
+ ("com.sun.star.cmp.PersistObject");
+ xPersObj = UnoRuntime.queryInterface(XPersistObject.class, oPersObj);
+
+ oObj = oStream;
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("PersistObject", xPersObj);
+ tEnv.addObjRelation("StreamData", data);
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("OutputStream", aPipe);
+ tEnv.addObjRelation("Connectable", aConnect);
+
+ tEnv.addObjRelation("InputStream", objInputStream);
+
+ //add relation for io.XOutputStream
+ final XMultiServiceFactory msf = xMSF;
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ XInputStream xInStream = null;
+ public void resetStreams() {
+ if (xInStream != null) {
+ try {
+ xInStream.closeInput();
+ xInStream = null;
+ } catch(com.sun.star.io.IOException e) {
+ }
+ } else {
+ try {
+ PipeOut.closeOutput();
+ } catch(com.sun.star.io.IOException e) {
+ }
+ }
+ }
+
+ public XInputStream getInStream() {
+ resetStreams();
+ try {
+ Object oInStream = msf.createInstance(
+ "com.sun.star.io.ObjectInputStream");
+ xInStream = UnoRuntime.queryInterface
+ (XInputStream.class, oInStream);
+ } catch(com.sun.star.uno.Exception e) {
+ return null;
+ }
+
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, xInStream);
+ xDataSink.setInputStream(PipeIn);
+
+ return xInStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/Pipe.java b/qadevOOo/tests/java/mod/_stm/Pipe.java
new file mode 100644
index 000000000..facd2cafe
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/Pipe.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.Pipe</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* </ul>
+* @see com.sun.star.io.Pipe
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XOutputStream
+* @see ifc.io._XInputStream
+* @see ifc.io._XOutputStream
+*/
+public class Pipe extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service <code>com.sun.star.io.Pipe</code>.
+ * Writes some information to the created pipe.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ * @see com.sun.star.io.Pipe
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance( "com.sun.star.io.Pipe" );
+
+ oObj = (XInterface) oInterface;
+
+ // writing some information to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //add relation for io.XOutputStream
+ final XInputStream iStream = UnoRuntime.queryInterface(XInputStream.class, oObj);
+
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("StreamWriter", oObj);
+
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ public void resetStreams() {
+ }
+
+ public XInputStream getInStream() {
+ return iStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/Pump.java b/qadevOOo/tests/java/mod/_stm/Pump.java
new file mode 100644
index 000000000..d53d6ea1e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/Pump.java
@@ -0,0 +1,174 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._stm;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.io.NotConnectedException;
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.Pump</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XActiveDataControl</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* </ul>
+* @see com.sun.star.io.Pump
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XActiveDataControl
+* @see com.sun.star.io.XActiveDataSink
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XActiveDataControl
+* @see ifc.io._XActiveDataSink
+*/
+public class Pump extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service <code>com.sun.star.io.Pump</code>.
+ * Settings up input and output streams for the created pump.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}(an input stream to set) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}(an output stream to set) </li>
+ * </ul>
+ * @see com.sun.star.io.Pump
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ Object oInterface = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oPipe;
+
+ // creating an instance of stm.Pump
+ oInterface = xMSF.createInstance( "com.sun.star.io.Pump" );
+ oPipe = (XInterface) xMSF.createInstance( "com.sun.star.io.Pipe" );
+
+
+ XInterface oObj = (XInterface) oInterface;
+
+ // setting up input and output streams for pump
+ XActiveDataSink xSink = UnoRuntime.queryInterface(XActiveDataSink.class, oObj);
+ XActiveDataSource xSource = UnoRuntime.queryInterface(XActiveDataSource.class, oObj);
+
+ XInputStream xInput = new MyInput();
+ XOutputStream xOutput = new MyOutput();
+
+ xSink.setInputStream(xInput);
+ xSource.setOutputStream(xOutput);
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // add object relations for ActiveDataSource and XActiveDataSink
+ tEnv.addObjRelation("InputStream", oPipe);
+ tEnv.addObjRelation("OutputStream", oPipe);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * XInputStream implementation to use with the test. It returns bytes of
+ * which a simple string consists.
+ */
+ private static class MyInput implements XInputStream {
+ String str = "Pump tesing string" ;
+
+ public int readBytes(byte[][] bytes, int len)
+ throws NotConnectedException{
+
+ if (str == null)
+ throw new NotConnectedException("Input stream was closed");
+
+ int actual = 0 ;
+ if (len <= str.length()) {
+ String resStr = str.substring(0, len-1) ;
+ bytes[0] = resStr.getBytes() ;
+ actual = len ;
+ str = str.substring(len) ;
+ } else {
+ bytes[0] = str.getBytes() ;
+ actual = str.length() ;
+ }
+
+ return actual;
+ }
+
+ public int readSomeBytes(byte[][] bytes, int len)
+ throws NotConnectedException{
+ return readBytes(bytes, len);
+ }
+
+ public void skipBytes(int len) throws NotConnectedException {
+ if (str == null)
+ throw new NotConnectedException("Stream was closed.") ;
+
+ if (len >= str.length())
+ str = "" ;
+ else
+ str = str.substring(len) ;
+ }
+
+ public void closeInput() throws NotConnectedException {
+ if (str == null)
+ throw new NotConnectedException("Stream was closed.") ;
+
+ str = null ;
+ }
+
+ public int available() throws NotConnectedException {
+ if (str == null)
+ throw new NotConnectedException("Stream was closed.") ;
+
+ return str.length();
+ }
+ }
+
+ /**
+ * Dummy XOutputStream implementation to use with the test. Does nothing.
+ */
+ private static class MyOutput implements XOutputStream {
+ public void writeBytes(byte[] bytes) {
+ }
+
+ public void flush() {
+ }
+
+ public void closeOutput() {
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_stm/package.html b/qadevOOo/tests/java/mod/_stm/package.html
new file mode 100644
index 000000000..aa2793cf2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_stm/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'stm'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_streams/uno/DataInputStream.java b/qadevOOo/tests/java/mod/_streams/uno/DataInputStream.java
new file mode 100644
index 000000000..a1c4a49d9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/DataInputStream.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XDataOutputStream;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.DataInputStream</code>.
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XDataInputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* </ul>
+* @see com.sun.star.io.DataInputStream
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XDataInputStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XActiveDataSink
+* @see ifc.io._XInputStream
+* @see ifc.io._XDataInputStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XActiveDataSink
+*/
+public class DataInputStream extends TestCase {
+
+ /**
+ * Creates a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.io.DataInputStream</code> object,
+ * connects it to <code>com.sun.star.io.DataOutputStream</code>
+ * through <code>com.sun.star.io.Pipe</code>. All of possible data
+ * types are written into <code>DataOutputStream</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'StreamWriter'</code> for
+ * {@link ifc.io._XDataInputStream}
+ * {@link ifc.io._XInputStream}(a stream to write data to) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}(another object that can be connected) </li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink}(an input stream to set and get) </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance("com.sun.star.io.DataInputStream");
+
+ XInterface oObj = (XInterface) oInterface;
+
+ // creating and connecting DataOutputStream to the
+ // DataInputStream created through the Pipe
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(XActiveDataSink.class, oObj);
+
+ XInterface oPipe = (XInterface)
+ xMSF.createInstance("com.sun.star.io.Pipe");
+
+ XInputStream xPipeInput = UnoRuntime.queryInterface(XInputStream.class, oPipe);
+ XOutputStream xPipeOutput = UnoRuntime.queryInterface(XOutputStream.class, oPipe);
+
+ XInterface oDataOutput = (XInterface)
+ xMSF.createInstance("com.sun.star.io.DataOutputStream");
+
+ XDataOutputStream xDataOutput = UnoRuntime.queryInterface(XDataOutputStream.class, oDataOutput) ;
+ XActiveDataSource xDataSource = UnoRuntime.queryInterface(XActiveDataSource.class, oDataOutput) ;
+
+ xDataSource.setOutputStream(xPipeOutput) ;
+ xDataSink.setInputStream(xPipeInput) ;
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ // creating a connectable object for XConnectable interface
+ XInterface xConnect = (XInterface)xMSF.createInstance(
+ "com.sun.star.io.DataInputStream") ;
+
+ // creating an input stream to set in XActiveDataSink
+ XInterface oDataInput = (XInterface) xMSF.createInstance(
+ "com.sun.star.io.Pipe" );
+
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding sequence of data that must be read
+ // by XDataInputStream interface methods
+ tEnv.addObjRelation("StreamData", data) ;
+ // add a writer
+ tEnv.addObjRelation("StreamWriter", xDataOutput);
+ // add a connectable
+ tEnv.addObjRelation("Connectable", xConnect);
+ // add an inputStream
+ tEnv.addObjRelation("InputStream", oDataInput);
+ tEnv.addObjRelation("ByteData", byteData);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/DataOutputStream.java b/qadevOOo/tests/java/mod/_streams/uno/DataOutputStream.java
new file mode 100644
index 000000000..fad95930a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/DataOutputStream.java
@@ -0,0 +1,163 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.DataOutputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* <li> <code>com::sun::star::io::XDataOutputStream</code></li>
+* </ul>
+* @see com.sun.star.io.DataOutputStream
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+* @see com.sun.star.io.XDataOutputStream
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XOutputStream
+* @see ifc.io._XDataOutputStream
+*/
+public class DataOutputStream extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.io.DataOutputStream</code>
+ * and an instance of the service <code>com.sun.star.io.Pipe</code>.
+ * Plugs the created pipe as output stream for the created DataOutputStream.
+ * @see com.sun.star.io.DataOutputStream
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}
+ * (an input stream to set and get) </li>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ XInterface oPipe = null;
+ XMultiServiceFactory xMSF = null ;
+
+ xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ("com.sun.star.io.DataOutputStream");
+ oPipe = (XInterface)xMSF.createInstance("com.sun.star.io.Pipe");
+
+ oObj = (XInterface) oInterface;
+
+ final XOutputStream xPipeOutput = UnoRuntime.queryInterface(XOutputStream.class, oPipe);
+
+ XActiveDataSource xDataSource = UnoRuntime.queryInterface(XActiveDataSource.class, oObj);
+
+ xDataSource.setOutputStream(xPipeOutput);
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("StreamData", data);
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("OutputStream", oPipe);
+
+ //add relation for io.XOutputStream
+ final XMultiServiceFactory msf = xMSF;
+ final XInputStream xPipeInput = UnoRuntime.queryInterface(XInputStream.class, oPipe);
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ XInputStream xInStream = null;
+ public void resetStreams() {
+ if (xInStream != null) {
+ try {
+ xInStream.closeInput();
+ xInStream = null;
+ } catch(com.sun.star.io.IOException e) {
+ }
+ } else {
+ try {
+ xPipeOutput.closeOutput();
+ } catch(com.sun.star.io.IOException e) {
+ }
+ }
+ }
+
+ public XInputStream getInStream() {
+ resetStreams();
+ try {
+ Object oInStream = msf.createInstance(
+ "com.sun.star.io.DataInputStream");
+ xInStream = UnoRuntime.queryInterface
+ (XInputStream.class, oInStream);
+ } catch(com.sun.star.uno.Exception e) {
+ return null;
+ }
+
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, xInStream);
+ xDataSink.setInputStream(xPipeInput);
+
+ return xInStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/MarkableInputStream.java b/qadevOOo/tests/java/mod/_streams/uno/MarkableInputStream.java
new file mode 100644
index 000000000..30f0202a1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/MarkableInputStream.java
@@ -0,0 +1,128 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.MarkableInputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XMarkableStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* </ul>
+* @see com.sun.star.io.MarkableInputStream
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XMarkableStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XActiveDataSink
+* @see ifc.io._XInputStream
+* @see ifc.io._XMarkableStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XActiveDataSink
+*/
+public class MarkableInputStream extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services <code>com.sun.star.io.Pipe</code>,
+ * <code>com.sun.star.io.MarkableInputStream</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>.
+ * Plugs the created pipe as output stream for the created
+ * <code>MarkableOutputStream</code>. Plugs the created pipe as input stream
+ * for the created <code>MarkableInputStream</code>. Writes some data to the
+ * <code>MarkableOutputStream</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamWriter'</code> for
+ * {@link ifc.io._XInputStream}(a stream to write data to) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}(another object that can be connected) </li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink}(an input stream to set and get) </li>
+ * </ul>
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+
+ Object aPipe = null;
+ Object mostream = null;
+ Object mistream = null;
+ Object xConnect = null;
+ aPipe = xMSF.createInstance("com.sun.star.io.Pipe");
+ mistream = xMSF.createInstance("com.sun.star.io.MarkableInputStream");
+ mostream = xMSF.createInstance("com.sun.star.io.MarkableOutputStream");
+ xConnect = xMSF.createInstance("com.sun.star.io.DataInputStream");
+
+ // Creating construction :
+ // MarkableOutputStream -> Pipe -> MarkableInputStream
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class, aPipe);
+ XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class, aPipe);
+
+ xdSmo.setOutputStream(PipeOut);
+
+ XActiveDataSink xmSi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+
+ xmSi.setInputStream(PipeIn) ;
+
+ XInterface oObj = (XInterface) mistream;
+
+ byte[] byteData = new byte[] {1,2,3,4,5,6};
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // add a writer
+ tEnv.addObjRelation("StreamWriter", mostream);
+ // add a connectable
+ tEnv.addObjRelation("Connectable", xConnect);
+ // add an inputStream
+ tEnv.addObjRelation("InputStream", mistream);
+ tEnv.addObjRelation("ByteData", byteData);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/MarkableOutputStream.java b/qadevOOo/tests/java/mod/_streams/uno/MarkableOutputStream.java
new file mode 100644
index 000000000..f08b20f17
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/MarkableOutputStream.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.MarkableOutputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XMarkableStream</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* </ul>
+* @see com.sun.star.io.MarkableOutputStream
+* @see com.sun.star.io.XMarkableStream
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+* @see com.sun.star.io.XConnectable
+* @see ifc.io._XMarkableStream
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XOutputStream
+* @see ifc.io._XConnectable
+*/
+public class MarkableOutputStream extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services <code>com.sun.star.io.Pipe</code>,
+ * <code>com.sun.star.io.MarkableInputStream</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>.
+ * Plugs the created pipe as output stream for the created
+ * <code>MarkableOutputStream</code>. Plugs the created pipe as input stream
+ * for the created <code>MarkableInputStream</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XOutputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataOutputStream}(the data that should be
+ * written into the stream) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}
+ * (another object that can be connected) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}
+ * (an input stream to set and get) </li>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object aPipe = null;
+ Object mostream = null;
+ Object mistream = null;
+ XInterface aConnect;
+
+ aPipe = xMSF.createInstance("com.sun.star.io.Pipe");
+ mistream = xMSF.createInstance
+ ("com.sun.star.io.MarkableInputStream");
+ mostream = xMSF.createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+ aConnect = (XInterface)xMSF.createInstance
+ ("com.sun.star.io.DataOutputStream");
+
+ // Creating construction :
+ // MarkableOutputStream -> Pipe -> MarkableInputStream
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ final XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class,aPipe);
+ final XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class,aPipe);
+
+ xdSmo.setOutputStream(PipeOut);
+
+ XActiveDataSink xmSi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+
+ xmSi.setInputStream(PipeIn) ;
+
+ oObj = (XInterface) mostream;
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("StreamData", data);
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("OutputStream", aPipe);
+ tEnv.addObjRelation("Connectable", aConnect);
+
+ //add relation for io.XOutputStream
+ final XMultiServiceFactory msf = xMSF;
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ XInputStream xInStream = null;
+ public void resetStreams() {
+ if (xInStream != null) {
+ try {
+ xInStream.closeInput();
+ xInStream = null;
+ } catch(com.sun.star.io.IOException e) {
+ }
+ } else {
+ try {
+ PipeOut.closeOutput();
+ } catch(com.sun.star.io.IOException e) {
+ }
+ }
+ }
+
+ public XInputStream getInStream() {
+ resetStreams();
+ try {
+ Object oInStream = msf.createInstance(
+ "com.sun.star.io.MarkableInputStream");
+ xInStream = UnoRuntime.queryInterface
+ (XInputStream.class, oInStream);
+ } catch(com.sun.star.uno.Exception e) {
+ return null;
+ }
+
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, xInStream);
+ xDataSink.setInputStream(PipeIn);
+
+ return xInStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/ObjectInputStream.java b/qadevOOo/tests/java/mod/_streams/uno/ObjectInputStream.java
new file mode 100644
index 000000000..6be959ed9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/ObjectInputStream.java
@@ -0,0 +1,256 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.registry.XImplementationRegistration;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.ObjectInputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XMarkableStream</code></li>
+* <li> <code>com::sun::star::io::XDataInputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* <li> <code>com::sun::star::io::XObjectInputStream</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> MyPersistObjectImpl.jar </b> : the implementation of the persist
+* object</li>
+* </ul> <p>
+* @see com.sun.star.io.ObjectInputStream
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XMarkableStream
+* @see com.sun.star.io.XDataInputStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XActiveDataSink
+* @see com.sun.star.io.XObjectInputStream
+* @see ifc.io._XInputStream
+* @see ifc.io._XMarkableStream
+* @see ifc.io._XDataInputStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XActiveDataSink
+* @see ifc.io._XObjectInputStream
+*/
+public class ObjectInputStream extends TestCase {
+
+ /**
+ * Register the implementation of service
+ * <code>com.sun.star.cmp.PersistObject</code> if not yet registered.
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ public void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ Object oPersObj = null;
+ // test first if object is already registered
+ try {
+ oPersObj = xMSF.createInstance("com.sun.star.cmp.PersistObject");
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Could not create instance of PersistObject");
+ e.printStackTrace(log);
+ log.println("Going on with test...");
+ }
+ if ( oPersObj == null ) {
+ // object is not available: it has to be registered
+ String url = util.utils.getFullTestURL
+ ("qadevlibs/MyPersistObjectImpl.jar");
+ XImplementationRegistration xir;
+ Object o = xMSF.createInstance(
+ "com.sun.star.registry.ImplementationRegistration");
+ xir = UnoRuntime.queryInterface(
+ XImplementationRegistration.class, o);
+
+ XSimpleRegistry xReg = null;
+ System.out.println("Register library: " + url);
+ xir.registerImplementation(
+ "com.sun.star.loader.Java2", url, xReg);
+ System.out.println("...done");
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services
+ * <code>com.sun.star.io.ObjectInputStream</code>,
+ * <code>com.sun.star.io.ObjectOutputStream</code>,
+ * <code>com.sun.star.io.Pipe</code>,
+ * <code>com.sun.star.io.MarkableInputStream</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>. Plugs the created
+ * markable output stream as output stream for the created
+ * <code>ObjectOutputStream</code>. Plugs the created pipe as output stream
+ * for the created <code>MarkableOutputStream</code>. Plugs the created
+ * markable input stream as input stream for the created
+ * <code>ObjectInputStream</code>. Plugs the created pipe as input stream
+ * for the created <code>MarkableInputStream</code>. Creates an instance
+ * of the service <code>com.sun.star.cmp.PersistObject</code> and writes
+ * the created object to the object output stream.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PersistObject'</code> for
+ * {@link ifc.io._XObjectInputStream}(the created instance of the
+ * persist object ) </li>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XInputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'StreamWriter'</code> for
+ * {@link ifc.io._XDataInputStream}
+ * {@link ifc.io._XObjectInputStream}
+ * {@link ifc.io._XInputStream}(a stream to write data to) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}
+ * (another object that can be connected) </li>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSink}(an input stream to set and get) </li>
+ * </ul>
+ * @see com.sun.star.io.ObjectInputStream
+ * @see com.sun.star.io.ObjectOutputStream
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ System.out.println("create TestEnvironment started.");
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object ostream = null;
+ Object aPipe = null;
+ Object mostream = null;
+ Object mistream = null;
+ Object istream = null;
+ Object xConnect = null;
+ istream = xMSF.createInstance
+ ("com.sun.star.io.ObjectInputStream");
+ ostream = xMSF.createInstance
+ ("com.sun.star.io.ObjectOutputStream");
+ aPipe = xMSF.createInstance
+ ("com.sun.star.io.Pipe");
+ mistream = xMSF.createInstance
+ ("com.sun.star.io.MarkableInputStream");
+ mostream = xMSF.createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+ xConnect = xMSF.createInstance
+ ("com.sun.star.io.DataInputStream") ;
+ // Creating construction :
+ // ObjectOutputStream -> MarkableOutputStream -> Pipe ->
+ // -> MarkableInputStream -> ObjectInputStream
+ XActiveDataSource xdSo = UnoRuntime.queryInterface(XActiveDataSource.class, ostream);
+
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XOutputStream moStream = UnoRuntime.queryInterface(XOutputStream.class, mostream);
+
+ XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class, aPipe);
+ XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class, aPipe);
+
+ xdSo.setOutputStream(moStream);
+ xdSmo.setOutputStream(PipeOut);
+
+ XObjectInputStream iStream = UnoRuntime.queryInterface(XObjectInputStream.class, istream);
+ XObjectOutputStream oStream = null;
+ oStream = UnoRuntime.queryInterface(XObjectOutputStream.class, ostream);
+
+ XActiveDataSink xmSi = UnoRuntime.queryInterface(XActiveDataSink.class, mistream);
+ XInputStream xmIstream = UnoRuntime.queryInterface(XInputStream.class, mistream);
+
+ XActiveDataSink xdSi = UnoRuntime.queryInterface
+ (XActiveDataSink.class, istream);
+ xdSi.setInputStream(xmIstream);
+ xmSi.setInputStream(PipeIn);
+
+ // creating Persist object which has to be written
+ XPersistObject xPersObj = null;
+ try {
+ Object oPersObj = xMSF.createInstance
+ ("com.sun.star.cmp.PersistObject");
+ xPersObj = UnoRuntime.queryInterface(XPersistObject.class, oPersObj);
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ throw new StatusException("Can't write persist object.", e);
+ }
+
+
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+
+ System.out.println("create environment");
+ XInterface oObj = iStream;
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding persistent object
+ tEnv.addObjRelation("PersistObject", xPersObj);
+ // add a connectable
+ tEnv.addObjRelation("Connectable", xConnect);
+ tEnv.addObjRelation("StreamWriter", oStream);
+ // for XActiveDataSink
+ tEnv.addObjRelation("InputStream", aPipe);
+ // adding sequence of data that must be read
+ // by XDataInputStream interface methods
+ tEnv.addObjRelation("StreamData", data) ;
+ // and by XInputStream interface methods
+ tEnv.addObjRelation("ByteData", byteData) ;
+
+ System.out.println("create TestEnvironment finished.");
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/ObjectOutputStream.java b/qadevOOo/tests/java/mod/_streams/uno/ObjectOutputStream.java
new file mode 100644
index 000000000..98ffcbcb3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/ObjectOutputStream.java
@@ -0,0 +1,271 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XObjectInputStream;
+import com.sun.star.io.XObjectOutputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.io.XPersistObject;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.registry.XImplementationRegistration;
+import com.sun.star.registry.XSimpleRegistry;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.ObjectOutputStream</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* <li> <code>com::sun::star::io::XConnectable</code></li>
+* <li> <code>com::sun::star::io::XDataOutputStream</code></li>
+* <li> <code>com::sun::star::io::XObjectOutputStream</code></li>
+* </ul>
+* The following files used by this test :
+* <ul>
+* <li><b> MyPersistObjectImpl.jar </b> : the implementation of the persist
+* object</li>
+* </ul> <p>
+* @see com.sun.star.io.ObjectOutputStream
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XOutputStream
+* @see com.sun.star.io.XConnectable
+* @see com.sun.star.io.XDataOutputStream
+* @see com.sun.star.io.XObjectOutputStream
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XOutputStream
+* @see ifc.io._XConnectable
+* @see ifc.io._XDataOutputStream
+* @see ifc.io._XObjectOutputStream
+*/
+public class ObjectOutputStream extends TestCase {
+
+ /**
+ * Register the implementation of service
+ * <code>com.sun.star.cmp.PersistObject</code> if not yet registered.
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ public void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ Object oPersObj = null;
+ // test first if object is already registered
+ try {
+ oPersObj = xMSF.createInstance("com.sun.star.cmp.PersistObject");
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Could not create instance of PersistObject");
+ e.printStackTrace(log);
+ log.println("Going on with test...");
+ }
+ if ( oPersObj == null ) {
+ // object is not available: it has to be registered
+ String url = util.utils.getFullTestURL
+ ("qadevlibs/MyPersistObjectImpl.jar");
+ XImplementationRegistration xir;
+ Object o = xMSF.createInstance(
+ "com.sun.star.registry.ImplementationRegistration");
+ xir = UnoRuntime.queryInterface(
+ XImplementationRegistration.class, o);
+
+ XSimpleRegistry xReg = null;
+ System.out.println("Register library: " + url);
+ xir.registerImplementation(
+ "com.sun.star.loader.Java2", url, xReg);
+ System.out.println("...done");
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of services
+ * <code>com.sun.star.io.ObjectOutputStream</code>,
+ * <code>com.sun.star.io.Pipe</code> and
+ * <code>com.sun.star.io.MarkableOutputStream</code>. Plugs the created
+ * markable output stream as output stream for the created
+ * <code>ObjectOutputStream</code>. Plugs the created pipe as output stream
+ * for the created <code>MarkableOutputStream</code>. Creates an instance
+ * of the service <code>com.sun.star.cmp.PersistObject</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'StreamData'</code> for
+ * {@link ifc.io._XDataOutputStream}(the data that should
+ * be written into the stream) </li>
+ * <li> <code>'ByteData'</code> for
+ * {@link ifc.io._XOutputStream}(the data that should be written into
+ * the stream) </li>
+ * <li> <code>'Connectable'</code> for
+ * {@link ifc.io._XConnectable}
+ * (another object that can be connected) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}
+ * (an input stream to set and get) </li>
+ * <li> <code>'PersistObject'</code> for
+ * {@link ifc.io._XObjectOutputStream}(the created instance of the
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XObjectInputStream}(the created instance of the
+ * persist object ) </li>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ * @see com.sun.star.io.ObjectInputStream
+ * @see com.sun.star.io.ObjectOutputStream
+ * @see com.sun.star.io.Pipe
+ * @see com.sun.star.io.MarkableInputStream
+ * @see com.sun.star.io.MarkableOutputStream
+ * @see com.sun.star.cmp.PersistObject
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ XObjectOutputStream oStream = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object ostream = null, istream = null;
+ Object aPipe = null;
+ Object mostream = null;
+ XInterface aConnect = null;
+ Object minstream = null;
+
+ ostream = xMSF.createInstance
+ ( "com.sun.star.io.ObjectOutputStream" );
+ istream = xMSF.createInstance
+ ("com.sun.star.io.ObjectInputStream");
+ aPipe = xMSF.createInstance("com.sun.star.io.Pipe");
+ mostream = xMSF.createInstance
+ ("com.sun.star.io.MarkableOutputStream");
+ aConnect = (XInterface)xMSF.createInstance
+ ("com.sun.star.io.DataInputStream");
+ minstream = xMSF.createInstance
+ ("com.sun.star.io.MarkableInputStream");
+
+ // creating the pipe where object has to be written to
+ XActiveDataSource xdSo = UnoRuntime.queryInterface(XActiveDataSource.class, ostream);
+
+ XActiveDataSource xdSmo = UnoRuntime.queryInterface(XActiveDataSource.class, mostream);
+
+ XOutputStream moStream = UnoRuntime.queryInterface(XOutputStream.class, mostream);
+
+ XActiveDataSink markIn = UnoRuntime.queryInterface(XActiveDataSink.class, minstream);
+ XActiveDataSink inStream = UnoRuntime.queryInterface(XActiveDataSink.class, istream);
+ XInputStream markInStream = UnoRuntime.queryInterface(XInputStream.class, minstream);
+
+ final XOutputStream PipeOut = UnoRuntime.queryInterface(XOutputStream.class,aPipe);
+ final XInputStream PipeIn = UnoRuntime.queryInterface(XInputStream.class,aPipe);
+
+ markIn.setInputStream(PipeIn);
+ inStream.setInputStream(markInStream);
+ XObjectInputStream objInputStream = UnoRuntime.queryInterface(XObjectInputStream.class, istream);
+ xdSo.setOutputStream(moStream);
+ xdSmo.setOutputStream(PipeOut);
+
+ oStream = UnoRuntime.queryInterface(XObjectOutputStream.class, ostream);
+
+ // creating Persistent object which has to be written
+ XPersistObject xPersObj = null ;
+ Object oPersObj = xMSF.createInstance
+ ("com.sun.star.cmp.PersistObject");
+ xPersObj = UnoRuntime.queryInterface(XPersistObject.class, oPersObj);
+
+ oObj = oStream;
+
+ // all data types for writing to an XDataInputStream
+ ArrayList<Object> data = new ArrayList<Object>() ;
+ data.add(Boolean.TRUE) ;
+ data.add(Byte.valueOf((byte)123)) ;
+ data.add(new Character((char)1234)) ;
+ data.add(Short.valueOf((short)1234)) ;
+ data.add(Integer.valueOf(123456)) ;
+ data.add(new Float(1.234)) ;
+ data.add(new Double(1.23456)) ;
+ data.add("DataInputStream") ;
+ // information for writing to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("PersistObject", xPersObj);
+ tEnv.addObjRelation("StreamData", data);
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("OutputStream", aPipe);
+ tEnv.addObjRelation("Connectable", aConnect);
+
+ tEnv.addObjRelation("InputStream", objInputStream);
+
+ //add relation for io.XOutputStream
+ final XMultiServiceFactory msf = xMSF;
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ XInputStream xInStream = null;
+ public void resetStreams() {
+ if (xInStream != null) {
+ try {
+ xInStream.closeInput();
+ xInStream = null;
+ } catch(com.sun.star.io.IOException e) {
+ }
+ } else {
+ try {
+ PipeOut.closeOutput();
+ } catch(com.sun.star.io.IOException e) {
+ }
+ }
+ }
+
+ public XInputStream getInStream() {
+ resetStreams();
+ try {
+ Object oInStream = msf.createInstance(
+ "com.sun.star.io.ObjectInputStream");
+ xInStream = UnoRuntime.queryInterface
+ (XInputStream.class, oInStream);
+ } catch(com.sun.star.uno.Exception e) {
+ return null;
+ }
+
+ XActiveDataSink xDataSink = UnoRuntime.queryInterface(
+ XActiveDataSink.class, xInStream);
+ xDataSink.setInputStream(PipeIn);
+
+ return xInStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/Pipe.java b/qadevOOo/tests/java/mod/_streams/uno/Pipe.java
new file mode 100644
index 000000000..96c4891a1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/Pipe.java
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.Pipe</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XInputStream</code></li>
+* <li> <code>com::sun::star::io::XOutputStream</code></li>
+* </ul>
+* @see com.sun.star.io.Pipe
+* @see com.sun.star.io.XInputStream
+* @see com.sun.star.io.XOutputStream
+* @see ifc.io._XInputStream
+* @see ifc.io._XOutputStream
+*/
+public class Pipe extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service <code>com.sun.star.io.Pipe</code>.
+ * Writes some information to the created pipe.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XOutputStream.StreamChecker'</code> for
+ * {@link ifc.io._XOutputStream}( implementation of the interface
+ * ifc.io._XOutputStream.StreamChecker ) </li>
+ * </ul>
+ * @see com.sun.star.io.Pipe
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance( "com.sun.star.io.Pipe" );
+
+ oObj = (XInterface) oInterface;
+
+ // writing some information to the pipe
+ byte[] byteData = new byte[] {
+ 1, 2, 3, 4, 5, 6, 7, 8 } ;
+
+ log.println( "creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //add relation for io.XOutputStream
+ final XInputStream iStream = UnoRuntime.queryInterface(XInputStream.class, oObj);
+
+ tEnv.addObjRelation("ByteData", byteData);
+ tEnv.addObjRelation("StreamWriter", oObj);
+
+ tEnv.addObjRelation("XOutputStream.StreamChecker",
+ new ifc.io._XOutputStream.StreamChecker() {
+ public void resetStreams() {
+ }
+
+ public XInputStream getInStream() {
+ return iStream;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/Pump.java b/qadevOOo/tests/java/mod/_streams/uno/Pump.java
new file mode 100644
index 000000000..85669fbcc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/Pump.java
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._streams.uno;
+
+import com.sun.star.io.NotConnectedException;
+import com.sun.star.io.XActiveDataSink;
+import com.sun.star.io.XActiveDataSource;
+import com.sun.star.io.XInputStream;
+import com.sun.star.io.XOutputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.io.Pump</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::io::XActiveDataSource</code></li>
+* <li> <code>com::sun::star::io::XActiveDataControl</code></li>
+* <li> <code>com::sun::star::io::XActiveDataSink</code></li>
+* </ul>
+* @see com.sun.star.io.Pump
+* @see com.sun.star.io.XActiveDataSource
+* @see com.sun.star.io.XActiveDataControl
+* @see com.sun.star.io.XActiveDataSink
+* @see ifc.io._XActiveDataSource
+* @see ifc.io._XActiveDataControl
+* @see ifc.io._XActiveDataSink
+*/
+public class Pump extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service <code>com.sun.star.io.Pump</code>.
+ * Settings up input and output streams for the created pump.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'InputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}(an input stream to set) </li>
+ * <li> <code>'OutputStream'</code> for
+ * {@link ifc.io._XActiveDataSource}(an output stream to set) </li>
+ * </ul>
+ * @see com.sun.star.io.Pump
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ Object oInterface = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oPipe;
+
+ // creating an instance of stm.Pump
+ oInterface = xMSF.createInstance( "com.sun.star.io.Pump" );
+ oPipe = (XInterface) xMSF.createInstance( "com.sun.star.io.Pipe" );
+
+ XInterface oObj = (XInterface) oInterface;
+
+ // setting up input and output streams for pump
+ XActiveDataSink xSink = UnoRuntime.queryInterface(XActiveDataSink.class, oObj);
+ XActiveDataSource xSource = UnoRuntime.queryInterface(XActiveDataSource.class, oObj);
+
+ XInputStream xInput = new MyInput();
+ XOutputStream xOutput = new MyOutput();
+
+ xSink.setInputStream(xInput);
+ xSource.setOutputStream(xOutput);
+
+ log.println("creating a new environment for object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // add object relations for ActiveDataSource and XActiveDataSink
+ tEnv.addObjRelation("InputStream", oPipe);
+ tEnv.addObjRelation("OutputStream", oPipe);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ /**
+ * XInputStream implementation to use with the test. It returns bytes of
+ * which a simple string consists.
+ */
+ private static class MyInput implements XInputStream {
+ String str = "Pump tesing string" ;
+
+ public int readBytes(byte[][] bytes, int len)
+ throws NotConnectedException{
+
+ if (str == null)
+ throw new NotConnectedException("Input stream was closed");
+
+ int actual = 0 ;
+ if (len <= str.length()) {
+ String resStr = str.substring(0, len-1) ;
+ bytes[0] = resStr.getBytes() ;
+ actual = len ;
+ str = str.substring(len) ;
+ } else {
+ bytes[0] = str.getBytes() ;
+ actual = str.length() ;
+ }
+
+ return actual;
+ }
+
+ public int readSomeBytes(byte[][] bytes, int len)
+ throws NotConnectedException{
+ return readBytes(bytes, len);
+ }
+
+ public void skipBytes(int len) throws NotConnectedException {
+ if (str == null)
+ throw new NotConnectedException("Stream was closed.") ;
+
+ if (len >= str.length())
+ str = "" ;
+ else
+ str = str.substring(len) ;
+ }
+
+ public void closeInput() throws NotConnectedException {
+ if (str == null)
+ throw new NotConnectedException("Stream was closed.") ;
+
+ str = null ;
+ }
+
+ public int available() throws NotConnectedException {
+ if (str == null)
+ throw new NotConnectedException("Stream was closed.") ;
+
+ return str.length();
+ }
+ }
+
+ /**
+ * Dummy XOutputStream implementation to use with the test. Does nothing.
+ */
+ private static class MyOutput implements XOutputStream {
+ public void writeBytes(byte[] bytes) {
+ }
+
+ public void flush() {
+ }
+
+ public void closeOutput() {
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_streams/uno/package.html b/qadevOOo/tests/java/mod/_streams/uno/package.html
new file mode 100644
index 000000000..aa2793cf2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_streams/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'stm'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java
new file mode 100644
index 000000000..2bba0293e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.view.XSelectionSupplier;
+
+public class AccessibleBrowseBox extends TestCase {
+
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code> with an
+ * object to test and related objects. Subclasses should implement this
+ * method to provide the implementation and related objects. The method is
+ * called from <code>getTestEnvironment()</code>.
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose(); // get a soffice factory object
+ }
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(XDispatchProvider.class,
+ secondController);
+
+ XDispatch getting = null;
+
+ log.println("opening DatasourceBrowser");
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = xDesktop.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ XInterface oObj = null;
+
+ final XSelectionSupplier xSelect = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, the_frame2.getController());
+
+ PropertyValue[] params = new PropertyValue[]{new PropertyValue(), new PropertyValue(), new PropertyValue()};
+ params[0].Name = "DataSourceName";
+ params[0].Value = "Bibliography";
+ params[1].Name = "CommandType";
+ params[1].Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE);
+ params[2].Name = "Command";
+ params[2].Value = "biblio";
+
+ final PropertyValue[] fParams = params;
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL, "", "AccessibleBrowseBox");
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+
+ public void fireEvent() {
+ try {
+ xSelect.select(fParams);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java
new file mode 100644
index 000000000..a19e61076
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java
@@ -0,0 +1,222 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import com.sun.star.view.XSelectionSupplier;
+
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleBrowseBoxHeaderBar extends TestCase {
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the DataSource browser.
+ * Creates an instance of the service <code>com.sun.star.awt.Toolkit</code>
+ * and gets active top window. Then obtains an accessible object with
+ * the role <code>AccessibleRole.TABLE</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XDispatch getting = null;
+
+ log.println("opening DatasourceBrowser");
+
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+
+ // an XSelectionSupplier at the controller -> call with params
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ PropertyValue[] params = new PropertyValue[3];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "CommandType";
+ param2.Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE);
+ params[1] = param2;
+
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "Command";
+ param3.Value = "biblio";
+ params[2] = param3;
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = xDesktop.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ XController xCont = the_frame2.getController();
+
+ XSelectionSupplier xSelect = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, xCont);
+
+ xSelect.select(params);
+
+ XInterface oObj = null;
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XAccessibleComponent accComp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ oObj);
+ final Point point = accComp.getLocationOnScreen();
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Robot rob = new Robot();
+ rob.mouseMove(point.X + 5, point.Y + 5);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ System.out.println("couldn't fire event");
+ }
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java
new file mode 100644
index 000000000..e050458ec
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java
@@ -0,0 +1,207 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svtools;
+
+import com.sun.star.view.XSelectionSupplier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleBrowseBoxHeaderCell extends TestCase {
+
+ static XDesktop the_Desk;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ the_Desk = UnoRuntime.queryInterface(
+ XDesktop.class, DesktopTools.createDesktop(Param.getMSF()));
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the DataSource browser and loads
+ * the table. Creates an instance of the service
+ * <code>com.sun.star.awt.Toolkit</code> and gets active top window.
+ * Then obtains an accessible object with the role
+ * <code>AccessibleRole.UNKNOWN</code> and with the name
+ * <code>"Identifier"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * method <code>fireEvent()</code> is empty because object is transient
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ if (xTextDoc != null) xTextDoc.dispose();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.
+ queryInterface(XDispatchProvider.class, secondController);
+
+ XDispatch getting = null;
+
+ log.println( "opening DatasourceBrowser" );
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = the_Desk.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ XInterface oObj = null;
+
+ UnoRuntime.queryInterface(
+ XInitialization.class, the_frame2.getController());
+
+ PropertyValue[] params = new PropertyValue[3];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "CommandType";
+ param2.Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE);
+ params[1] = param2;
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "Command";
+ param3.Value = "biblio";
+ params[2] = param3;
+
+ XController xCont = the_frame2.getController();
+
+ XSelectionSupplier xSelect = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, xCont);
+
+ xSelect.select(params);
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.ROW_HEADER);
+
+ log.println("ImplementationName: "+ util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ }
+ });
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java
new file mode 100644
index 000000000..49f42f4c6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java
@@ -0,0 +1,209 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import com.sun.star.view.XSelectionSupplier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleBrowseBoxTable extends TestCase {
+ static XDesktop the_Desk;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ the_Desk = UnoRuntime.queryInterface(XDesktop.class,
+ DesktopTools.createDesktop(
+ Param.getMSF()));
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the DataSource browser.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.Toolkit</code> and gets active top window.
+ * Then obtains an accessible object with the role
+ * <code>AccessibleRole.TABLE</code> and with the name
+ * <code>"Table"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * method <code>fireEvent()</code> is empty because object is transient
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XDispatch getting = null;
+
+ log.println("opening DatasourceBrowser");
+
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = the_Desk.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+ XController xCont = the_frame2.getController();
+
+ the_frame2.setName("DatasourceBrowser");
+
+ final PropertyValue[] params = new PropertyValue[3];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "CommandType";
+ param2.Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE);
+ params[1] = param2;
+
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "Command";
+ param3.Value = "biblio";
+ params[2] = param3;
+
+ final XSelectionSupplier xSelect = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, xCont);
+
+
+ XInterface oObj = null;
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE,
+ "Table");
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ xSelect.select(params);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ }
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java
new file mode 100644
index 000000000..0adc36e3b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java
@@ -0,0 +1,174 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svtools;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleBrowseBoxTableCell extends TestCase {
+
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the DataSource browser and loads
+ * the table. Creates an instance of the service
+ * <code>com.sun.star.awt.Toolkit</code> and gets active top window.
+ * Then obtains an accessible object with the role
+ * <code>AccessibleRole.TABLE_CELL</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * method <code>fireEvent()</code> is empty because object is transient
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ if (xTextDoc != null) xTextDoc.dispose();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(XDispatchProvider.class,secondController);
+
+ XDispatch getting = null;
+
+ log.println( "opening DatasourceBrowser" );
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url,"_beamer",12);
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url,noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = xDesktop.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer",4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XInterface oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE_CELL);
+
+ log.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ }
+ });
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java b/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java
new file mode 100644
index 000000000..05907d287
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java
@@ -0,0 +1,244 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ */
+public class AccessibleIconChoiceCtrl extends TestCase {
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+ static XAccessibleAction accCloseButton = null;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Closes the Hyperlink dialog.
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("closing HyperlinkDialog");
+
+ try {
+ if (accCloseButton != null) {
+ accCloseButton.doAccessibleAction(0);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the Hyperlink dialog.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.Toolkit</code> and gets active top window.
+ * Then obtains an accessible object with the role
+ * <code>AccessibleRole.TREE</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * method <code>fireEvent()</code> selects accessible children
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) tParam.getMSF()
+ .createInstance("com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening HyperlinkDialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = (XInterface) tParam.getMSF()
+ .createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TREE);
+
+ XAccessibleContext closeButton = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON,
+ "Close");
+
+ accCloseButton = UnoRuntime.queryInterface(
+ XAccessibleAction.class, closeButton);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+ tEnv.addObjRelation("XAccessibleSelection.OneAlwaysSelected",
+ Boolean.TRUE);
+
+ String[] expectedStateNames = new String[] {
+ "com.sun.star.accessibility.AccessibleStateType.ENABLED",
+ "com.sun.star.accessibility.AccessibleStateType.FOCUSABLE",
+ "com.sun.star.accessibility.AccessibleStateType.SHOWING",
+ "com.sun.star.accessibility.AccessibleStateType.VISIBLE",
+ "com.sun.star.accessibility.AccessibleStateType.MANAGES_DESCENDANTS",
+ };
+
+ short[] expectedStates = new short[] {
+ com.sun.star.accessibility.AccessibleStateType.ENABLED,
+ com.sun.star.accessibility.AccessibleStateType.FOCUSABLE,
+ com.sun.star.accessibility.AccessibleStateType.SHOWING,
+ com.sun.star.accessibility.AccessibleStateType.VISIBLE,
+ com.sun.star.accessibility.AccessibleStateType.MANAGES_DESCENDANTS,
+ };
+
+ tEnv.addObjRelation("expectedStateNames", expectedStateNames);
+ tEnv.addObjRelation("expectedStates", expectedStates);
+
+ final XAccessibleSelection selection = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ selection.selectAccessibleChild(1);
+ selection.selectAccessibleChild(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ });
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrlEntry.java b/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrlEntry.java
new file mode 100644
index 000000000..847ae380b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrlEntry.java
@@ -0,0 +1,217 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svtools;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleIconChoiceCtrlEntry extends TestCase {
+
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+ static XAccessibleAction accCloseButton = null;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Closes the Hyperlink dialog.
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println("closing HyperlinkDialog");
+
+ try {
+ if (accCloseButton != null) {
+ accCloseButton.doAccessibleAction(0);
+ }
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the Hyperlink dialog.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.Toolkit</code> and gets active top window.
+ * Then obtains an accessible object with the role
+ * <code>AccessibleRole.LABEL</code> and with the name
+ * <code>"Internet"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * method <code>fireEvent()</code> is empty because object is transient
+ * </li>
+ * <li> <code>'XAccessibleText.Text'</code> for
+ * {@link ifc.accessibility._XAccessibleText}:
+ * the string representation of the item text
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ if (xTextDoc != null) xTextDoc.dispose();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.
+ queryInterface(XDispatchProvider.class, secondController);
+
+ XInterface transf = (XInterface)tParam.getMSF().createInstance
+ ("com.sun.star.util.URLTransformer");
+ XURLTransformer urlTransf = UnoRuntime.queryInterface
+ (XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println( "opening HyperlinkDialog" );
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class, tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.LABEL, "Internet");
+
+ XAccessibleContext closeButton = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON, "Close");
+
+ accCloseButton = UnoRuntime.queryInterface(XAccessibleAction.class, closeButton);
+
+ log.println("ImplementationName: "+ util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleText.Text", "Internet");
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+ tEnv.addObjRelation("LimitedBounds",
+ "only delivers senseful values for getCharacterBounds(0,length-1)");
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java
new file mode 100644
index 000000000..8e694058b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java
@@ -0,0 +1,132 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+public class AccessibleTabBar extends TestCase {
+ static XComponent xDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xCalcDoc");
+
+ if (xDoc != null) {
+ closeDoc(xDoc);
+ }
+ }
+
+ /**
+ * Creates a spreadsheet document. Then obtains an accessible object with
+ * the role <code>AccessibleRole.PAGETAB</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xDoc != null) {
+ closeDoc(xDoc);
+ }
+
+ XMultiServiceFactory msf = tParam.getMSF();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+
+ log.println("creating a calc document");
+ xDoc = UnoRuntime.queryInterface(XComponent.class,
+ SOF.createCalcDoc(
+ null));
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = null;
+
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xDoc).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XWindow aWin = xWindow;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ aWin.setPosSize(100,100, 500, 500, PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+ }
+
+ protected void closeDoc(XComponent xDoc) {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xDoc);
+
+ try {
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document " + e.getMessage());
+ } catch (NullPointerException e) {
+ log.println("Couldn't close document " + e.getMessage());
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPage.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPage.java
new file mode 100644
index 000000000..e8b4c56e7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPage.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svtools;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.Point;
+
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>::com::sun::star::accessibility::XAccessibleComponent
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleTabBarPage extends TestCase {
+
+ static XComponent xDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xCalcDoc");
+ if (xDoc != null) {
+ util.DesktopTools.closeDoc(xDoc);
+ }
+ }
+
+ /**
+ * Creates a spreadsheet document. Then obtains an accessible object with
+ * the role <code>AccessibleRole.PAGETAB</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ if (xDoc != null) xDoc.dispose();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a calc document" );
+ xDoc = UnoRuntime.queryInterface(XComponent.class, SOF.createCalcDoc(null));// SOF.createDrawDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = (XInterface) tParam.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class, oObj);
+
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PAGE_TAB, "Sheet1");
+ XAccessibleContext acc = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PAGE_TAB, "Sheet2");
+ XAccessibleComponent accComp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ acc);
+ final Point point = accComp.getLocationOnScreen();
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ tEnv.addObjRelation("Destroy","yes");
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ try {
+ Robot rob = new Robot();
+ rob.mouseMove(point.X + 25, point.Y + 5);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ System.out.println("couldn't fire event");
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPageList.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPageList.java
new file mode 100644
index 000000000..64ca390ff
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPageList.java
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import com.sun.star.drawing.XLayerManager;
+import com.sun.star.drawing.XLayerSupplier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>::com::sun::star::accessibility::XAccessibleComponent
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleTabBarPageList extends TestCase {
+ static XComponent xDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xDoc");
+
+ if (xDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a spreadsheet document. Then obtains an accessible object with
+ * the role <code>AccessibleRole.PAGETABLIST</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xDoc != null) {
+ closeDoc();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a draw document");
+ xDoc = SOF.createDrawDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = (XInterface) tParam.getMSF()
+ .createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PAGE_TAB_LIST);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ tEnv.addObjRelation("XAccessibleSelection.OneAlwaysSelected",
+ Boolean.TRUE);
+
+ XLayerSupplier oLS = UnoRuntime.queryInterface(XLayerSupplier.class, xDoc);
+ XInterface oLM = oLS.getLayerManager();
+ final XLayerManager xLM = UnoRuntime.queryInterface(XLayerManager.class, oLM);
+
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ xLM.insertNewByIndex(0);
+ }
+ });
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xDoc);
+
+ try {
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document " + e.getMessage());
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Couldn't close document " + e.getMessage());
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java
new file mode 100644
index 000000000..42371dd4e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java
@@ -0,0 +1,211 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svtools;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>::com::sun::star::accessibility::XAccessibleComponent
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ */
+public class AccessibleTreeListBox extends TestCase {
+
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ xTextDoc.dispose();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the DataSource browser.
+ * Creates an instance of the service <code>com.sun.star.awt.Toolkit</code>
+ * and gets active top window. Then obtains an accessible object with
+ * the role <code>AccessibleRole.TREE</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * </li>
+ * <li> <code>'XAccessibleSelection.multiSelection'</code>
+ * of type <code>Boolean</code> for
+ * {@link ifc.accessibility._XAccessibleSelection}:
+ * indicates that component supports single selection mode.</li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ log.println( "creating a test environment" );
+
+ if (xTextDoc != null) xTextDoc.dispose();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.
+ queryInterface(XDispatchProvider.class, secondController);
+
+ XDispatch getting = null;
+
+ log.println( "opening DatasourceBrowser" );
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = xDesktop.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ XInterface oObj = null;
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TREE);
+
+ log.println("ImplementationName: "+ util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XInitialization xInit = UnoRuntime.queryInterface(
+ XInitialization.class, the_frame2.getController());
+
+ Object[] params = new Object[3];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "CommandType";
+ param2.Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE);
+ params[1] = param2;
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "Command";
+ param3.Value = "biblio";
+ params[2] = param3;
+
+ final Object[] fParams = params;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ try {
+ xInit.initialize(fParams);
+ } catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java
new file mode 100644
index 000000000..73f776448
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java
@@ -0,0 +1,262 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svtools;
+
+import com.sun.star.view.XSelectionSupplier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XCloseable;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>::com::sun::star::accessibility::XAccessibleComponent
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleContext
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleAction
+ * </code></li>
+ * <li><code>::com::sun::star::accessibility::XAccessibleText
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleTreeListBoxEntry extends TestCase {
+ static XDesktop xDesktop;
+ static XTextDocument xTextDoc;
+
+ /**
+ * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ xDesktop = DesktopTools.createDesktop(Param.getMSF());
+ }
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a text document. Opens the DataSource browser.
+ * Creates an instance of the service <code>com.sun.star.awt.Toolkit</code>
+ * and gets active top window. Then obtains an accessible object with
+ * the role <code>AccessibleRole.LABEL</code> and with the name
+ * <code>"Bibliography"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * </li>
+ * <li> <code>'XAccessibleSelection.multiSelection'</code>
+ * of type <code>Boolean</code> for
+ * {@link ifc.accessibility._XAccessibleSelection}:
+ * indicates that component supports single selection mode.</li>
+ * <li> <code>'XAccessibleText.Text'</code> for
+ * {@link ifc.accessibility._XAccessibleText}:
+ * the text of the component</li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XDispatch getting = null;
+
+ log.println("opening DatasourceBrowser");
+
+ URL the_url = new URL();
+ the_url.Complete = ".component:DB/DataSourceBrowser";
+ getting = aProv.queryDispatch(the_url, "_beamer", 12);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(the_url, noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XFrame the_frame1 = xDesktop.getCurrentFrame();
+
+ if (the_frame1 == null) {
+ log.println("Current frame was not found !!!");
+ }
+
+ XFrame the_frame2 = the_frame1.findFrame("_beamer", 4);
+
+ the_frame2.setName("DatasourceBrowser");
+
+ XInterface oObj = null;
+
+ UnoRuntime.queryInterface(
+ XInitialization.class,
+ the_frame2.getController());
+
+ PropertyValue[] params = new PropertyValue[3];
+ PropertyValue param1 = new PropertyValue();
+ param1.Name = "DataSourceName";
+ param1.Value = "Bibliography";
+ params[0] = param1;
+
+ PropertyValue param2 = new PropertyValue();
+ param2.Name = "CommandType";
+ param2.Value = Integer.valueOf(com.sun.star.sdb.CommandType.QUERY);
+ params[1] = param2;
+
+ PropertyValue param3 = new PropertyValue();
+ param3.Name = "Command";
+ param3.Value = "select * from biblio";
+ params[2] = param3;
+
+ XController xCont = the_frame2.getController();
+
+ XSelectionSupplier xSelect = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, xCont);
+
+ xSelect.select(params);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.LABEL,
+ "Bibliography");
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this component");
+
+ //adding ObjectRelation for XAccessibleText
+ tEnv.addObjRelation("LimitedBounds", "true");
+
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ tEnv.addObjRelation("XAccessibleText.Text", "Bibliography");
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+
+ try {
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("Couldn't close document " + e.getMessage());
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Couldn't close document " + e.getMessage());
+ }
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_svx/AccessibleControlShape.java b/qadevOOo/tests/java/mod/_svx/AccessibleControlShape.java
new file mode 100644
index 000000000..8f55793f0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessibleControlShape.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessibleControlShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log)
+ throws com.sun.star.uno.Exception
+ {
+
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+
+ final XShape oShape = FormTools.insertControlShape
+ (xDrawDoc,3000,4500,15000,1000,"CommandButton");
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.SHAPE);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "Button");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = oShape.getSize();
+ size.Width += 100;
+ oShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessibleEditableTextPara.java b/qadevOOo/tests/java/mod/_svx/AccessibleEditableTextPara.java
new file mode 100644
index 000000000..f54b1dd49
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessibleEditableTextPara.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+public class AccessibleEditableTextPara extends TestCase {
+
+ static XComponent xSpreadsheetDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Obtains accessible object for the spreadsheet document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xSpreadsheetDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ XAccessibleContext InputLine = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TEXT_FRAME,"Input line");
+ try {
+ oObj = InputLine.getAccessibleChild(0);
+ XAccessibleEditableText et = UnoRuntime.queryInterface(XAccessibleEditableText.class, oObj);
+ et.setText("AccessibleEditablePara");
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+
+ }
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleEditableText edText = UnoRuntime.queryInterface(XAccessibleEditableText.class,oObj) ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ int l = "AccessibleEditablePara".length();
+ edText.deleteText(0, l);
+ edText.setText("Event");
+ edText.setText("AccessibleEditablePara");
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xSheetDoc " );
+ util.DesktopTools.closeDoc(xSpreadsheetDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a spreadsheetdocument");
+ xSpreadsheetDoc = UnoRuntime.queryInterface(XComponent.class,SOF.createCalcDoc(null));
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svx/AccessibleGraphicShape.java b/qadevOOo/tests/java/mod/_svx/AccessibleGraphicShape.java
new file mode 100644
index 000000000..73031398a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessibleGraphicShape.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessibleGraphicShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ final XShape oShape = SOF.createShape(xDrawDoc,
+ 5000,5000,1500,1000,"GraphicObject");
+
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "GraphicObject");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = oShape.getSize();
+ size.Width += 100;
+ oShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessibleOLEShape.java b/qadevOOo/tests/java/mod/_svx/AccessibleOLEShape.java
new file mode 100644
index 000000000..8529515a2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessibleOLEShape.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessibleOLEShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ final XShape oShape = SOF.createShape
+ (xDrawDoc,5000,5000,1500,1000,"OLE2");
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XPropertySet shape_props = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+
+ log.println("Inserting a Chart");
+
+ shape_props.
+ setPropertyValue("CLSID","12DCAE26-281F-416F-a234-c3086127382e");
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "OLEShape");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = oShape.getSize();
+ size.Width += 100;
+ oShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessiblePageShape.java b/qadevOOo/tests/java/mod/_svx/AccessiblePageShape.java
new file mode 100644
index 000000000..4e05ebb19
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessiblePageShape.java
@@ -0,0 +1,114 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessiblePageShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ //XShape oShape = null;
+ XDrawPage oPage = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "PageShape");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ oPage = DrawTools.getDrawPage(xDrawDoc,0);
+ final XPropertySet PageProps = UnoRuntime.queryInterface(XPropertySet.class, oPage);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ PageProps.setPropertyValue("Height",Integer.valueOf(5000));
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ System.out.println("Don't no the Property Height");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ System.out.println(
+ "PropertyVetoException Exception while changing Height");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ System.out.println(
+ "IllegalArgumentException Exception while changing Height");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ System.out.println(
+ "WrappedTargetException Exception while changing Height");
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessiblePresentationGraphicShape.java b/qadevOOo/tests/java/mod/_svx/AccessiblePresentationGraphicShape.java
new file mode 100644
index 000000000..37a3b8a35
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessiblePresentationGraphicShape.java
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessiblePresentationGraphicShape extends TestCase {
+
+ static XComponent xDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDoc = SOF.createImpressDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDoc);
+ oShape = UnoRuntime.queryInterface(XShape.class,
+ docMSF.createInstance
+ ("com.sun.star.presentation.GraphicObjectShape"));
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDoc,0)).add(oShape);
+
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ oShapeProps.setPropertyValue(
+ "GraphicURL",util.utils.getFullTestURL("space-metal.jpg"));
+ oShapeProps.setPropertyValue("IsEmptyPresentationObject", Boolean.FALSE);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ }
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "GraphicObject");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ final XShape fShape = oShape ;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = fShape.getSize();
+ size.Width += 100;
+ fShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessiblePresentationOLEShape.java b/qadevOOo/tests/java/mod/_svx/AccessiblePresentationOLEShape.java
new file mode 100644
index 000000000..9329506da
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessiblePresentationOLEShape.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessiblePresentationOLEShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createImpressDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDrawDoc);
+ oShape = UnoRuntime.queryInterface(XShape.class,
+ docMSF.createInstance("com.sun.star.presentation.OLE2Shape"));
+
+
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ oShapeProps.setPropertyValue("IsEmptyPresentationObject", Boolean.FALSE);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ }
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ try {
+ oShapeProps.setPropertyValue(
+ "CLSID","12DCAE26-281F-416F-a234-c3086127382e");
+ oShapeProps.setPropertyValue("IsEmptyPresentationObject", Boolean.FALSE);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ }
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "ImpressOLE");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ final XShape fShape = oShape ;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = fShape.getSize();
+ size.Width += 100;
+ fShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessiblePresentationShape.java b/qadevOOo/tests/java/mod/_svx/AccessiblePresentationShape.java
new file mode 100644
index 000000000..8828d8acf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessiblePresentationShape.java
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessiblePresentationShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createImpressDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDrawDoc);
+ oShape = UnoRuntime.queryInterface(XShape.class,
+ docMSF.createInstance
+ ("com.sun.star.presentation.HandoutShape"));
+
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XPropertySet shapeProps = UnoRuntime.queryInterface(XPropertySet.class, oShape);
+
+ try {
+ shapeProps.setPropertyValue(
+ "IsEmptyPresentationObject", Boolean.FALSE);
+ } catch (Exception e) {}
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "ImpressHandout");
+
+ log.println("Implementation Name: "+utils.getImplName(oObj));
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ final XShape fShape = oShape ;
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = fShape.getSize();
+ size.Width += 100;
+ fShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/AccessibleShape.java b/qadevOOo/tests/java/mod/_svx/AccessibleShape.java
new file mode 100644
index 000000000..2e160bb78
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/AccessibleShape.java
@@ -0,0 +1,110 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.Size;
+import com.sun.star.awt.XWindow;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class AccessibleShape extends TestCase {
+
+ static XComponent xDrawDoc;
+ static XModel aModel;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ final XShape oShape = SOF.createShape(xDrawDoc,
+ 3000,4500,15000,1000,"Rectangle");
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow (aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.UNKNOWN, "Rectangle");
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ Size size = oShape.getSize();
+ size.Width += 100;
+ oShape.setSize(size);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ System.out.println("caught exception: " + e);
+ }
+ }
+ });
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/GraphicExporter.java b/qadevOOo/tests/java/mod/_svx/GraphicExporter.java
new file mode 100644
index 000000000..b47073de9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/GraphicExporter.java
@@ -0,0 +1,209 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svx;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.GraphicExportFilter</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::document::XFilter</code></li>
+ * <li> <code>com::sun::star::document::XMimeTypeInfo</code></li>
+ * <li> <code>com::sun::star::document::XExporter</code></li>
+ * </ul> <p>
+ *
+ * The following files used by this test :
+ * <ul>
+ * <li><b> space-metal.jpg </b> : the file used for GraphicObject
+ * creation. This image must be then exported. </li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XMimeTypeInfo
+ * @see com.sun.star.document.XExporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XMimeTypeInfo
+ * @see ifc.document._XExporter
+ */
+public class GraphicExporter extends TestCase {
+ static XComponent xDrawDoc;
+
+ /**
+ * Creates a new draw document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a drawdoc");
+ xDrawDoc = DrawTools.createDrawDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes the draw document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.drawing.GraphicExportFilter</code> as
+ * a tested component. Then a <code>GraphicObjectShape</code>
+ * instance is added into the document and its image is obtained
+ * from JPEG file. This shape content is intended to be exported.
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} :
+ * descriptor which contains target file name in
+ * the temporary directory, file type (JPEG)
+ * </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} :
+ * checks if the target file exists.
+ * In the case if SOffice is started in 'Hide' mode
+ * ('soapi.test.hidewindows' test parameter is 'true')
+ * the checker always returns <code>true</code>.
+ * </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} :
+ * the <code>GraphicObjectShape</code> component
+ * with loaded image.
+ * </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XShape oShape = null;
+ Object go = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ try {
+ go = tParam.getMSF().createInstance(
+ "com.sun.star.drawing.GraphicExportFilter");
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // create testobject here
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+ oShape = SOF.createShape(xDrawDoc, 5000, 5000, 1500, 1000,
+ "GraphicObject");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc, 0)).add(oShape);
+
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(
+ XPropertySet.class, oShape);
+ XComponent xComp = null;
+
+ oShapeProps.setPropertyValue("GraphicURL",
+ util.utils.getFullTestURL(
+ "space-metal.jpg"));
+ xComp = UnoRuntime.queryInterface(XComponent.class,
+ oShape);
+
+ XExporter xEx = UnoRuntime.queryInterface(
+ XExporter.class, go);
+ xEx.setSourceDocument(xComp);
+
+ final URL aURL = new URL();
+ aURL.Complete = util.utils.getOfficeTemp(
+ tParam.getMSF()) +
+ "picture.jpg";
+
+ final XSimpleFileAccess fAcc;
+
+ Object oFAcc = tParam.getMSF().createInstance(
+ "com.sun.star.ucb.SimpleFileAccess");
+ fAcc = UnoRuntime.queryInterface(
+ XSimpleFileAccess.class, oFAcc);
+
+ if (fAcc.exists(aURL.Complete)) {
+ fAcc.kill(aURL.Complete);
+ }
+
+ oObj = (XInterface) go;
+ log.println("ImplName " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ tEnv.addObjRelation("MediaDescriptor",
+ XMLTools.createMediaDescriptor(
+ new String[] {
+ "FilterName", "URL", "MediaType"
+ }, new Object[] { "JPG", aURL, "image/jpeg" }));
+ tEnv.addObjRelation("SourceDocument", xComp);
+
+ log.println("adding ObjRelation for XFilter");
+ log.println("This Component doesn't really support the cancel method");
+ log.println("See #101725");
+ tEnv.addObjRelation("NoFilter.cancel()", Boolean.TRUE);
+
+ final String hideMode = (String) tParam.get("soapi.test.hidewindows");
+ tEnv.addObjRelation("XFilter.Checker",
+ new ifc.document._XFilter.FilterChecker() {
+ public boolean checkFilter() {
+ try {
+ if ((hideMode != null) && hideMode.equals("true")) {
+ return true;
+ }
+
+ return fAcc.exists(aURL.Complete);
+ } catch (com.sun.star.uno.Exception e) {
+ return false;
+ }
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class GraphicExporter
diff --git a/qadevOOo/tests/java/mod/_svx/SvxDrawPage.java b/qadevOOo/tests/java/mod/_svx/SvxDrawPage.java
new file mode 100644
index 000000000..a0d07d0c9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxDrawPage.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svx;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.FormTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.DrawPage</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::drawing::GenericDrawPage</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeBinder</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeGrouper</code></li>
+ * <li> <code>com::sun::star::drawing::XShapes</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::drawing::XMasterPageTarget</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeCombiner</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.drawing.GenericDrawPage
+ * @see com.sun.star.drawing.XShapeBinder
+ * @see com.sun.star.drawing.XShapeGrouper
+ * @see com.sun.star.drawing.XShapes
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.drawing.XMasterPageTarget
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.drawing.XShapeCombiner
+ * @see ifc.drawing._GenericDrawPage
+ * @see ifc.drawing._XShapeBinder
+ * @see ifc.drawing._XShapeGrouper
+ * @see ifc.drawing._XShapes
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.drawing._XMasterPageTarget
+ * @see ifc.container._XNamed
+ * @see ifc.drawing._XShapeCombiner
+ */
+public class SvxDrawPage extends TestCase {
+ static XSpreadsheetDocument xDoc = null;
+
+ /**
+ * Creates a new Draw document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a sheetdocument");
+ xDoc = SOF.createCalcDoc(null);
+ }
+
+ /**
+ * Disposes the Draw document created before
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xSheetDoc ");
+ util.DesktopTools.closeDoc(xDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * From the Draw document created a collection of its draw
+ * pages is obtained. Two new pages are inserted. And one
+ * page is obtained as a testing component. A shape is added
+ * to this page. <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._XShapeGrouper} :
+ * the draw page tested. </li>
+ * <li> <code>'Shape'</code> for
+ * {@link ifc.drawing._XShapes} :
+ * the creator which can create instances of
+ * <code>com.sun.star.drawing.Line</code> service </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XShape oShape = null;
+ XDrawPages oDP = null;
+
+ XComponent xComp = UnoRuntime.queryInterface(
+ XComponent.class, xDoc);
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ log.println("getting Drawpages");
+
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(
+ XDrawPagesSupplier.class, xDoc);
+ oDP = oDPS.getDrawPages();
+ oDP.insertNewByIndex(1);
+ oDP.insertNewByIndex(2);
+ oObj = (XDrawPage) AnyConverter.toObject(new Type(XDrawPage.class),
+ oDP.getByIndex(0));
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ oShape = SOF.createShape(xComp, 5000, 3500, 7500, 5000,
+ "Rectangle");
+ DrawTools.getShapes((XDrawPage) oObj).add(oShape);
+
+ XShape oShape1 = SOF.createShape(xComp, 5000, 5500, 5000, 5000,
+ "Rectangle");
+ DrawTools.getShapes((XDrawPage) oObj).add(oShape1);
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //adding a controlButton to have a Form
+ FormTools.insertControlShape(
+ UnoRuntime.queryInterface(XComponent.class, xDoc),
+ 3000, 4500, 15000, 1000, "CommandButton");
+
+ // relation for XShapes interface
+ ShapeDsc sDsc = new ShapeDsc(5000, 3500, 7500, 10000, "Line");
+ tEnv.addObjRelation("Shape", new InstCreator(xDoc, sDsc));
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+
+ // adding relation for XShapeGrouper
+ tEnv.addObjRelation("DrawPage", oObj);
+
+ // adding relation for XMasterPageTarget
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SvxDrawPage
diff --git a/qadevOOo/tests/java/mod/_svx/SvxGraphCtrlAccessibleContext.java b/qadevOOo/tests/java/mod/_svx/SvxGraphCtrlAccessibleContext.java
new file mode 100644
index 000000000..e2b3581d4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxGraphCtrlAccessibleContext.java
@@ -0,0 +1,210 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.DrawTools;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+import com.sun.star.view.XSelectionSupplier;
+
+public class SvxGraphCtrlAccessibleContext extends TestCase{
+
+ static XComponent xDrawDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ final XShape oShape = SOF.createShape(xDrawDoc,
+ 5000,5000,1500,1000,"GraphicObject");
+
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XPropertySet shapeProps = UnoRuntime.queryInterface(XPropertySet.class, oShape);
+
+ String url = util.utils.getFullTestURL("space-metal.jpg");
+
+ log.println("Inserting Graphic: "+url);
+
+ try {
+ shapeProps.setPropertyValue("GraphicURL", url);
+ } catch (com.sun.star.beans.UnknownPropertyException upe) {
+ log.println("Property GraphicURL is unknown");
+ } catch (com.sun.star.beans.PropertyVetoException pve) {
+ log.println("Property GraphicURL is read only");
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ log.println("Property GraphicURL tried to set to illegal argument");
+ } catch (com.sun.star.lang.WrappedTargetException wte) {
+ log.println("Wrapped Target Exception was thrown while setting Property GraphicURL");
+ }
+
+
+ //Opening ImageMapDialog
+ try {
+ String aSlotID = "slot:10371";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface( XDispatchProvider.class, xController );
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch( aURL,"",0);
+ if( xDispatcher != null )
+ xDispatcher.dispatch( aURL, null );
+ utils.shortWait();
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't change mode");
+ }
+
+
+ oObj = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.awt.Toolkit") ;
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ //selecting the inserted shape
+ final XSelectionSupplier SelSupp = UnoRuntime.queryInterface(XSelectionSupplier.class,xController);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ SelSupp.select(oShape);
+ } catch (com.sun.star.lang.IllegalArgumentException iae) {
+ System.out.println("Couldn't select shape");
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ //Closing ImageMapDialog
+ try {
+ String aSlotID = "slot:10371";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface( XDispatchProvider.class, xController );
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch( aURL,"",0);
+ if( xDispatcher != null )
+ xDispatcher.dispatch( aURL, null );
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't change mode");
+ }
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_svx/SvxGraphicObject.java b/qadevOOo/tests/java/mod/_svx/SvxGraphicObject.java
new file mode 100644
index 000000000..d544d0294
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxGraphicObject.java
@@ -0,0 +1,253 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.awt.XBitmap;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.GraphicObject</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::drawing::ShadowProperties</code></li>
+ * <li> <code>com::sun::star::drawing::RotationDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::drawing::XShape</code></li>
+ * <li> <code>com::sun::star::drawing::GraphicObjectShape</code></li>
+ * <li> <code>com::sun::star::drawing::Shape</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::drawing::XGluePointsSupplier</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::drawing::TextProperties</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.drawing.ShadowProperties
+ * @see com.sun.star.drawing.RotationDescriptor
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.drawing.GraphicObjectShape
+ * @see com.sun.star.drawing.Shape
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.drawing.XGluePointsSupplier
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.drawing.TextProperties
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.lang.XComponent
+ * @see ifc.drawing._ShadowProperties
+ * @see ifc.drawing._RotationDescriptor
+ * @see ifc.text._XSimpleText
+ * @see ifc.drawing._XShape
+ * @see ifc.drawing._GraphicObjectShape
+ * @see ifc.drawing._Shape
+ * @see ifc.text._XTextRange
+ * @see ifc.drawing._XGluePointsSupplier
+ * @see ifc.beans._XPropertySet
+ * @see ifc.drawing._TextProperties
+ * @see ifc.style._CharacterProperties
+ * @see ifc.drawing._XShapeDescriptor
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.text._XText
+ * @see ifc.lang._XComponent
+ */
+public class SvxGraphicObject extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * Creates a new Draw document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * Disposes the Draw document created before
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.drawing.GraphicObject</code> as a tested
+ * component and inserts it to one of draw pages of the document.
+ * <p>
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Style1', 'Style2'</code> for
+ * {@link ifc.drawing._Shape} :
+ * two values of 'Style' property. The first is taken
+ * from the shape tested, the second from another
+ * shape added to the draw page. </li>
+ * <li> <code>'Bitmap1', 'Bitmap2'</code> for
+ * {@link ifc.drawing._GraphicObjectShape} :</li>
+ * two bitmap objects which are created by setting
+ * 'GraphicURL' property of component tested and
+ * getting its 'GraphicObjectFillBitmap' property.
+ * <li> <code>'IMAP'</code> for
+ * {@link ifc.drawing._GraphicObjectShape} :
+ * <code>com.sun.star.image.ImageMapRectangleObject</code>
+ * service instance. </li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} :
+ * creator which can create instances of
+ * <code>com.sun.star.text.TextField.URL</code>
+ * service. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+ Object imap=null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xDrawDoc,5000,5000,1500,1000,"GraphicObject");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+ oObj = oShape;
+
+ TestEnvironment tEnv = new TestEnvironment( oShape );
+
+ // adding two styles as ObjRelation for Shape
+ oShape = SOF.createShape(xDrawDoc,3000,4500,15000,1000,"Ellipse");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ tEnv.addObjRelation("Style1",aStyle);
+
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ tEnv.addObjRelation("Style2",aStyle);
+
+
+ // adding graphic as ObjRelation for GraphicObjectShape
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XBitmap aBitmap = null;
+ try {
+ oShapeProps.setPropertyValue(
+ "GraphicURL",util.utils.getFullTestURL("space-metal.jpg"));
+ aBitmap = (XBitmap) AnyConverter.toObject(
+ new Type(XBitmap.class),oShapeProps.getPropertyValue
+ ("GraphicObjectFillBitmap"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ }
+
+
+ tEnv.addObjRelation("Bitmap1",aBitmap);
+
+ try {
+ oShapeProps.setPropertyValue(
+ "GraphicURL",util.utils.getFullTestURL("crazy-blue.jpg"));
+ aBitmap = (XBitmap) AnyConverter.toObject(
+ new Type(XBitmap.class),oShapeProps.getPropertyValue
+ ("GraphicObjectFillBitmap"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ }
+
+ tEnv.addObjRelation("Bitmap2",aBitmap);
+
+ try {
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class,xDrawDoc);
+ imap = oDocMSF.createInstance
+ ( "com.sun.star.image.ImageMapRectangleObject" );
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+
+ tEnv.addObjRelation("IMAP",imap);
+ tEnv.addObjRelation("ImapObject",imap);
+
+ // adding relation for XText interface
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ tEnv.addObjRelation("NoShear",Boolean.TRUE);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SvxGraphicObject
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShape.java b/qadevOOo/tests/java/mod/_svx/SvxShape.java
new file mode 100644
index 000000000..74a4e209b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShape.java
@@ -0,0 +1,212 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.Shape</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::drawing::LineProperties</code></li>
+ * <li> <code>com::sun::star::drawing::FillProperties</code></li>
+ * <li> <code>com::sun::star::drawing::TextShape</code></li>
+ * <li> <code>com::sun::star::drawing::ShadowProperties</code></li>
+ * <li> <code>com::sun::star::drawing::XGluePointsSupplier</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::drawing::RotationDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::drawing::XShape</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::drawing::TextProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::drawing::Shape</code></li>
+ * </ul> <p>
+ *
+ * The following files used by this test :
+ * <ul>
+ * <li><b> SvxShape.sxd </b> : this document is loaded for
+ * adding a shape tested to it. </li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.drawing.LineProperties
+ * @see com.sun.star.drawing.FillProperties
+ * @see com.sun.star.drawing.TextShape
+ * @see com.sun.star.drawing.ShadowProperties
+ * @see com.sun.star.drawing.XGluePointsSupplier
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.drawing.RotationDescriptor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.drawing.TextProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.drawing.Shape
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.drawing._LineProperties
+ * @see ifc.drawing._FillProperties
+ * @see ifc.drawing._TextShape
+ * @see ifc.drawing._ShadowProperties
+ * @see ifc.drawing._XGluePointsSupplier
+ * @see ifc.style._CharacterProperties
+ * @see ifc.drawing._RotationDescriptor
+ * @see ifc.text._XTextRange
+ * @see ifc.drawing._XShape
+ * @see ifc.lang._XComponent
+ * @see ifc.drawing._TextProperties
+ * @see ifc.beans._XPropertySet
+ * @see ifc.text._XText
+ * @see ifc.drawing._XShapeDescriptor
+ * @see ifc.text._XSimpleText
+ * @see ifc.drawing._Shape
+ */
+public class SvxShape extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * Loads a Draw document with name 'SvxShape.sxd' from test
+ * documents directory
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.loadDocument(
+ utils.getFullTestURL("SvxShape.sxd"));
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.drawing.EllipseShape</code> as tested component
+ * and adds it to the document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Style1', 'Style2'</code> for
+ * {@link ifc.drawing._Shape} :
+ * two values of 'Style' property. The first is taken
+ * from the shape tested, the second from another
+ * shape added to the draw page. </li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} :
+ * creator which can create instances of
+ * <code>com.sun.star.text.TextField.URL</code>
+ * service. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xDrawDoc,3000,4500,15000,1000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+ oObj = oShape ;
+
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oShape );
+
+ // adding relations for Shape service
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ log.println( "adding two style as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ tEnv.addObjRelation("Style1",aStyle);
+
+ oShapeProps = UnoRuntime.queryInterface
+ (XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ tEnv.addObjRelation("Style2",aStyle);
+
+ // adding relation for XText
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShape
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapeCircle.java b/qadevOOo/tests/java/mod/_svx/SvxShapeCircle.java
new file mode 100644
index 000000000..63fd2c4eb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapeCircle.java
@@ -0,0 +1,214 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.EllipseShape</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::drawing::LineProperties</code></li>
+ * <li> <code>com::sun::star::drawing::EllipseShape</code></li>
+ * <li> <code>com::sun::star::drawing::FillProperties</code></li>
+ * <li> <code>com::sun::star::drawing::ShadowProperties</code></li>
+ * <li> <code>com::sun::star::drawing::XGluePointsSupplier</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::drawing::RotationDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::drawing::XShape</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::drawing::TextProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::drawing::Shape</code></li>
+ * </ul> <p>
+ * The following files used by this test :
+ * <ul>
+ * <li><b> SvxShape.sxd </b> : this document is loaded for
+ * adding a shape tested to it. </li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.drawing.LineProperties
+ * @see com.sun.star.drawing.EllipseShape
+ * @see com.sun.star.drawing.FillProperties
+ * @see com.sun.star.drawing.ShadowProperties
+ * @see com.sun.star.drawing.XGluePointsSupplier
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.drawing.RotationDescriptor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.drawing.TextProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.drawing.Shape
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.drawing._LineProperties
+ * @see ifc.drawing._EllipseShape
+ * @see ifc.drawing._FillProperties
+ * @see ifc.drawing._ShadowProperties
+ * @see ifc.drawing._XGluePointsSupplier
+ * @see ifc.style._CharacterProperties
+ * @see ifc.drawing._RotationDescriptor
+ * @see ifc.text._XTextRange
+ * @see ifc.drawing._XShape
+ * @see ifc.lang._XComponent
+ * @see ifc.drawing._TextProperties
+ * @see ifc.beans._XPropertySet
+ * @see ifc.text._XText
+ * @see ifc.drawing._XShapeDescriptor
+ * @see ifc.text._XSimpleText
+ * @see ifc.drawing._Shape
+ */
+public class SvxShapeCircle extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * Loads a Draw document with name 'SvxShape.sxd' from test
+ * documents directory
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a drawdoc" );
+ xDrawDoc = SOF.loadDocument(
+ utils.getFullTestURL("SvxShape.sxd"));
+ }
+
+ /**
+ * Disposes the Draw document loaded before.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.drawing.EllipseShape</code> as tested component
+ * and adds it to the document. Then the FULL type of circle is set.
+ *
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Style1', 'Style2'</code> for
+ * {@link ifc.drawing._Shape} :
+ * two values of 'Style' property. The first is taken
+ * from the shape tested, the second from another
+ * shape added to the draw page. </li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} :
+ * creator which can create instances of
+ * <code>com.sun.star.text.TextField.URL</code>
+ * service. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ oShape = SOF.createShape(xDrawDoc,5000,5000,3000,3000,"Ellipse");
+
+ XPropertySet props = UnoRuntime.queryInterface
+ (XPropertySet.class, oShape) ;
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+ props.setPropertyValue("CircleKind",
+ com.sun.star.drawing.CircleKind.FULL) ;
+
+ oObj = oShape ;
+
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Line");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+
+ // test environment creation
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println( "adding two styles as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+
+ tEnv.addObjRelation("Style1",aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+
+ tEnv.addObjRelation("Style2",aStyle);
+
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapeCircle
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapeCollection.java b/qadevOOo/tests/java/mod/_svx/SvxShapeCollection.java
new file mode 100644
index 000000000..5cbad5230
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapeCollection.java
@@ -0,0 +1,133 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxShapeCollection extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ try {
+ // adding some shapes for testing.
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ Object col = tParam.getMSF().createInstance
+ ("com.sun.star.drawing.ShapeCollection");
+ XShapes shapes = UnoRuntime.queryInterface
+ (XShapes.class,col);
+
+ oShape = SOF.createShape(xDrawDoc,3000,4500,15000,1000,"Ellipse");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+ shapes.add(oShape);
+
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Rectangle");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+ shapes.add(oShape);
+
+ oObj = (XInterface) col ;
+
+ }
+ catch (Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // test environment creation
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ System.out.println("IName: "+util.utils.getImplName(oObj));
+ ShapeDsc sDsc = new ShapeDsc(5000,3500,7500,10000,"Line");
+ tEnv.addObjRelation("Shape", new InstCreator(xDrawDoc, sDsc)) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapeCollection
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapeConnector.java b/qadevOOo/tests/java/mod/_svx/SvxShapeConnector.java
new file mode 100644
index 000000000..7236bcc18
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapeConnector.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.document.LinkTarget
+ * @see com.sun.star.document.XLinkTargetSupplier
+ * @see com.sun.star.drawing.ConnectorShapeDescriptor
+ * @see com.sun.star.drawing.LineShapeDescriptor
+ * @see com.sun.star.drawing.PolyPolygonDescriptor
+ * @see com.sun.star.drawing.RotationDescriptor
+ * @see com.sun.star.drawing.ShadowDescriptor
+ * @see com.sun.star.drawing.ShapeDescriptor
+ * @see com.sun.star.drawing.Text
+ * @see com.sun.star.drawing.XConnectorShape
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.text.XTextRange
+ *
+ */
+public class SvxShapeConnector extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ try {
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class,xDrawDoc);
+ Object oInt = oDocMSF.createInstance
+ ( "com.sun.star.drawing.ConnectorShape" );
+
+ oShape = UnoRuntime.queryInterface( XShape.class, oInt );
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+ }
+ catch (Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // create testobject here
+ oObj = oShape;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xDrawDoc,3000,4500,15000,1000,"Ellipse");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ for (int i=0;i<10;i++) {
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(
+ SOF.createShape(xDrawDoc,
+ 3000,4500,7510+10*i,5010+10*i,"Rectangle"));
+ }
+
+ log.println( "adding two style as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {}
+
+ tEnv.addObjRelation("Style1",aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {}
+
+ tEnv.addObjRelation("Style2",aStyle);
+
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+ tEnv.addObjRelation("NoSetSize","SvxShapeConnector");
+ // adding relation for XConnectorShape
+ XShape oShape1 = SOF.createShape(xDrawDoc,1000,2000,1500,1000,"Line");
+ XShape oShape2 = SOF.createShape(xDrawDoc,1000,2000,4000,3000,"Line");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape1);
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape2);
+ tEnv.addObjRelation("XConnectorShape.Shapes",
+ new XShape[] {oShape1, oShape2}) ;
+ System.out.println("IName: "+util.utils.getImplName(oObj));
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapeConnector
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapeControl.java b/qadevOOo/tests/java/mod/_svx/SvxShapeControl.java
new file mode 100644
index 000000000..fe07d0578
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapeControl.java
@@ -0,0 +1,145 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.FormTools;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxShapeControl extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ try {
+
+ oShape = FormTools.insertControlShape(
+ xDrawDoc,3000,4500,15000,1000,"CommandButton");
+
+ oObj = oShape ;
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Line");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+ }
+ catch (Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // test environment creation
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println( "adding two styles as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style1",aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style2",aStyle);
+
+ log.println( "adding document relation for XControlShape" );
+ tEnv.addObjRelation("xDoc", xDrawDoc) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapeControl
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapeDimensioning.java b/qadevOOo/tests/java/mod/_svx/SvxShapeDimensioning.java
new file mode 100644
index 000000000..7cccfe069
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapeDimensioning.java
@@ -0,0 +1,155 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxShapeDimensioning extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ try {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xDrawDoc,4000,4000,3000,3000,"Measure");
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ for (int i=0;i<10;i++) {
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(
+ SOF.createShape(xDrawDoc,
+ 3000,4500,7510+10*i,5010+10*i,"Rectangle"));
+ }
+
+ oObj = oShape ;
+
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Line");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+ }
+ catch (Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // test environment creation
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println( "adding two styles as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style1",aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style2",aStyle);
+
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapeDimensioning
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapeGroup.java b/qadevOOo/tests/java/mod/_svx/SvxShapeGroup.java
new file mode 100644
index 000000000..d49200a00
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapeGroup.java
@@ -0,0 +1,163 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapeGrouper;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ *
+ * @see com.sun.star.drawing._XDrawPage
+ *
+ */
+
+public class SvxShapeGroup extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method initializes the document
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log)
+ throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+ log.println("creating a draw document");
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * in general this method disposes the document
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+
+ log.println("disposing xDrawDoc");
+ util.DesktopTools.closeDoc(xDrawDoc);
+
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShapes oShapes = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+
+ // get the drawpage of drawing here
+ log.println("getting Drawpage");
+ XDrawPagesSupplier oDPS = UnoRuntime.queryInterface(
+ XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages oDPn = oDPS.getDrawPages();
+ XIndexAccess oDPi = UnoRuntime.queryInterface(XIndexAccess.class, oDPn);
+ oObj = (XDrawPage) AnyConverter.toObject(new Type(XDrawPage.class),
+ oDPi.getByIndex(0));
+
+ if (oObj == null) {
+ System.out.println("**************************");
+ System.out.println(" XDrawPage is NULL");
+ System.out.println("**************************");
+ }
+
+ // put something on the drawpage
+ log.println("inserting some Shapes");
+ oShapes = UnoRuntime.queryInterface(XShapes.class, oObj);
+ XShape Shape1 = SOF.createShape(xDrawDoc, 3000, 4500, 15000, 1000,
+ "Ellipse");
+ oShapes.add(SOF.createShape(xDrawDoc, 2000, 1500, 1000, 1000, "Line"));
+ oShapes.add(Shape1);
+ XShape Shape2 = SOF.createShape(xDrawDoc, 5000, 3500, 7500, 5000,
+ "Rectangle");
+ oShapes.add(Shape2);
+
+ log.println("adding two style as ObjRelation for ShapeDescriptor");
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(
+ XPropertySet.class, Shape1);
+ XStyle aStyle1 = null;
+ try {
+ aStyle1 = (XStyle) AnyConverter.toObject(new Type(XStyle.class),
+ oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ }
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class, Shape2);
+ XStyle aStyle2 = null;
+ try {
+ aStyle2 = (XStyle) AnyConverter.toObject(new Type(XStyle.class),
+ oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ }
+
+ // get the XShapeGrouper
+ log.println("get XShapeGroup");
+ XShapeGrouper oSG = UnoRuntime
+ .queryInterface(XShapeGrouper.class, oObj);
+ oObj = oSG.group(oShapes);
+
+ log.println("creating a new environment for drawpage object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ ShapeDsc sDsc = new ShapeDsc(5000, 3500, 7500, 10000, "Rectangle");
+ log.println("adding Shape as mod relation to environment");
+ tEnv.addObjRelation("Shape", new InstCreator(xDrawDoc, sDsc));
+
+ tEnv.addObjRelation("Style1", aStyle1);
+ tEnv.addObjRelation("Style2", aStyle2);
+ for (int i = 0; i < 6; i++) {
+ Shape2 = SOF.createShape(xDrawDoc, 5000 + 100 * i, 3500 + 100 * i,
+ 7500 + 100 * i, 5000 + 100 * i, "Rectangle");
+ oShapes.add(Shape2);
+ }
+ return tEnv;
+ } // finish method createTestEnvironment
+
+} // finish class SvxShapeGroup
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygon.java b/qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygon.java
new file mode 100644
index 000000000..d5a43870a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygon.java
@@ -0,0 +1,250 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.PolyPolygonShape</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::drawing::LineProperties</code></li>
+ * <li> <code>com::sun::star::drawing::FillProperties</code></li>
+ * <li> <code>com::sun::star::drawing::PolyPolygonDescriptor</code></li>
+ * <li> <code>com::sun::star::drawing::ShadowProperties</code></li>
+ * <li> <code>com::sun::star::drawing::XGluePointsSupplier</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::drawing::RotationDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::drawing::XShape</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::drawing::TextProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::drawing::Shape</code></li>
+ * </ul> <p>
+ * The following files used by this test :
+ * <ul>
+ * <li><b> TransparencyChart.sxs </b> : to load predefined chart
+ * document where two 'automatic' transparency styles exists :
+ * 'Transparency 1' and 'Transparency 2'.</li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.drawing.LineProperties
+ * @see com.sun.star.drawing.FillProperties
+ * @see com.sun.star.drawing.PolyPolygonDescriptor
+ * @see com.sun.star.drawing.ShadowProperties
+ * @see com.sun.star.drawing.XGluePointsSupplier
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.drawing.RotationDescriptor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.drawing.TextProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.drawing.Shape
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.drawing._LineProperties
+ * @see ifc.drawing._FillProperties
+ * @see ifc.drawing._PolyPolygonDescriptor
+ * @see ifc.drawing._ShadowProperties
+ * @see ifc.drawing._XGluePointsSupplier
+ * @see ifc.style._CharacterProperties
+ * @see ifc.drawing._RotationDescriptor
+ * @see ifc.text._XTextRange
+ * @see ifc.drawing._XShape
+ * @see ifc.lang._XComponent
+ * @see ifc.drawing._TextProperties
+ * @see ifc.beans._XPropertySet
+ * @see ifc.text._XText
+ * @see ifc.drawing._XShapeDescriptor
+ * @see ifc.text._XSimpleText
+ * @see ifc.drawing._Shape
+ */
+public class SvxShapePolyPolygon extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xDrawDoc = SOF.loadDocument(
+ utils.getFullTestURL("SvxShape.sxd"));
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ try {
+ // adding some shapes for testing.
+ XMultiServiceFactory xMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDrawDoc) ;
+ XInterface oInst = (XInterface) xMSF.createInstance
+ ("com.sun.star.drawing.PolyPolygonShape") ;
+ oShape = UnoRuntime.queryInterface
+ (XShape.class, oInst) ;
+
+ oShape.setSize(new Size(0,0)) ;
+ oShape.setPosition(new Point(0,0)) ;
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ Point[] square1 = new Point[] {
+ new Point(5000, 5000),
+ new Point(10000, 5000),
+ new Point(10000, 10000),
+ new Point(5000, 10000)} ;
+
+ Point[] square2 = new Point[] {
+ new Point(6500, 6500),
+ new Point(8500, 6500),
+ new Point(8500, 8500),
+ new Point(6500, 8500)} ;
+
+ Point[][] polygon = new Point[][] {square1, square2};
+
+ UnoRuntime.queryInterface(XPropertySet.class,
+ oShape).setPropertyValue("PolyPolygon", polygon) ;
+
+ oObj = oShape ;
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Line");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+ }
+ catch (Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // test environment creation
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println( "adding two styles as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style1",aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style2",aStyle);
+
+ // adding relation for XText
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapeCollection
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygonBezier.java b/qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygonBezier.java
new file mode 100644
index 000000000..f053a2e0f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygonBezier.java
@@ -0,0 +1,264 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Size;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.PolyPolygonBezierCoords;
+import com.sun.star.drawing.PolygonFlags;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.ClosedBezierShape</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::drawing::PolyPolygonBezierDescriptor</code></li>
+ * <li> <code>com::sun::star::drawing::LineProperties</code></li>
+ * <li> <code>com::sun::star::drawing::FillProperties</code></li>
+ * <li> <code>com::sun::star::drawing::ShadowProperties</code></li>
+ * <li> <code>com::sun::star::drawing::XGluePointsSupplier</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::drawing::RotationDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::drawing::XShape</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::drawing::TextProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::drawing::Shape</code></li>
+ * </ul> <p>
+ *
+ * The following files used by this test :
+ * <ul>
+ * <li><b> TransparencyChart.sxs </b> : to load predefined chart
+ * document where two 'automatic' transparency styles exists :
+ * 'Transparency 1' and 'Transparency 2'.</li>
+ * </ul> <p>
+ *
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ *
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.drawing.PolyPolygonBezierDescriptor
+ * @see com.sun.star.drawing.LineProperties
+ * @see com.sun.star.drawing.FillProperties
+ * @see com.sun.star.drawing.ShadowProperties
+ * @see com.sun.star.drawing.XGluePointsSupplier
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.drawing.RotationDescriptor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.drawing.TextProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.drawing.Shape
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.drawing._PolyPolygonBezierDescriptor
+ * @see ifc.drawing._LineProperties
+ * @see ifc.drawing._FillProperties
+ * @see ifc.drawing._ShadowProperties
+ * @see ifc.drawing._XGluePointsSupplier
+ * @see ifc.style._CharacterProperties
+ * @see ifc.drawing._RotationDescriptor
+ * @see ifc.text._XTextRange
+ * @see ifc.drawing._XShape
+ * @see ifc.lang._XComponent
+ * @see ifc.drawing._TextProperties
+ * @see ifc.beans._XPropertySet
+ * @see ifc.text._XText
+ * @see ifc.drawing._XShapeDescriptor
+ * @see ifc.text._XSimpleText
+ * @see ifc.drawing._Shape
+ */
+public class SvxShapePolyPolygonBezier extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating a chartdocument" );
+ xDrawDoc = SOF.loadDocument(
+ utils.getFullTestURL("SvxShape.sxd"));
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ try {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ XMultiServiceFactory xMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDrawDoc) ;
+
+ XInterface oInst = (XInterface) xMSF.createInstance
+ ("com.sun.star.drawing.ClosedBezierShape") ;
+ oShape = UnoRuntime.queryInterface
+ (XShape.class, oInst) ;
+
+ Point[] points = new Point[2];
+ points[0] = new Point();
+ points[0].X = 50;
+ points[0].Y = 50;
+ points[1] = new Point();
+ points[1].X = 5000;
+ points[1].Y = 5000;
+
+ Point[][] the_points = new Point[1][2];
+ the_points[0] = points;
+
+ PolygonFlags[] flags = new PolygonFlags[2];
+ flags[0] = PolygonFlags.NORMAL;
+ flags[1] = PolygonFlags.NORMAL;
+
+ PolygonFlags[][] the_flags = new PolygonFlags[1][2];
+ the_flags[0] = flags;
+
+ PolyPolygonBezierCoords coords = new PolyPolygonBezierCoords();
+ coords.Coordinates=the_points;
+ coords.Flags = the_flags;
+
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ oShape.setSize(new Size(3000,3000)) ;
+ oShape.setPosition(new Point(4000,4000)) ;
+
+ oObj = oShape ;
+
+ XPropertySet shapeProps = UnoRuntime.queryInterface
+ (XPropertySet.class, oObj);
+
+ shapeProps.setPropertyValue("PolyPolygonBezier",coords);
+
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Line");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+ }
+ catch (Exception e) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ // test environment creation
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println( "adding two styles as ObjRelation for ShapeDescriptor" );
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oObj);
+ XStyle aStyle = null;
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style1",aStyle);
+ oShapeProps = UnoRuntime.queryInterface(XPropertySet.class,oShape);
+ try {
+ aStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oShapeProps.getPropertyValue("Style"));
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e);
+ }
+ tEnv.addObjRelation("Style2",aStyle);
+
+ // adding relation for XText
+ util.DefaultDsc tDsc = new util.DefaultDsc
+ ("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.URL");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxShapePolyPolygonBezier
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoNumberingRules.java b/qadevOOo/tests/java/mod/_svx/SvxUnoNumberingRules.java
new file mode 100644
index 000000000..10a076e0b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoNumberingRules.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._svx;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+
+
+public class SvxUnoNumberingRules extends TestCase {
+ static XComponent xDrawDoc;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a drawdoc");
+ xDrawDoc = DrawTools.createDrawDoc(
+ tParam.getMSF());
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ xDrawDoc);
+ XInterface oObj = (XInterface) docMSF.createInstance(
+ "com.sun.star.text.NumberingRules");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("Implementationname: " + util.utils.getImplName(oObj));
+
+ Object NewRules=null;
+
+ try{
+ XIndexAccess xIA = UnoRuntime.queryInterface(XIndexAccess.class, oObj);
+ NewRules = xIA.getByIndex(2);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't get new Rules for XIndexReplace");
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't get new Rules for XIndexReplace");
+ }
+
+ tEnv.addObjRelation("INSTANCE1",NewRules);
+
+ return tEnv;
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoText.java b/qadevOOo/tests/java/mod/_svx/SvxUnoText.java
new file mode 100644
index 000000000..19fb1ef32
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoText.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import com.sun.star.text.XText;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.DrawTools;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxUnoText extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ * Object relations created :
+ * <ul>
+ * <li> <code>'RangeForMove'</code> for
+ * {@link ifc.text._XTextRangeMover} (the range to be moved)</li>
+ * <li> <code>'XTextRange'</code> for
+ * {@link ifc.text._XTextRangeMover} (the range that includes moving
+ * range)</li>
+ * </ul>
+ * @see TestParameters
+ * * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ // create testobject here
+ XTextRange aRange = null;
+ XShape oShape = null;
+
+ try {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ oShape = SOF.createShape
+ (xDrawDoc,5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XSimpleText text = UnoRuntime.queryInterface
+ (XSimpleText.class, oShape) ;
+
+ XTextCursor cursor = text.createTextCursor() ;
+ text.insertString(cursor, "Paragraph 1", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ cursor.setString("TextForMove");
+ aRange = cursor;
+ XTextCursor cursor1 = text.createTextCursorByRange(text.getEnd());
+ text.insertControlCharacter(cursor1,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor1, "Paragraph 2", false);
+ text.insertControlCharacter(cursor1,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor1, "Paragraph 3", false) ;
+ text.insertControlCharacter(cursor1,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ oObj = text.getText() ;
+ } catch (Exception e) {
+ log.println("Can't create test object") ;
+ e.printStackTrace(log) ;
+ }
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ // adding relation for XText
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.DateTime");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xDrawDoc, tDsc ) );
+
+ // adding relation for XTextRangeMover
+ tEnv.addObjRelation("RangeForMove", aRange);
+ tEnv.addObjRelation("XTextRange", oObj);
+
+ // adding relation for XTextRangeCompare
+ tEnv.addObjRelation("TEXT", UnoRuntime.queryInterface(XText.class, oShape)) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxUnoText
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoTextContent.java b/qadevOOo/tests/java/mod/_svx/SvxUnoTextContent.java
new file mode 100644
index 000000000..3550663a4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoTextContent.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxUnoTextContent extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ // create testobject here
+
+ XEnumerationAccess xEA = null ;
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ XShape oShape = SOF.createShape(xDrawDoc,
+ 5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+
+ XSimpleText text = UnoRuntime.queryInterface
+ (XSimpleText.class, oShape) ;
+
+ XTextCursor cursor = text.createTextCursor() ;
+
+ text.insertString(cursor, "Paragraph 1", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 2", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 3", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+
+ xEA = UnoRuntime.queryInterface
+ (XEnumerationAccess.class, text) ;
+
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),xEA.createEnumeration().nextElement());
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoTextContentEnum.java b/qadevOOo/tests/java/mod/_svx/SvxUnoTextContentEnum.java
new file mode 100644
index 000000000..b640c95d6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoTextContentEnum.java
@@ -0,0 +1,133 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxUnoTextContentEnum extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+ // create testobject here
+
+ XEnumerationAccess xEA = null ;
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ XShape oShape = SOF.createShape
+ (xDrawDoc,5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+
+ XSimpleText text = UnoRuntime.queryInterface
+ (XSimpleText.class, oShape) ;
+
+ XTextCursor cursor = text.createTextCursor() ;
+
+ text.insertString(cursor, "Paragraph 1", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 2", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 3", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+
+ xEA = UnoRuntime.queryInterface
+ (XEnumerationAccess.class, text) ;
+
+ oObj = xEA.createEnumeration() ;
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XEnumeration test
+ tEnv.addObjRelation("ENUM", xEA) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoTextCursor.java b/qadevOOo/tests/java/mod/_svx/SvxUnoTextCursor.java
new file mode 100644
index 000000000..ec367094a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoTextCursor.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxUnoTextCursor extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+ // create testobject here
+
+ try {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ XShape oShape = SOF.createShape
+ (xDrawDoc,5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+
+ XText text = UnoRuntime.queryInterface(XText.class, oShape) ;
+
+ XTextCursor cursor = text.createTextCursor() ;
+
+ text.insertString(cursor, "Paragraph 1", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 2", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 3", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+
+ oObj = cursor ;
+
+ } catch (Exception e) {
+ log.println("Can't create test object") ;
+ e.printStackTrace(log) ;
+ }
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxUnoTextCursor
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoTextField.java b/qadevOOo/tests/java/mod/_svx/SvxUnoTextField.java
new file mode 100644
index 000000000..f9ffe6726
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoTextField.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see ifc._XComponent
+ * @see ifc._TextContent
+ * @see ifc._XTextContent
+ * @see ifc._XTextField
+ *
+ */
+public class SvxUnoTextField extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc( tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XShape oShape = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ oShape = SOF.createShape(xDrawDoc,5000,3500,7500,5000,"Rectangle");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+
+ XTextCursor the_Cursor = null;
+
+ // create testobject here
+ XText the_Text = UnoRuntime.queryInterface(XText.class,oShape);
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface( XMultiServiceFactory.class, xDrawDoc );
+ the_Cursor = the_Text.createTextCursor();
+ oObj = (XInterface)
+ oDocMSF.createInstance( "com.sun.star.text.TextField.DateTime" );
+ XTextContent the_Field = UnoRuntime.queryInterface(XTextContent.class,oObj);
+
+
+ the_Text.insertTextContent(the_Cursor,the_Field,false);
+
+ log.println( "creating a new environment for FieldMaster object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ tEnv.addObjRelation("RANGE", the_Cursor);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SvxUnoTextField
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoTextRange.java b/qadevOOo/tests/java/mod/_svx/SvxUnoTextRange.java
new file mode 100644
index 000000000..313921f29
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoTextRange.java
@@ -0,0 +1,142 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxUnoTextRange extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ // create testobject here
+
+ XEnumerationAccess xEA = null ;
+ try {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ XShape oShape = SOF.createShape
+ (xDrawDoc,5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+
+ XSimpleText text = UnoRuntime.queryInterface
+ (XSimpleText.class, oShape) ;
+
+ XTextCursor cursor = text.createTextCursor() ;
+
+ text.insertString(cursor, "Paragraph 1", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 2", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 3", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+
+ xEA = UnoRuntime.queryInterface
+ (XEnumerationAccess.class, text) ;
+
+ XInterface oTextContent = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),xEA.createEnumeration().nextElement());
+
+ xEA = UnoRuntime.queryInterface
+ (XEnumerationAccess.class, oTextContent) ;
+
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),xEA.createEnumeration().nextElement());
+
+ } catch (Exception e) {
+ log.println("Can't create test object") ;
+ e.printStackTrace(log) ;
+ }
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/SvxUnoTextRangeEnumeration.java b/qadevOOo/tests/java/mod/_svx/SvxUnoTextRangeEnumeration.java
new file mode 100644
index 000000000..8fe191542
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/SvxUnoTextRangeEnumeration.java
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._svx;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DrawTools;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class SvxUnoTextRangeEnumeration extends TestCase {
+
+ static XComponent xDrawDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ log.println( "creating a drawdoc" );
+ xDrawDoc = DrawTools.createDrawDoc(tParam.getMSF());
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ util.DesktopTools.closeDoc(xDrawDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ // create testobject here
+
+ XEnumerationAccess xEA = null ;
+ try {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()) ;
+ XShape oShape = SOF.createShape
+ (xDrawDoc,5000,3500,7500,5000,"Text");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape) ;
+
+ XSimpleText text = UnoRuntime.queryInterface
+ (XSimpleText.class, oShape) ;
+
+ XTextCursor cursor = text.createTextCursor() ;
+
+ text.insertString(cursor, "Paragraph 1", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 2", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+ text.insertString(cursor, "Paragraph 3", false) ;
+ text.insertControlCharacter(cursor,
+ ControlCharacter.PARAGRAPH_BREAK, false) ;
+
+ xEA = UnoRuntime.queryInterface
+ (XEnumerationAccess.class, text) ;
+
+ XInterface oTextContent = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),xEA.createEnumeration().nextElement());
+
+ xEA = UnoRuntime.queryInterface
+ (XEnumerationAccess.class, oTextContent) ;
+
+ oObj = xEA.createEnumeration();
+
+ } catch (Exception e) {
+ log.println("Can't create test object") ;
+ e.printStackTrace(log) ;
+ }
+
+ // create test environment here
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("ENUM", xEA);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_svx/package.html b/qadevOOo/tests/java/mod/_svx/package.html
new file mode 100644
index 000000000..a4961d2bf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_svx/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'svx'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_sw/CharacterStyle.java b/qadevOOo/tests/java/mod/_sw/CharacterStyle.java
new file mode 100644
index 000000000..8f7c3b181
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/CharacterStyle.java
@@ -0,0 +1,148 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.CharacterStyle</code>. <p>
+ * @see com.sun.star.style.CharacterStyle
+ */
+public class CharacterStyle extends TestCase {
+ private XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * At first style families are gotten from a text document using
+ * <code>XStyleFamiliesSupplier</code> interface, then family indexed '0' is
+ * gotten from this style family using <code>XIndexAccess</code> interface.
+ * Next, method creates an instance of the service
+ * <code>com.sun.star.style.CharacterStyle</code> and inserts it to a
+ * previously obtained style family using <code>XNameContainer</code>
+ * interface. Finally, method creates a cursor of a major text of text
+ * document and sets it's property 'CharStyleName' value to the name of
+ * previously created style's name.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PoolStyle'</code> for
+ * {@link ifc.style._XStyle} : style indexed '10' obtained from
+ * StyleFamily indexed '0' from text document using
+ * <code>XIndexAccess</code> interface.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ TestEnvironment tEnv = null;
+ XNameAccess oSFNA = null;
+ XStyle oStyle = null;
+ XStyle oMyStyle = null;
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
+ xTextDoc);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+ XIndexAccess oSFsIA = UnoRuntime.queryInterface(XIndexAccess.class, oSF);
+ oSFNA = UnoRuntime.queryInterface(
+ XNameAccess.class,oSFsIA.getByIndex(0));
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSFNA);
+ oStyle = UnoRuntime.queryInterface(
+ XStyle.class,oSFIA.getByIndex(0));
+
+ log.print("Creating a user-defined style... ");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.CharacterStyle");
+ oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+
+ if (oMyStyle == null)
+ log.println("FAILED");
+ else
+ log.println("OK");
+ XNameContainer oSFNC = UnoRuntime.queryInterface(XNameContainer.class, oSFNA);
+
+ if ( oSFNC.hasByName("My Style") )
+ oSFNC.removeByName("My Style");
+ oSFNC.insertByName("My Style", oMyStyle);
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, oCursor);
+
+ xProp.setPropertyValue("CharStyleName", oMyStyle.getName());
+
+ log.println("creating a new environment for object");
+ tEnv = new TestEnvironment(oMyStyle);
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ XPropertySet xStyleProp = UnoRuntime.queryInterface(XPropertySet.class, oMyStyle);
+
+ String[] skipPropertiesNamed = {};
+
+ short exclude = PropertyAttribute.READONLY;
+ tEnv.addObjRelation("PropertyNames",utils.getFilteredPropertyNames(xStyleProp, (short)0, exclude, skipPropertiesNamed));
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sw/ConditionalParagraphStyle.java b/qadevOOo/tests/java/mod/_sw/ConditionalParagraphStyle.java
new file mode 100644
index 000000000..fbcc9e2b0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/ConditionalParagraphStyle.java
@@ -0,0 +1,142 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.Status;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.ConditionalParagraphStyle</code>. <p>
+ * @see com.sun.star.style.ConditionalParagraphStyle
+ */
+public class ConditionalParagraphStyle extends TestCase {
+
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Create a new instance of the conditional
+ * paragraph style, and insert it into the document.
+ * @see com.sun.star.style.ConditionalParagraphStyle
+ * @param tParam The test parameters
+ * @param log The log writer.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+ XNameAccess oSFNA = null;
+ XStyle oStyle = null;
+ XStyle oMyStyle = null;
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
+ xTextDoc);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+ oSFNA = UnoRuntime.queryInterface(
+ XNameAccess.class,oSF.getByName("ParagraphStyles"));
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSFNA);
+ oStyle = UnoRuntime.queryInterface(
+ XStyle.class,oSFIA.getByIndex(1));
+
+ log.print("Creating a user-defined style... ");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.ConditionalParagraphStyle");
+ oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+
+ if (oMyStyle == null) {
+ log.println("FAILED");
+ throw new StatusException(Status.failed("Couldn't create an own style "));
+ }
+ else {
+ log.println("OK");
+ }
+
+ XNameContainer oSFNC = UnoRuntime.queryInterface(XNameContainer.class, oSFNA);
+
+ if ( oSFNC.hasByName("My Style") )
+ oSFNC.removeByName("My Style");
+ oSFNC.insertByName("My Style", oMyStyle);
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, oCursor);
+ xProp.setPropertyValue("ParaStyleName", oMyStyle.getName());
+
+ log.println("creating a new environment for object");
+ tEnv = new TestEnvironment(oMyStyle);
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ XPropertySet xStyleProp = UnoRuntime.queryInterface(XPropertySet.class, oMyStyle);
+ short exclude = PropertyAttribute.READONLY;
+ String[] skipPropertiesNamed = { "ParaBackGraphicURL" };
+
+ String[] names = utils.getFilteredPropertyNames(xStyleProp, (short)0, exclude, skipPropertiesNamed);
+
+ tEnv.addObjRelation("PropertyNames", names);
+ tEnv.addObjRelation("SkipProperties", skipPropertiesNamed);
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sw/DocumentSettings.java b/qadevOOo/tests/java/mod/_sw/DocumentSettings.java
new file mode 100644
index 000000000..935c84b1e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/DocumentSettings.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+import util.WriterTools;
+
+import java.io.PrintWriter;
+
+
+public class DocumentSettings extends TestCase
+{
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log)
+ {
+ log.println(" opening xTextDoc ");
+ xTextDoc =
+ WriterTools.createTextDoc(tParam.getMSF());
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log)
+ {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log
+ )
+ {
+ SOfficeFactory SOF =
+ SOfficeFactory.getFactory(tParam.getMSF());
+ XInterface oObj = null;
+
+ log.println("creating a test environment");
+
+ oObj =
+ (XInterface) SOF.createInstance(
+ xTextDoc, "com.sun.star.text.DocumentSettings"
+ );
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/PageStyle.java b/qadevOOo/tests/java/mod/_sw/PageStyle.java
new file mode 100644
index 000000000..7de28b201
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/PageStyle.java
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.PageStyle</code>. <p>
+ * @see com.sun.star.style.PageStyle
+ */
+public class PageStyle extends TestCase {
+
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+ XNameAccess oSFNA = null;
+ XStyle oStyle = null;
+ XStyle oMyStyle = null;
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
+ xTextDoc);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+ oSFNA = UnoRuntime.queryInterface(
+ XNameAccess.class,oSF.getByName("PageStyles")); // get the page style
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSFNA);
+ oStyle = UnoRuntime.queryInterface(
+ XStyle.class,oSFIA.getByIndex(0));
+ log.println("Chosen pool style: "+oStyle.getName());
+
+ log.print("Creating a user-defined style... ");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.PageStyle");
+ oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+
+ if (oMyStyle == null)
+ log.println("FAILED");
+ else
+ log.println("OK");
+
+ XNameContainer oSFNC = UnoRuntime.queryInterface(XNameContainer.class, oSFNA);
+
+
+ if ( oSFNC.hasByName("My Style") )
+ oSFNC.removeByName("My Style");
+ oSFNC.insertByName("My Style", oMyStyle);
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, oCursor);
+ Property[] props = xProp.getPropertySetInfo().getProperties();
+ for (int i=0; i<props.length; i++)
+ System.out.println("# Property: " + props[i].Name + " val: " + props[i].Type.toString() + " attr: " + props[i].Attributes);
+ xProp.setPropertyValue("PageDescName", oMyStyle.getName());
+
+// oMyStyle = oStyle;
+ log.println("creating a new environment for object");
+ tEnv = new TestEnvironment(oMyStyle);
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ tEnv.addObjRelation("FollowStyle", "Envelope");
+ XPropertySet xStyleProp = UnoRuntime.queryInterface(XPropertySet.class, oMyStyle);
+
+ short exclude = PropertyAttribute.READONLY;
+
+ String[] skipPropertiesNamed = {
+ "BackGraphicURL", "HeaderBackGraphicURL", "FooterBackGraphicURL"
+ };
+
+ String[] names = utils.getFilteredPropertyNames(xStyleProp, (short)0, exclude, skipPropertiesNamed);
+ tEnv.addObjRelation("PropertyNames", names);
+ tEnv.addObjRelation("SkipProperties", skipPropertiesNamed);
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sw/ParagraphStyle.java b/qadevOOo/tests/java/mod/_sw/ParagraphStyle.java
new file mode 100644
index 000000000..b85a83ab3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/ParagraphStyle.java
@@ -0,0 +1,131 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.ParagraphStyle</code>. <p>
+ * @see com.sun.star.style.ParagraphStyle
+ */
+public class ParagraphStyle extends TestCase {
+
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+ XNameAccess oSFNA = null;
+ XStyle oStyle = null;
+ XStyle oMyStyle = null;
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
+ xTextDoc);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+ oSFNA = UnoRuntime.queryInterface(
+ XNameAccess.class,oSF.getByName("ParagraphStyles"));
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSFNA);
+ oSFNA.getElementNames();
+ oStyle = UnoRuntime.queryInterface(
+ XStyle.class,oSFIA.getByIndex(1));
+
+ log.print("Creating a user-defined style... ");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.ParagraphStyle");
+ oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+
+ if (oMyStyle == null)
+ log.println("FAILED");
+ else
+ log.println("OK");
+ XNameContainer oSFNC = UnoRuntime.queryInterface(XNameContainer.class, oSFNA);
+
+ if ( oSFNC.hasByName("My Style") )
+ oSFNC.removeByName("My Style");
+ oSFNC.insertByName("My Style", oMyStyle);
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, oCursor);
+
+ xProp.setPropertyValue("ParaStyleName", oMyStyle.getName());
+
+ log.println("creating a new environment for object");
+ tEnv = new TestEnvironment(oMyStyle);
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ XPropertySet xStyleProp = UnoRuntime.queryInterface(XPropertySet.class, oMyStyle);
+ short exclude = PropertyAttribute.READONLY;
+
+ String[] skipPropertiesNamed = { "ParaBackGraphicURL" };
+
+ String[] names = utils.getFilteredPropertyNames(xStyleProp, (short)0, exclude, skipPropertiesNamed);
+ tEnv.addObjRelation("PropertyNames", names);
+
+ return tEnv;
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentPageView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentPageView.java
new file mode 100644
index 000000000..5fb1a4779
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentPageView.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+public class SwAccessibleDocumentPageView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switch the document to Print Preview mode.
+ * Obtains accessible object for the document page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ final TestParameters Param, PrintWriter log) throws Exception{
+
+ XInterface oObj = null;
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println( "inserting some lines" );
+ for (int i=0; i<25; i++){
+ oText.insertString( oCursor,"Paragraph Number: " + i, false);
+ oText.insertString( oCursor,
+ " The quick brown fox jumps over the lazy Dog: SwAccessibleDocumentPageView",
+ false);
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertString( oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwAccessibleDocumentPageView",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ }
+
+ XController xController = xTextDoc.getCurrentController();
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT );
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XText the_text = oText;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ String oldText = the_text.getString();
+ the_text.setString("EVENT FIRED");
+ util.utils.waitForEventIdle(Param.getMSF());
+ the_text.setString(oldText);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc( Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentView.java
new file mode 100644
index 000000000..37b59c323
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentView.java
@@ -0,0 +1,168 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleValue;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test of accessible object for the text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleDocumentView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects. The method is called from
+ * <code>getTestEnvironment()</code>. Obtains accessible object for
+ * text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println( "inserting some lines" );
+ for (int i=0; i<5; i++){
+ oText.insertString( oCursor,"Paragraph Number: " + i, false);
+ oText.insertString( oCursor,
+ " The quick brown fox jumps over the lazy Dog: SwXParagraph",
+ false);
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertString( oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ }
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.DOCUMENT);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ getAccessibleObjectForRole(xRoot, AccessibleRole.SCROLL_BAR);
+ final XAccessibleValue xAccVal = UnoRuntime.queryInterface
+ (XAccessibleValue.class, SearchedContext) ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ xAccVal.setCurrentValue(xAccVal.getMinimumValue());
+ xAccVal.setCurrentValue(xAccVal.getMaximumValue());
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ public static boolean first = false;
+ public static XAccessibleContext SearchedContext = null;
+
+ public static void getAccessibleObjectForRole(XAccessible xacc,short role) {
+ XAccessibleContext ac = xacc.getAccessibleContext();
+ if (ac.getAccessibleRole()==role) {
+ if (first) SearchedContext = ac;
+ else first=true;
+ } else {
+ int k = ac.getAccessibleChildCount();
+ for (int i=0;i<k;i++) {
+ try {
+ getAccessibleObjectForRole(ac.getAccessibleChild(i),role);
+ if (SearchedContext != null) return ;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.out.println("Couldn't get Child");
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleEndnoteView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleEndnoteView.java
new file mode 100644
index 000000000..eb66279fa
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleEndnoteView.java
@@ -0,0 +1,155 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+public class SwAccessibleEndnoteView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Inserts the created endnote to the document.
+ * Changes zoom value to 10%(endnote must be in visible area of the document).
+ * Obtains accessible object for the inserted endnote.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XInterface oEndnote = null;
+
+ log.println( "Creating a test environment" );
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating an endnote");
+ oEndnote = UnoRuntime.queryInterface(XInterface.class,
+ msf.createInstance("com.sun.star.text.Endnote"));
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ XTextContent xTC = UnoRuntime.queryInterface(XTextContent.class, oEndnote);
+ oText.insertTextContent(oCursor, xTC, false);
+
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+ XPropertySet xPropSet = xViewSetSup.getViewSettings();
+
+ //change zoom value to 20%
+ //footer should be in the visible area of the document
+ xPropSet.setPropertyValue("ZoomValue", Short.valueOf("20"));
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.END_NOTE);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XPropertySet PropSet = xViewSetSup.getViewSettings();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ //change zoom value to 21%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("21"));
+ //and back to 20%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("20"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleFooterView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleFooterView.java
new file mode 100644
index 000000000..24ee00358
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleFooterView.java
@@ -0,0 +1,159 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+* Test of accessible object for a footer of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleFooterView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects. Obtains style
+ * <code>Standard</code> from style family <code>PageStyles</code>.
+ * Changes values of property <code>FooterIsOn</code> by <code>true</code>.
+ * Changes zoom value to 10%(footer must be in visible area of the document).
+ * Obtains accessible component for the footer.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xTextDoc);
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+
+ // obtains style 'Standard' from style family 'PageStyles'
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Standard"));
+
+ final XPropertySet PropSet = UnoRuntime.queryInterface( XPropertySet.class, StdStyle);
+
+ // changing/getting some properties
+ log.println( "Switching on footer" );
+ PropSet.setPropertyValue("FooterIsOn", Boolean.TRUE);
+
+ //change zoom value to 10%
+ //footer should be in the visible area of the document
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+ XPropertySet xPropSet = xViewSetSup.getViewSettings();
+ xPropSet.setPropertyValue("ZoomValue", Short.valueOf("20"));
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.FOOTER);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ try {
+ PropSet.setPropertyValue("FooterLeftMargin",
+ Integer.valueOf(1000));
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace();
+ throw new StatusException("Can't change footer.", e);
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleFootnoteView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleFootnoteView.java
new file mode 100644
index 000000000..0899108a8
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleFootnoteView.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnote;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+public class SwAccessibleFootnoteView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Inserts the created footnote to the document.
+ * Changes zoom value to 10%(endnote must be in visible area of the document).
+ * Obtains accessible object for the inserted footnote.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XFootnote oFootnote = null;
+
+ log.println( "Creating a test environment" );
+ // get a soffice factory object
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating a footnote");
+
+ oFootnote = UnoRuntime.queryInterface(XFootnote.class,
+ msf.createInstance("com.sun.star.text.Footnote"));
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ oText.insertTextContent(oCursor, oFootnote, false);
+
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+ XPropertySet xPropSet = xViewSetSup.getViewSettings();
+
+ //change zoom value to 10%
+ //footer should be in the visible area of the document
+ xPropSet.setPropertyValue("ZoomValue", Short.valueOf("10"));
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.FOOTNOTE);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XPropertySet PropSet = xViewSetSup.getViewSettings();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ //change zoom value to 130%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("15"));
+ //and back to 10%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("10"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleHeaderView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleHeaderView.java
new file mode 100644
index 000000000..b946304a0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleHeaderView.java
@@ -0,0 +1,148 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.frame.XModel;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test of accessible object for a header of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleHeaderView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects. Obtains style
+ * <code>Standard</code> from style family <code>PageStyles</code>.
+ * Changes values of properties <code>HeaderIsOn</code> and
+ * <code>FooterIsOn</code> by <code>true</code>. Obtains accessible component
+ * for header.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xTextDoc);
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+
+ // obtains style 'Standard' from style family 'PageStyles'
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Standard"));
+
+ final XPropertySet PropSet = UnoRuntime.queryInterface( XPropertySet.class, StdStyle);
+
+ // changing/getting some properties
+ log.println( "Switching on header" );
+ PropSet.setPropertyValue("HeaderIsOn", Boolean.TRUE);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.HEADER);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
+ public void fireEvent() {
+ try {
+ PropSet.setPropertyValue("HeaderLeftMargin",
+ Integer.valueOf(1000));
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace();
+ throw new StatusException("Can't change footer.", e);
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessiblePageView.java b/qadevOOo/tests/java/mod/_sw/SwAccessiblePageView.java
new file mode 100644
index 000000000..62f6e8454
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessiblePageView.java
@@ -0,0 +1,214 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleValue;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+public class SwAccessiblePageView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Switches the document to Print Preview mode.
+ * Obtains accessible object for the page view.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XInterface port = null;
+ XInterface para = null;
+ XPropertySet paraP = null;
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println( "inserting some lines" );
+ for (int i=0; i<2; i++){
+ oText.insertString( oCursor,"Paragraph Number: " + i, false);
+ oText.insertString( oCursor,
+ " The quick brown fox jumps over the lazy Dog: SwXParagraph",
+ false);
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertString( oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ }
+
+ // Enumeration
+ XEnumerationAccess oEnumA = UnoRuntime.queryInterface(XEnumerationAccess.class, oText );
+ XEnumeration oEnum = oEnumA.createEnumeration();
+
+ para = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oEnum.nextElement());
+ XEnumerationAccess oEnumB = UnoRuntime.queryInterface( XEnumerationAccess.class, para );
+ XEnumeration oEnum2 = oEnumB.createEnumeration();
+ port = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oEnum2.nextElement());
+
+ UnoRuntime.queryInterface(XPropertySet.class, port);
+ paraP = UnoRuntime.queryInterface(XPropertySet.class, para);
+ paraP.setPropertyValue("BreakType",com.sun.star.style.BreakType.PAGE_AFTER);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XController xController = xTextDoc.getCurrentController();
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ //switch to 'Print Preview' mode
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class,
+ Param.getMSF().createInstance("com.sun.star.util.URLTransformer"));
+ // Because it's an in/out parameter we must use an array of URL objects.
+ URL[] aParseURL = new URL[1];
+ aParseURL[0] = new URL();
+ aParseURL[0].Complete = ".uno:PrintPreview";
+ xParser.parseStrict(aParseURL);
+ URL aURL = aParseURL[0];
+ XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
+ if(xDispatcher != null)
+ xDispatcher.dispatch( aURL, null );
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ System.out.println("Panel: "+AccessibleRole.PANEL);
+ System.out.println("ScrollPane: "+AccessibleRole.SCROLL_PANE);
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL,"Page");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ getAccessibleObjectForRole(xRoot, AccessibleRole.SCROLL_BAR);
+ final XAccessibleValue xAccVal = UnoRuntime.queryInterface
+ (XAccessibleValue.class, SearchedContext) ;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Integer old = (Integer) xAccVal.getCurrentValue();
+ Integer newValue = Integer.valueOf(old.intValue()+10);
+ xAccVal.setCurrentValue(newValue);
+ xAccVal.setCurrentValue(old);
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ public static boolean first = false;
+ public static XAccessibleContext SearchedContext = null;
+
+ public static void getAccessibleObjectForRole(XAccessible xacc,short role) {
+ XAccessibleContext ac = xacc.getAccessibleContext();
+ if (ac.getAccessibleRole()==role) {
+ if (first) SearchedContext = ac;
+ else first=true;
+ } else {
+ int k = ac.getAccessibleChildCount();
+ for (int i=0;i<k;i++) {
+ try {
+ getAccessibleObjectForRole(ac.getAccessibleChild(i),role);
+ if (SearchedContext != null) return ;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.out.println("Couldn't get Child");
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization. In the
+ * implementation does nothing. Subclasses can override to initialize
+ * objects shared among all <code>TestEnvironment</code>s.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleParagraphView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleParagraphView.java
new file mode 100644
index 000000000..01af4ed5d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleParagraphView.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test of accessible object for paragraph of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleParagraphView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects. Obtains accessible object
+ * for one of document paragraph.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ XText oText = xTextDoc.getText();
+ oText.setString("XAccessibleText");
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PARAGRAPH);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XText paraText = xTextDoc.getText();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ String old = paraText.getString();
+ paraText.setString("Just a line");
+ paraText.setString(old);
+ }
+ });
+
+ final String text = "XAccessibleText";
+
+ tEnv.addObjRelation("XAccessibleText.Text", text);
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc( Param.getMSF());
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleTableCellView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleTableCellView.java
new file mode 100644
index 000000000..c16f1f497
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleTableCellView.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+* Test of accessible object for the table cell of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleTableCellView extends TestCase {
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Creates a text table and inserts it to document. Then obtains accessible
+ * object for one of table cell.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XAccessibleContext oObj = null;
+ XTextTable oTable = null;
+
+ SOfficeFactory.getFactory( Param.getMSF());
+
+ oTable = SOfficeFactory.createTextTable(xTextDoc);
+
+ SOfficeFactory.insertTextContent(xTextDoc, oTable);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE_CELL);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleSelection accSel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ oObj.getAccessibleParent());
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ accSel.selectAllAccessibleChildren();
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("creating a text document");
+ xTextDoc = WriterTools.createTextDoc( Param.getMSF());
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleTableView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleTableView.java
new file mode 100644
index 000000000..1d47445ce
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleTableView.java
@@ -0,0 +1,147 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+* Test of accessible object for the table of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleTableView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Creates a text table and inserts it into the document.
+ * Then obtains accessible object for the table.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+ XTextTable oTable = null;
+
+ SOfficeFactory.getFactory(Param.getMSF());
+ oTable = SOfficeFactory.createTextTable( xTextDoc );
+
+ SOfficeFactory.insertTextContent(xTextDoc, oTable );
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+
+ final XPropertySet PropSet = xViewSetSup.getViewSettings();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ //change zoom value to 15%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("15"));
+ //and back to 100%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("100"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+
+ }
+ }
+ });
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleTextEmbeddedObject.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleTextEmbeddedObject.java
new file mode 100644
index 000000000..e7ce3df98
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleTextEmbeddedObject.java
@@ -0,0 +1,142 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+* Test of accessible object for the text embedded object of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleTextEmbeddedObject extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Obtains accessible object for the embedded object.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.EMBEDDED_OBJECT);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+
+ final XPropertySet PropSet = xViewSetSup.getViewSettings();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ //change zoom value to 15%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("15"));
+ //and back to 100%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("100"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+
+ }
+ }
+ });
+
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Loads the text document <code>SwXTextEmbeddedObject.sxw</code>
+ * with a text embedded object.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "open a text document" );
+ String testdoc = utils.getFullTestURL("SwXTextEmbeddedObject.sxw");
+ log.println(testdoc);
+ xTextDoc = WriterTools.loadTextDoc(Param.getMSF(),testdoc);
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleTextFrameView.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleTextFrameView.java
new file mode 100644
index 000000000..133cfcb78
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleTextFrameView.java
@@ -0,0 +1,166 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.TextContentAnchorType;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+* Test of accessible object for the text frame of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleTextFrameView extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Creates a frame and inserts it into document.
+ * Obtains accessible object for the inserted text frame.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XTextFrame oFrame1 = null;
+ XPropertySet oPropSet = null;
+ XText oText = null;
+ XTextCursor oCursor = null;
+
+ // get a soffice factory object
+ SOfficeFactory.getFactory( Param.getMSF() );
+ // creating Frames
+ log.println( "creating Frames" );
+ oFrame1 = SOfficeFactory.createTextFrame(xTextDoc, 500, 500);
+ oPropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oFrame1 );
+ oPropSet.setPropertyValue("AnchorType",
+ TextContentAnchorType.AS_CHARACTER);
+ oText = xTextDoc.getText();
+ oCursor = oText.createTextCursor();
+
+ log.println( "inserting Frame1" );
+ XTextContent the_content = UnoRuntime.queryInterface(XTextContent.class, oFrame1);
+ oText.insertTextContent(oCursor, the_content, true);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TEXT_FRAME);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+
+ final XPropertySet PropSet = xViewSetSup.getViewSettings();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ //change zoom value to 15%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("15"));
+ //and back to 100%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("100"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+
+ }
+ }
+ });
+
+
+ return tEnv;
+
+ }
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwAccessibleTextGraphicObject.java b/qadevOOo/tests/java/mod/_sw/SwAccessibleTextGraphicObject.java
new file mode 100644
index 000000000..f3b23fbdf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwAccessibleTextGraphicObject.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+* Test of accessible object for the graphic object of a text document.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>::com::sun::star::accessibility::XAccessible</code></li>
+* </ul>
+* @see com.sun.star.accessibility.XAccessible
+*/
+public class SwAccessibleTextGraphicObject extends TestCase {
+
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Called to create an instance of <code>TestEnvironment</code>
+ * with an object to test and related objects.
+ * Creates a graphic object and inserts it into the document.
+ * Obtains accessible object for graphic object.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see TestEnvironment
+ * @see #getTestEnvironment
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+ Object oGraphObj = SOF.createInstance(
+ xTextDoc, "com.sun.star.text.GraphicObject");
+
+ XText the_text = xTextDoc.getText();
+ XTextCursor the_cursor = the_text.createTextCursor();
+ XTextContent the_content = UnoRuntime.queryInterface(XTextContent.class, oGraphObj);
+
+ log.println( "inserting graphic" );
+ the_text.insertTextContent(the_cursor, the_content, true);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.GRAPHIC);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+
+ final XPropertySet PropSet = xViewSetSup.getViewSettings();
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ //change zoom value to 20%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("20"));
+ //and back to 100%
+ PropSet.setPropertyValue("ZoomValue", Short.valueOf("100"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+
+ }
+ }
+ });
+
+
+ return tEnv;
+
+ }
+
+
+ /**
+ * Called while disposing a <code>TestEnvironment</code>.
+ * Disposes text document.
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println("dispose text document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Called while the <code>TestCase</code> initialization.
+ * Creates a text document.
+ *
+ * @param Param test parameters
+ * @param log writer to log information while testing
+ *
+ * @see #initializeTestCase
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println( "creating a text document" );
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXAutoTextContainer.java b/qadevOOo/tests/java/mod/_sw/SwXAutoTextContainer.java
new file mode 100644
index 000000000..edaa1aed9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXAutoTextContainer.java
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XAutoTextContainer;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.AutoTextContainer</code>.<p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::container::XNameAccess</code></li>
+* <li> <code>com::sun::star::container::XElementAccess</code></li>
+* <li> <code>com::sun::star::text::XAutoTextContainer</code></li>
+* </ul>
+* @see com.sun.star.container.XNameAccess
+* @see com.sun.star.container.XElementAccess
+* @see com.sun.star.text.XAutoTextContainer
+* @see com.sun.star.text.AutoTextContainer
+* @see ifc.container._XNameAccess
+* @see ifc.container._XElementAccess
+* @see ifc.text._XAutoTextContainer
+*/
+public class SwXAutoTextContainer extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.AutoTextContainer</code>.<p>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ XAutoTextContainer oContainer = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating an AutoTextContainer");
+ XMultiServiceFactory myMSF = Param.getMSF();
+ Object oInst = myMSF.createInstance
+ ("com.sun.star.text.AutoTextContainer");
+ oContainer = UnoRuntime.queryInterface
+ (XAutoTextContainer.class,oInst);
+
+ TestEnvironment tEnv = new TestEnvironment(oContainer);
+
+ return tEnv;
+ }
+
+} // finish class SwXAutoTextcontainer
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXAutoTextEntry.java b/qadevOOo/tests/java/mod/_sw/SwXAutoTextEntry.java
new file mode 100644
index 000000000..30a7ada71
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXAutoTextEntry.java
@@ -0,0 +1,198 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DefaultDsc;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XAutoTextContainer;
+import com.sun.star.text.XAutoTextEntry;
+import com.sun.star.text.XAutoTextGroup;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.AutoTextEntry</code>.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::text::XAutoTextEntry</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.AutoTextEntry
+ * @see com.sun.star.text.AutoTextContainer
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XAutoTextEntry
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XText
+ * @see ifc.text._XSimpleText
+ * @see ifc.text._XAutoTextEntry
+ * @see ifc.text._XTextRange
+ * @see ifc.text._XText
+ */
+public class SwXAutoTextEntry extends TestCase {
+ XTextDocument xTextDoc;
+ XAutoTextGroup oGroup;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ XMultiServiceFactory msf = tParam.getMSF();
+ SOfficeFactory SOF = SOfficeFactory.getFactory( msf );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Removes added element from AutoTextGroup
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ try {
+ if ( oGroup.hasByName("NewEntryName") ) {
+ log.println("Removing 'NewEntryName' element");
+ ((com.sun.star.lang.XComponent) AnyConverter.toObject(
+ new Type(com.sun.star.lang.XComponent.class),
+ oGroup.getByName("NewEntryName"))).dispose();
+ oGroup.removeByName("NewEntryName");
+ }
+ } catch ( com.sun.star.container.NoSuchElementException e ) {
+ log.println("Cannot remove TextEntry from group...");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Cannot remove TextEntry from group...");
+ e.printStackTrace(log);
+ }
+ log.println( "disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.AutoTextContainer</code>, then selects the 'mytexts'
+ * group from the given container using <code>XNameAccess</code> interface,
+ * and inserts some text entry to this group. Then entry passed as test
+ * component.<p>
+ * Object relations created :
+ * <ul>
+ * <li><code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} : creates tables 6x4</li>
+ * <li><code>'TEXTDOC'</code> for
+ * {@link ifc.text._XAutoTextEntry} : text document</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ XAutoTextEntry oEntry = null;
+ XAutoTextContainer oContainer;
+ XInterface oObj = null;
+ log.println( "creating a test environment" );
+ XMultiServiceFactory myMSF = Param.getMSF();
+ Object oInst = myMSF.createInstance
+ ("com.sun.star.text.AutoTextContainer");
+ oContainer = UnoRuntime.queryInterface(XAutoTextContainer.class,oInst);
+
+ XNameAccess oContNames = UnoRuntime.queryInterface(XNameAccess.class, oContainer);
+
+ String contNames[] = oContNames.getElementNames();
+ for (int i =0; i < contNames.length; i++){
+ log.println("ContainerNames[ "+ i + "]: " + contNames[i]);
+ }
+
+ oObj = (XInterface) AnyConverter.toObject(new Type(XInterface.class),oContNames.getByName("mytexts"));
+
+ oGroup = UnoRuntime.queryInterface
+ (XAutoTextGroup.class, oObj);
+ String[] oENames = oGroup.getElementNames();
+ for (int i=0; i<oENames.length; i++) {
+ log.println("AutoTextEntryNames[" + i + "]: " + oENames[i]);
+ }
+
+ XText oText = xTextDoc.getText();
+ oText.insertString(oText.getStart(), "New AutoText", true);
+ XTextRange oTextRange = oText;
+ try {
+ if ( oGroup.hasByName("NewEntryName") ) {
+ oGroup.removeByName("NewEntryName");
+ log.println("Element 'NewEntryName' exists, removing...");
+ }
+ log.println("Adding new element 'NewEntryName' to group...");
+ oGroup.insertNewByName("NewEntryName", "NewEntryTitle", oTextRange);
+ oEntry = (XAutoTextEntry) AnyConverter.toObject(
+ new Type(XAutoTextEntry.class),oGroup.getByName("NewEntryName"));
+ } catch ( com.sun.star.container.ElementExistException e ) {
+ e.printStackTrace(log);
+ } catch ( com.sun.star.container.NoSuchElementException e ) {
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ e.printStackTrace(log);
+ }
+
+ oObj = oEntry;
+
+ log.println("Trying to use XText as TextRange in the method applyTo");
+ oEntry.applyTo(oTextRange);
+
+ oTextRange = oText.createTextCursor();
+ log.println("Trying to use XTextCursor as TextRange in the method applyTo");
+ oEntry.applyTo(oTextRange);
+
+ log.println( "creating a new environment for AutoTextEntry object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XText
+ DefaultDsc tDsc = new DefaultDsc("com.sun.star.text.XTextContent",
+ "com.sun.star.text.TextField.DateTime");
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class SwXAutoTextEntry
diff --git a/qadevOOo/tests/java/mod/_sw/SwXAutoTextGroup.java b/qadevOOo/tests/java/mod/_sw/SwXAutoTextGroup.java
new file mode 100644
index 000000000..eb9ff16e0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXAutoTextGroup.java
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import com.sun.star.container.XNameAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XAutoTextContainer;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import util.utils;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.AutoTextGroup</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::text::XAutoTextGroup</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.text.XAutoTextGroup
+ * @see com.sun.star.text.AutoTextContainer
+ * @see ifc.container._XNamed
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.text._XAutoTextGroup
+ */
+public class SwXAutoTextGroup extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.AutoTextContainer</code>, then creates a new
+ * group into the container.<p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'TextRange'</code> for
+ * {@link ifc.text._XAutoTextGroup} range of text</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XAutoTextContainer oContainer;
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory myMSF = Param.getMSF();
+ Object oInst = myMSF.createInstance("com.sun.star.text.AutoTextContainer");
+ oContainer = UnoRuntime.queryInterface(XAutoTextContainer.class,oInst);
+ String myGroupName="myNewGroup2*1";
+
+ XAutoTextContainer xATC = UnoRuntime.queryInterface(XAutoTextContainer.class, oContainer);
+
+ try {
+ log.println("removing element with name '" + myGroupName + "'");
+ xATC.removeByName(myGroupName);
+ } catch (com.sun.star.container.NoSuchElementException e) {
+ }
+
+ log.println("adding element with name '" + myGroupName + "'");
+ xATC.insertNewByName(myGroupName);
+
+ XNameAccess oContNames = UnoRuntime.queryInterface(XNameAccess.class, oContainer);
+
+ if (Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE)){
+ String contNames[] = oContNames.getElementNames();
+ for (int i =0; i < contNames.length; i++){
+ log.println("ContainerNames[ "+ i + "]: " + contNames[i]);
+ }
+ }
+
+ oObj = (XInterface) AnyConverter.toObject(new Type(XInterface.class),oContNames.getByName(myGroupName));
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ log.println( "creating a new environment for AutoTextGroup object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XText oText = xTextDoc.getText();
+ oText.insertString(oText.getStart(), "New AutoText", true);
+
+ log.println( "adding TextRange as mod relation to environment" );
+ tEnv.addObjRelation("TextRange", oText);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class SwXAutoTextGroup
diff --git a/qadevOOo/tests/java/mod/_sw/SwXBodyText.java b/qadevOOo/tests/java/mod/_sw/SwXBodyText.java
new file mode 100644
index 000000000..e79c25993
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXBodyText.java
@@ -0,0 +1,136 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+import util.TableDsc;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Text</code>.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextRangeMover</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::text::XRelativeTextContentInsert</code></li>
+ * <li> <code>com::sun::star::text::XTextRangeCompare</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextRangeMover
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XRelativeTextContentInsert
+ * @see com.sun.star.text.XTextRangeCompare
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.text.XText
+ * @see ifc.text._XTextRangeMover
+ * @see ifc.text._XSimpleText
+ * @see ifc.text._XTextRange
+ * @see ifc.text._XRelativeTextContentInsert
+ * @see ifc.text._XTextRangeCompare
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.text._XText
+ */
+public class SwXBodyText extends TestCase {
+ XTextDocument xTextDoc = null;
+ SOfficeFactory SOF = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Obtains body text from text document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'TEXT'</code> for
+ * {@link ifc.text._XTextRangeCompare} : text</li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert},
+ * {@link ifc.text._XText} : creates 6x4 tables</li>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert} : paragraph creator</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+
+ // get the bodytext of textdocument here
+ log.println( " getting the bodytext of textdocument with getText()" );
+ oObj = xTextDoc.getText();
+
+ log.println( " creating a new environment for bodytext object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println(" adding Text as ObjRelation");
+ tEnv.addObjRelation("TEXT", oObj );
+
+ log.println( " adding InstDescriptor object" );
+ TableDsc tDsc = new TableDsc( 6, 4 );
+
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ log.println( " adding Paragraph" );
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation( "PARA", new InstCreator( xTextDoc, pDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXBodyText
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXBookmark.java b/qadevOOo/tests/java/mod/_sw/SwXBookmark.java
new file mode 100644
index 000000000..034a64b8e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXBookmark.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Bookmark</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::text::XTextContent</code></li>
+ * <li> <code>com::sun::star::text::TextContent</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.TextContent
+ * @see ifc.container._XNamed
+ * @see ifc.lang._XComponent
+ * @see ifc.text._XTextContent
+ * @see ifc.text._TextContent
+ */
+public class SwXBookmark extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After creating
+ * a bookmark, it is inserted to the text document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ XInterface oObj = null;
+ Object instance = null;
+ log.println( "creating a test environment" );
+ oObj = SOfficeFactory.createBookmark( xTextDoc );
+ SOfficeFactory.insertTextContent( xTextDoc, (XTextContent) oObj );
+ instance = SOF.createInstance(xTextDoc,"com.sun.star.text.Bookmark");
+ log.println( "creating a new environment for bodytext object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ util.dbg.printInterfaces((XInterface) instance);
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class SwXBookmark
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXBookmarks.java b/qadevOOo/tests/java/mod/_sw/SwXBookmarks.java
new file mode 100644
index 000000000..3c830212e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXBookmarks.java
@@ -0,0 +1,101 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.text.XBookmarksSupplier;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Bookmarks</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ */
+public class SwXBookmarks extends TestCase {
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. Method
+ * creates two bookmarks and inserts them to the text document. Then bookmarks
+ * are gotten from text document using <code>XBookmarksSupplier</code>
+ * interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+ oObj = SOfficeFactory.createBookmark( xTextDoc );
+ SOfficeFactory.insertTextContent( xTextDoc, (XTextContent) oObj );
+ oObj = SOfficeFactory.createBookmark( xTextDoc );
+ SOfficeFactory.insertTextContent( xTextDoc, (XTextContent) oObj );
+
+ XBookmarksSupplier oBSupp = UnoRuntime.queryInterface(XBookmarksSupplier.class, xTextDoc);
+ XNameAccess oBookNA = oBSupp.getBookmarks();
+ oObj = oBookNA;
+ log.println( "creating a new environment for Bookmarks object" );
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXBookmarks
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXCell.java b/qadevOOo/tests/java/mod/_sw/SwXCell.java
new file mode 100644
index 000000000..6773e5d59
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXCell.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is a cell of the table in a text document, and
+ * represented by service <code>com.sun.star.table.Cell</code><p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::CellProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.table.Cell
+ * @see com.sun.star.text.CellProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.text._CellProperties
+ * @see ifc.beans._XPropertySet
+ */
+public class SwXCell extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After creating
+ * a text table, it is inserted to the text document. Finally, first cell of
+ * this table is gotten.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CellProperties.TextSection'</code> for
+ * {@link ifc.text._CellProperties} : range of complete paragraphs
+ * within a text</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ XTextContent oTable = null;
+
+ SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a test environment" );
+ oTable = SOfficeFactory.createTextTable(xTextDoc, 3, 4);
+ try {
+ SOfficeFactory.insertTextContent( xTextDoc, oTable );
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Unable to insert TextContent...");
+ e.printStackTrace(log);
+ }
+ oObj = SOfficeFactory.getFirstTableCell( oTable );
+
+ log.println( " creating a new environment for bodytext object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ try {
+ XInterface oTS = (XInterface) oDocMSF.createInstance
+ ("com.sun.star.text.TextSection");
+ log.println(" adding TextSection object");
+ tEnv.addObjRelation("CellProperties.TextSection", oTS);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Could not get instance of TextSection");
+ e.printStackTrace(log);
+ }
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SwXCell
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXCellRange.java b/qadevOOo/tests/java/mod/_sw/SwXCellRange.java
new file mode 100644
index 000000000..7b60a1f6c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXCellRange.java
@@ -0,0 +1,137 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.table.CellRange</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::CellProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.table.CellRange
+ * @see com.sun.star.text.CellProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.text._CellProperties
+ * @see ifc.beans._XPropertySet
+ */
+public class SwXCellRange extends TestCase {
+ SOfficeFactory SOF;
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. At first
+ * method creates and initializes the table, then if text document has no
+ * tables, previously created table is inserted to text document. Finally,
+ * custom cell range is gotten from the table created.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'CellProperties.TextSection'</code> for
+ * {@link ifc.text._CellProperties} : range of complete paragraphs
+ * within a text</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XTextTable the_table = null;
+ XInterface oObj = null;
+ the_table = SOfficeFactory.createTextTable( xTextDoc );
+ the_table.initialize(5, 5);
+
+ if( SOfficeFactory.getTableCollection( xTextDoc ).getCount() == 0 ) {
+ SOfficeFactory.insertTextContent(xTextDoc, the_table );
+ }
+ XCellRange the_Range = UnoRuntime.queryInterface(XCellRange.class, the_table);
+ oObj = the_Range.getCellRangeByPosition(0, 0, 3, 4);
+
+ log.println("Creating instance...");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ log.println("ImplName: " + util.utils.getImplName(oObj));
+
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ try {
+ XInterface oTS = (XInterface)
+ oDocMSF.createInstance("com.sun.star.text.TextSection");
+ log.println(" adding TextSection object");
+ tEnv.addObjRelation("CellProperties.TextSection", oTS);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Could not get instance of TextSection");
+ e.printStackTrace(log);
+ }
+
+ Object[][] NewData = new Object[5][];
+ NewData[0] = new Double[]
+ {new Double(2.5),new Double(5),new Double(2.5),new Double(5)};
+ NewData[1] = new Double[]
+ {new Double(4),new Double(9),new Double(2.5),new Double(5)};
+ NewData[2] = new Double[]
+ {new Double(2.5),new Double(5),new Double(2.5),new Double(5)};
+ NewData[3] = new Double[]
+ {new Double(2.5),new Double(5),new Double(2.5),new Double(5)};
+ NewData[4] = new Double[]
+ {new Double(4),new Double(9),new Double(2.5),new Double(5)};
+ tEnv.addObjRelation("NewData",NewData);
+
+ // com::sun::star::chart::XChartDataArray
+ tEnv.addObjRelation("CRDESC",
+ "Column and RowDescriptions can't be changed for this Object");
+
+
+ return tEnv;
+ }
+} // finish class SwXCellRange
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXChapterNumbering.java b/qadevOOo/tests/java/mod/_sw/SwXChapterNumbering.java
new file mode 100644
index 000000000..b219a82a0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXChapterNumbering.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import com.sun.star.beans.PropertyValue;
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XChapterNumberingSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object, which is a collection of chapter numbering rules of document.
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::text::NumberingRules</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.text.NumberingRules
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.text._NumberingRules
+ */
+public class SwXChapterNumbering extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. Chapter
+ * numbering rules are gotten from text document using interface
+ * <code>XChapterNumberingSupplier</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+
+ XChapterNumberingSupplier oCNSupp = UnoRuntime.queryInterface(XChapterNumberingSupplier.class,xTextDoc);
+ oObj = oCNSupp.getChapterNumberingRules();
+
+ PropertyValue[] instance1 = null;
+ try {
+ instance1 = (PropertyValue[]) oCNSupp.getChapterNumberingRules().getByIndex(1);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ e.printStackTrace();
+ }
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("INSTANCE1", instance1);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SwXChapterNumbering
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXDocumentIndex.java b/qadevOOo/tests/java/mod/_sw/SwXDocumentIndex.java
new file mode 100644
index 000000000..94ff90072
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXDocumentIndex.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextRange;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.DocumentIndex</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::text::XDocumentIndex</code></li>
+ * <li> <code>com::sun::star::text::BaseIndex</code></li>
+ * <li> <code>com::sun::star::text::XTextContent</code></li>
+ * <li> <code>com::sun::star::text::DocumentIndex</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.XDocumentIndex
+ * @see com.sun.star.text.BaseIndex
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.DocumentIndex
+ * @see ifc.lang._XComponent
+ * @see ifc.text._XDocumentIndex
+ * @see ifc.text._BaseIndex
+ * @see ifc.text._XTextContent
+ * @see ifc.text._DocumentIndex
+ */
+public class SwXDocumentIndex extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.DocumentIndex</code>, then created document index
+ * is inserted to the text of the document as content.
+ *
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+ XTextContent xTC = null;
+ Object instance = null;
+
+ SOfficeFactory.getFactory(tParam.getMSF());
+ log.println( "creating a test environment" );
+ xTC = SOfficeFactory.createIndex(xTextDoc, "com.sun.star.text.DocumentIndex");
+ instance = SOfficeFactory.createIndex(xTextDoc, "com.sun.star.text.DocumentIndex");
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the Index into text document");
+ oText.insertTextContent(oCursor, xTC, false);
+
+ TestEnvironment tEnv = new TestEnvironment(xTC);
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ oCursor.gotoEnd(false);
+ tEnv.addObjRelation("RANGE", UnoRuntime.queryInterface(XTextRange.class, oCursor));
+
+ // relation for XDocumentIndex
+ tEnv.addObjRelation("TextDoc", xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXDocumentIndex
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXDocumentIndexMark.java b/qadevOOo/tests/java/mod/_sw/SwXDocumentIndexMark.java
new file mode 100644
index 000000000..1e18e920f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXDocumentIndexMark.java
@@ -0,0 +1,124 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XDocumentIndexMark;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.DocumentIndexMark</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::text::BaseIndexMark</code></li>
+ * <li> <code>com::sun::star::text::XTextContent</code></li>
+ * <li> <code>com::sun::star::text::TextContent</code></li>
+ * <li> <code>com::sun::star::text::DocumentIndexMark</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.BaseIndexMark
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.TextContent
+ * @see com.sun.star.text.DocumentIndexMark
+ * @see ifc.lang._XComponent
+ * @see ifc.text._BaseIndexMark
+ * @see ifc.text._XTextContent
+ * @see ifc.text._TextContent
+ * @see ifc.text._DocumentIndexMark
+ */
+public class SwXDocumentIndexMark extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.DocumentIndexMark</code>, attaches text to
+ * created DocumentIndexMark, and inserts DocumentIndexMark to the
+ * text document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+
+ Object oDIM = null;
+ Object instance = null;
+ try {
+ oDIM = oDocMSF.createInstance
+ ("com.sun.star.text.DocumentIndexMark");
+ instance = oDocMSF.createInstance
+ ("com.sun.star.text.DocumentIndexMark");
+ } catch ( com.sun.star.uno.Exception e ) {
+ log.println("Error:" + e);
+ }
+
+ XDocumentIndexMark xDIM = UnoRuntime.queryInterface(XDocumentIndexMark.class, oDIM);
+
+ oText.insertTextContent(oCursor, xDIM, false);
+
+ TestEnvironment tEnv = new TestEnvironment(xDIM);
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+ } // finish class SwXDocumentIndexMark
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXDocumentIndexes.java b/qadevOOo/tests/java/mod/_sw/SwXDocumentIndexes.java
new file mode 100644
index 000000000..06459e4d7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXDocumentIndexes.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XDocumentIndexesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for the object, which is represented by collection of document indexes.
+ * Object implements the following interfaces:
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ */
+public class SwXDocumentIndexes extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.ContentIndex</code>, then created content index is
+ * inserted to the text document, and finally all document indexes are gotten
+ * from a text document using <code>XDocumentIndexesSupplier</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+ SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a test environment" );
+ XTextContent xTC = SOfficeFactory.createIndex(xTextDoc,"com.sun.star.text.ContentIndex");
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the Index into text document");
+ oText.insertTextContent(oCursor, xTC, false);
+
+ XDocumentIndexesSupplier xDocInd = UnoRuntime.queryInterface(XDocumentIndexesSupplier.class,xTextDoc);
+
+ oObj = xDocInd.getDocumentIndexes();
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SwXDocumentIndexes
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXDrawPage.java b/qadevOOo/tests/java/mod/_sw/SwXDrawPage.java
new file mode 100644
index 000000000..d6d44644e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXDrawPage.java
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.ShapeDsc;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPageSupplier;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.DrawPage</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::drawing::GenericDrawPage</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeBinder</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeGrouper</code></li>
+ * <li> <code>com::sun::star::drawing::XShapes</code></li>
+ * <li> <code>com::sun::star::lang::XServiceInfo</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::drawing::XMasterPageTarget</code></li>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeCombiner</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.drawing.GenericDrawPage
+ * @see com.sun.star.drawing.XShapeBinder
+ * @see com.sun.star.drawing.XShapeGrouper
+ * @see com.sun.star.drawing.XShapes
+ * @see com.sun.star.lang.XServiceInfo
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.drawing.XMasterPageTarget
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.drawing.XShapeCombiner
+ * @see ifc.drawing._GenericDrawPage
+ * @see ifc.drawing._XShapeBinder
+ * @see ifc.drawing._XShapeGrouper
+ * @see ifc.drawing._XShapes
+ * @see ifc.lang._XServiceInfo
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.drawing._XMasterPageTarget
+ * @see ifc.container._XNamed
+ * @see ifc.drawing._XShapeCombiner
+ */
+public class SwXDrawPage extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After
+ * obtaining DrawPage object several shapes are inserted to it.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'Shape'</code> for
+ * {@link ifc.drawing._XShapes} : shape creator. </li>
+ * <li> <code>'DrawPage'</code> for
+ * {@link ifc.drawing._XShapeBinder},
+ * {@link ifc.drawing._XShapeCombiner},
+ * {@link ifc.drawing._XShapeGrouper} : DrawPage component we are
+ * testing.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ XDrawPageSupplier XDPSupp;
+ XDrawPage xDP = null;
+ XShapes oShapes = null;
+
+ log.println( "creating a test environment" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ XDPSupp = UnoRuntime.queryInterface
+ (XDrawPageSupplier.class, xTextDoc);
+ xDP = XDPSupp.getDrawPage();
+ oObj = xDP;
+
+ log.println( "inserting some Shapes" );
+ oShapes = UnoRuntime.queryInterface(XShapes.class, oObj);
+ oShapes.add(SOF.createShape(xTextDoc,2000,1500,1000,1000,"Line"));
+ oShapes.add(SOF.createShape(xTextDoc,3000,4500,15000,1000,"Ellipse"));
+ oShapes.add(SOF.createShape(xTextDoc,5000,3500,7500,5000,"Rectangle"));
+
+ log.println( "creating a new environment for bodytext object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ ShapeDsc sDsc = new ShapeDsc(15000,13500,7500,10000,"Rectangle");
+ log.println( "adding Shape as mod relation to environment" );
+ tEnv.addObjRelation("Shape", new InstCreator( xTextDoc, sDsc));
+ tEnv.addObjRelation("DrawPage", oObj);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXDrawPage
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXEndnoteProperties.java b/qadevOOo/tests/java/mod/_sw/SwXEndnoteProperties.java
new file mode 100644
index 000000000..c2dbba2d7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXEndnoteProperties.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.dbg;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XEndnotesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.FootnoteSettings</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::FootnoteSettings</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.FootnoteSettings
+ * @see ifc.text._FootnoteSettings
+ */
+public class SwXEndnoteProperties extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.Endnote</code>. Then created endnote is inserted
+ * to the text document, and finally endnote settings are gotten from text
+ * document using <code>XEndnotesSupplier</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ XEndnotesSupplier oInterface = null;
+ XInterface oObj = null;
+ XInterface oEndnote;
+
+ log.println( "Creating a test environment" );
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating an endnote");
+ oEndnote = UnoRuntime.queryInterface(XInterface.class,
+ msf.createInstance("com.sun.star.text.Endnote"));
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ XTextContent xTC = UnoRuntime.queryInterface(XTextContent.class, oEndnote);
+ oText.insertTextContent(oCursor, xTC, false);
+
+ oInterface = UnoRuntime.queryInterface(XEndnotesSupplier.class, xTextDoc);
+ oObj = oInterface.getEndnoteSettings();
+ dbg.printPropertiesNames((XPropertySet) oObj);
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFieldEnumeration.java b/qadevOOo/tests/java/mod/_sw/SwXFieldEnumeration.java
new file mode 100644
index 000000000..dcfbf1c2f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFieldEnumeration.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XDependentTextField;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFieldsSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XEnumeration</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XEnumeration
+ * @see ifc.container._XEnumeration
+ */
+public class SwXFieldEnumeration extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. FieldMaster
+ * object is created and attached to Bibliography database. After setting
+ * properties of created FieldMaster object, it is attached to the TextField
+ * object. Then TextField is inserted as TextContent to the text document.
+ * At the end, TextFields of text document are obtained and
+ * enumeration of these fields is created.<br>
+ * Creates instances of the services:
+ * <code>com.sun.star.text.FieldMaster.Database</code>,
+ * <code>com.sun.star.text.TextField.Database</code>.<br>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ENUM'</code> for
+ * {@link ifc.container._XEnumeration} : text fields</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ Object FieldMaster = null;
+ XPropertySet PFieldMaster = null;
+ XDependentTextField xTF = null;
+ XEnumerationAccess xFEA = null;
+ XText the_Text;
+ XTextCursor the_Cursor;
+ XTextContent the_Field;
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface( XMultiServiceFactory.class, xTextDoc );
+
+ try {
+ FieldMaster = oDocMSF.createInstance
+ ( "com.sun.star.text.FieldMaster.Database" );
+ PFieldMaster = UnoRuntime.queryInterface
+ (XPropertySet.class,FieldMaster);
+ oObj = (XInterface)
+ oDocMSF.createInstance("com.sun.star.text.TextField.Database");
+ xTF = UnoRuntime.queryInterface(XDependentTextField.class,oObj);
+ } catch ( com.sun.star.uno.Exception e ) {
+ e.printStackTrace(log);
+ }
+
+ try {
+ PFieldMaster.setPropertyValue("DataBaseName","Bibliography");
+ PFieldMaster.setPropertyValue("DataTableName","biblio");
+ PFieldMaster.setPropertyValue("DataColumnName","Address");
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Error: can't set PropertyValue to a FieldMaster");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Error: can't set PropertyValue to a FieldMaster");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+ log.println("Error: can't set PropertyValue to a FieldMaster");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.beans.PropertyVetoException e ) {
+ log.println("Error: can't set PropertyValue to a FieldMaster");
+ e.printStackTrace(log);
+ }
+
+ the_Text = xTextDoc.getText();
+ the_Cursor = the_Text.createTextCursor();
+ the_Field = UnoRuntime.queryInterface(XTextContent.class, oObj);
+
+ xTF.attachTextFieldMaster(PFieldMaster);
+ the_Text.insertTextContent(the_Cursor,the_Field,false);
+
+ // create testobject here
+ XTextFieldsSupplier oTFS = UnoRuntime.queryInterface( XTextFieldsSupplier.class, xTextDoc );
+ xFEA = oTFS.getTextFields();
+ oObj = oTFS.getTextFields().createEnumeration();
+
+ log.println( "creating a new environment for FieldEnumeration object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("ENUM", xFEA);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXFieldEnumeration
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFieldMaster.java b/qadevOOo/tests/java/mod/_sw/SwXFieldMaster.java
new file mode 100644
index 000000000..ce1009e05
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFieldMaster.java
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.FieldMaster.Database</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::TextFieldMaster</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.TextFieldMaster
+ * @see com.sun.star.text.FieldMaster.Database
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.text._TextFieldMaster
+ * @see ifc.beans._XPropertySet
+ */
+public class SwXFieldMaster extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.FieldMaster.Database</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+ try {
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface( XMultiServiceFactory.class, xTextDoc );
+ oObj = (XInterface)
+ oDocMSF.createInstance( "com.sun.star.text.FieldMaster.Database" );
+ } catch ( com.sun.star.uno.Exception e ) {
+ log.println("Couldn't create instance");
+ e.printStackTrace(log);
+ }
+
+ log.println( "creating a new environment for FieldMaster object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXFieldMaster
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFootnote.java b/qadevOOo/tests/java/mod/_sw/SwXFootnote.java
new file mode 100644
index 000000000..745e3d69c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFootnote.java
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FrameDsc;
+import util.InstCreator;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnote;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Footnote</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XFootnote</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::text::Footnote</code></li>
+ * <li> <code>com::sun::star::text::XTextContent</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XFootnote
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.Footnote
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XText
+ * @see ifc.text._XFootnote
+ * @see ifc.lang._XComponent
+ * @see ifc.text._XSimpleText
+ * @see ifc.text._Footnote
+ * @see ifc.text._XTextContent
+ * @see ifc.text._XTextRange
+ * @see ifc.text._XText
+ */
+public class SwXFootnote extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.Footnote</code>. Then inserts created footnote
+ * to a text of document as content.
+ * Object relations created :
+ * <ul>
+ * <li><code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XText} </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XFootnote oFootnote;
+
+ log.println( "Creating a test environment" );
+ // get a soffice factory object
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating a footnote");
+ Object instance = null;
+ oFootnote = UnoRuntime.queryInterface(XFootnote.class,
+ msf.createInstance("com.sun.star.text.Footnote"));
+ instance = msf.createInstance("com.sun.star.text.Footnote");
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ oText.insertTextContent(oCursor, oFootnote, false);
+
+ TestEnvironment tEnv = new TestEnvironment(oFootnote);
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ log.println( "adding InstDescriptor object" );
+ FrameDsc tDsc = new FrameDsc( 3000, 6000 );
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ return tEnv;
+ }
+
+} // finish class SwXFootnote
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFootnoteProperties.java b/qadevOOo/tests/java/mod/_sw/SwXFootnoteProperties.java
new file mode 100644
index 000000000..c86bc30c7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFootnoteProperties.java
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnote;
+import com.sun.star.text.XFootnotesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for the object, which is represented as set of footnote properties
+ * (instance of <code>com.sun.star.text.FootnoteSettings</code> service).
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::FootnoteSettings</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.FootnoteSettings
+ * @see ifc.text._FootnoteSettings
+ */
+public class SwXFootnoteProperties extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.Footnote</code>. Then inserts created Footnote
+ * to the text document, and finally gets footnote settings from text
+ * document through <code>XFootnotesSupplier</code> interface.<br>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ XFootnotesSupplier oInterface = null;
+ XInterface oObj = null;
+ XFootnote oFootnote;
+
+ log.println( "Creating a test environment" );
+ // get a soffice factory object
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating a footnote");
+
+ oFootnote = UnoRuntime.queryInterface(XFootnote.class,
+ msf.createInstance("com.sun.star.text.Footnote"));
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ oText.insertTextContent(oCursor, oFootnote, false);
+
+ oInterface = UnoRuntime.queryInterface(XFootnotesSupplier.class, xTextDoc);
+ oObj = oInterface.getFootnoteSettings();
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFootnoteText.java b/qadevOOo/tests/java/mod/_sw/SwXFootnoteText.java
new file mode 100644
index 000000000..374e89c66
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFootnoteText.java
@@ -0,0 +1,151 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+import util.TextSectionDsc;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnote;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextRangeMover</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::text::XRelativeTextContentInsert</code></li>
+ * <li> <code>com::sun::star::text::XTextRangeCompare</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextRangeMover
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XRelativeTextContentInsert
+ * @see com.sun.star.text.XTextRangeCompare
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.text.XText
+ * @see ifc.text._XTextRangeMover
+ * @see ifc.text._XSimpleText
+ * @see ifc.text._XTextRange
+ * @see ifc.text._XRelativeTextContentInsert
+ * @see ifc.text._XTextRangeCompare
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.text._XText
+ */
+public class SwXFootnoteText extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.Footnote</code>. Then inserts created Footnote
+ * to the text, and finally sets a string to the footnote. Then the text
+ * gotten from the footnote is returned as tested component.<br>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'TEXT'</code> for
+ * {@link ifc.text._XTextRangeCompare} : footnote text</li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert},
+ * {@link ifc.text._XText} : text section creator</li>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert} : paragraph creator</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+ XFootnote oFootnote;
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating a footnote");
+
+ oFootnote = UnoRuntime.queryInterface(XFootnote.class,
+ msf.createInstance("com.sun.star.text.Footnote"));
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ oText.insertTextContent(oCursor, oFootnote, false);
+
+ XSimpleText oFootText = UnoRuntime.queryInterface(XSimpleText.class, oFootnote);
+ oFootText.setString("SwXFootnoteText");
+
+ oObj = oFootText.getText();
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXT", oObj);
+
+ TextSectionDsc tDsc = new TextSectionDsc();
+ log.println( " adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ log.println( " adding Paragraph" );
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation( "PARA", new InstCreator( xTextDoc, pDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXFootnoteText
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFootnotes.java b/qadevOOo/tests/java/mod/_sw/SwXFootnotes.java
new file mode 100644
index 000000000..d62e20971
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFootnotes.java
@@ -0,0 +1,110 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnote;
+import com.sun.star.text.XFootnotesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Footnotes</code>.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ */
+public class SwXFootnotes extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.Footnote</code>. Then inserts created Footnote
+ * to the text, and finally gets all footnotes of text document
+ * through <code>XFootnotesSupplier</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ XFootnotesSupplier oInterface = null;
+ XInterface oObj = null;
+
+ log.println( "Creating a test environment" );
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ log.println("creating a footnote");
+ XFootnote oFootnote;
+
+ oFootnote = UnoRuntime.queryInterface(XFootnote.class,
+ msf.createInstance("com.sun.star.text.Footnote"));
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting the footnote into text document");
+ oText.insertTextContent(oCursor, oFootnote, false);
+ oInterface = UnoRuntime.queryInterface(XFootnotesSupplier.class, xTextDoc);
+ oObj = oInterface.getFootnotes();
+
+ log.println( "creating a new environment for Footnotes object" );
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ }
+
+} // finish class SwXFootnote
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXFrames.java b/qadevOOo/tests/java/mod/_sw/SwXFrames.java
new file mode 100644
index 000000000..5a85e0bfe
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXFrames.java
@@ -0,0 +1,116 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.text.XTextFramesSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XContainer</code></li>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XContainer
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see ifc.container._XContainer
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ */
+public class SwXFrames extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.TextFrame</code>. Then inserts created text frame
+ * to the text, and finally gets all frames of text document using
+ * <code>XTextFramesSupplier</code> interface.<br>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+ XTextFrame oFrame1 = null;
+ XText oText = null;
+ XTextCursor oCursor = null;
+ XMultiServiceFactory oDocMSF = null;
+ XTextFramesSupplier oInterface = null;
+
+ log.println( "creating a test environment" );
+ oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ Object oInt = oDocMSF.createInstance("com.sun.star.text.TextFrame");
+ oFrame1 = UnoRuntime.queryInterface( XTextFrame.class, oInt );
+
+ oText = xTextDoc.getText();
+ oCursor = oText.createTextCursor();
+
+ oText.insertTextContent(oCursor, oFrame1, false);
+
+ oInterface = UnoRuntime.queryInterface( XTextFramesSupplier.class, xTextDoc );
+
+ oObj = oInterface.getTextFrames();
+
+ log.println( "creating a new environment for Frame object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXFrames
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXHeadFootText.java b/qadevOOo/tests/java/mod/_sw/SwXHeadFootText.java
new file mode 100644
index 000000000..7ac8e02e6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXHeadFootText.java
@@ -0,0 +1,158 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+import util.TableDsc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextRangeMover</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::text::XRelativeTextContentInsert</code></li>
+ * <li> <code>com::sun::star::text::XTextRangeCompare</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextRangeMover
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XRelativeTextContentInsert
+ * @see com.sun.star.text.XTextRangeCompare
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.text.XText
+ * @see ifc.text._XTextRangeMover
+ * @see ifc.text._XSimpleText
+ * @see ifc.text._XTextRange
+ * @see ifc.text._XRelativeTextContentInsert
+ * @see ifc.text._XTextRangeCompare
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.text._XText
+ */
+public class SwXHeadFootText extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. At first
+ * style families are obtained from text document, then style 'Standard' has
+ * gotten from style family 'PageStyles'. At the end, document header and
+ * footer are switched on and document text is obtained.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert},
+ * {@link ifc.text._XText} : creates tables 6x4</li>
+ * <li> <code>'TEXTDOC'</code> for
+ * {@link ifc.text._XTextRangeCompare} : text document</li>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert} : paragraph creator</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XPropertySet PropSet;
+ XNameAccess PageStyles = null;
+ XStyle StdStyle = null;
+
+ log.println( "creating a test environment" );
+ XStyleFamiliesSupplier StyleFam = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xTextDoc);
+ XNameAccess StyleFamNames = StyleFam.getStyleFamilies();
+
+ // obtains style 'Standard' from style family 'PageStyles'
+ PageStyles = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),StyleFamNames.getByName("PageStyles"));
+ StdStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),PageStyles.getByName("Standard"));
+
+ PropSet = UnoRuntime.queryInterface( XPropertySet.class, StdStyle);
+
+ // changing/getting some properties
+ log.println( "Switching on header" );
+ PropSet.setPropertyValue("HeaderIsOn", Boolean.TRUE);
+ log.println( "Switching on footer" );
+ PropSet.setPropertyValue("FooterIsOn", Boolean.TRUE);
+ log.println( "Get header text" );
+ oObj = UnoRuntime.queryInterface(
+ XText.class, PropSet.getPropertyValue("HeaderText"));
+
+ log.println( "creating a new environment for bodytext object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( " adding Paragraph" );
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation( "PARA", new InstCreator( xTextDoc, pDsc ) );
+
+ log.println( "adding InstDescriptor object" );
+ TableDsc tDsc = new TableDsc( 6, 4 );
+
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ tEnv.addObjRelation( "TEXT", oObj);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXHeadFootText
diff --git a/qadevOOo/tests/java/mod/_sw/SwXLineNumberingProperties.java b/qadevOOo/tests/java/mod/_sw/SwXLineNumberingProperties.java
new file mode 100644
index 000000000..815493062
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXLineNumberingProperties.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.dbg;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XLineNumberingProperties;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.LineNumberingProperties</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::LineNumberingProperties</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.LineNumberingProperties
+ * @see ifc.text._LineNumberingProperties
+ */
+public class SwXLineNumberingProperties extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After inserting
+ * string and control character to the text document, line numbering
+ * properties are gotten using <code>XLineNumberingProperties</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+
+ // insert some Text
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ try {
+ for (int i=0; i<5; i++) {
+ oText.insertString(oCursor, "The quick brown fox jumps "+
+ "over the lazy Dog", false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ }
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ e.printStackTrace(log);
+ log.println("Exception occurred: " + e);
+ }
+
+ XLineNumberingProperties oLNP = UnoRuntime.queryInterface(XLineNumberingProperties.class,xTextDoc);
+ XPropertySet lineNumProps = oLNP.getLineNumberingProperties();
+ dbg.printPropertiesNames(lineNumProps);
+ TestEnvironment tEnv = new TestEnvironment(lineNumProps);
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SwXLineNumberingProperties
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXMailMerge.java b/qadevOOo/tests/java/mod/_sw/SwXMailMerge.java
new file mode 100644
index 000000000..f3bb2b2f2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXMailMerge.java
@@ -0,0 +1,355 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import com.sun.star.beans.NamedValue;
+
+import util.DBTools;
+import util.utils;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdb.CommandType;
+import com.sun.star.sdbc.*;
+import com.sun.star.sdbcx.XRowLocate;
+import com.sun.star.task.XJob;
+import com.sun.star.text.MailMergeType;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+/**
+* Here <code>com.sun.star.text.MailMerge</code> service is tested.<p>
+* @see com.sun.star.text.MailMerge
+* @see com.sun.star.task.XJob
+* @see com.sun.star.text.XMailMergeBroadcaster
+*/
+public class SwXMailMerge extends TestCase {
+
+ @Override
+ public void initialize( TestParameters Param, PrintWriter log ) {
+ if (! Param.containsKey("uniqueSuffix")){
+ Param.put("uniqueSuffix", Integer.valueOf(0));
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. <p>
+ * Creates <code>MailMerge</code> service * Object relations created :
+ * <ul>
+ * <li> <code>'executeArgs'</code> for
+ * {@link ifc.text._XMailMergeBroadcaster} : NamedValue[]</li>
+ * <li> <code>'Job'</code> for
+ * {@link ifc.text._XMailMergeBroadcaster} : XJob</li>
+ * <li> <code>'XJobArgs'</code> for
+ * {@link ifc.task._XJob} : Object[]</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XInterface oRowSet = null;
+ XJob Job = null;
+
+ log.println(" instantiate MailMerge service");
+ oObj = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.text.MailMerge");
+
+ // <set some variables>
+ String cTestDoc = utils.getFullTestURL("MailMerge.sxw");
+ //cMailMerge_DocumentURL = cTestDoc
+ String cOutputURL = utils.getOfficeTemp( Param.getMSF());
+ String cDataSourceName = "Bibliography";
+ String cDataCommand = "biblio";
+ Object[] myBookMarks = new Object[2];
+ // </set some variables>
+
+ // <create XResultSet>
+ log.println("create a XResultSet");
+ oRowSet = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.sdb.RowSet");
+ XPropertySet oRowSetProps = UnoRuntime.queryInterface(XPropertySet.class, oRowSet);
+ XRowSet xRowSet = UnoRuntime.queryInterface(XRowSet.class, oRowSet);
+ oRowSetProps.setPropertyValue("DataSourceName",cDataSourceName);
+ oRowSetProps.setPropertyValue("Command",cDataCommand);
+ oRowSetProps.setPropertyValue("CommandType", Integer.valueOf(CommandType.TABLE));
+ xRowSet.execute();
+
+ XResultSet oResultSet = UnoRuntime.queryInterface(XResultSet.class, oRowSet);
+
+
+
+
+ // <create Bookmarks>
+ log.println("create bookmarks");
+ XRowLocate oRowLocate = UnoRuntime.queryInterface(
+ XRowLocate.class, oResultSet);
+ oResultSet.first();
+ myBookMarks[0] = oRowLocate.getBookmark();
+ oResultSet.next();
+ myBookMarks[1] = oRowLocate.getBookmark();
+ // </create Bookmarks>
+
+ // <fill object with values>
+
+ log.println("fill MailMerge with default connection");
+
+ XPropertySet oObjProps = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ oObjProps.setPropertyValue("ActiveConnection", getLocalXConnection(Param));
+ oObjProps.setPropertyValue("DataSourceName", cDataSourceName);
+ oObjProps.setPropertyValue("Command", cDataCommand);
+ oObjProps.setPropertyValue("CommandType", Integer.valueOf(CommandType.TABLE));
+ oObjProps.setPropertyValue("OutputType", Short.valueOf(MailMergeType.FILE));
+ oObjProps.setPropertyValue("DocumentURL", cTestDoc);
+ oObjProps.setPropertyValue("OutputURL", cOutputURL);
+ oObjProps.setPropertyValue("FileNamePrefix", "Author");
+ oObjProps.setPropertyValue("FileNameFromColumn", Boolean.FALSE);
+ oObjProps.setPropertyValue("Selection", new Object[0]);
+
+ // </fill object with values>
+
+
+ // <create object relations>
+ Object[] vXJobArgs = new Object[4];
+ NamedValue[] vXJobArg0 = new NamedValue[8];
+ NamedValue[] vXJobArg1 = new NamedValue[7];
+ NamedValue[] vXJobArg2 = new NamedValue[10];
+ NamedValue[] vXJobArg3 = new NamedValue[0];
+
+ // first Arguments
+ vXJobArg0[0] = new NamedValue("DataSourceName", cDataSourceName);
+ vXJobArg0[1] = new NamedValue("Command", cDataCommand);
+ vXJobArg0[2] = new NamedValue("CommandType",Integer.valueOf(CommandType.TABLE));
+ vXJobArg0[3] = new NamedValue("OutputType",Short.valueOf(MailMergeType.FILE));
+ vXJobArg0[4] = new NamedValue("DocumentURL", cTestDoc);
+ vXJobArg0[5] = new NamedValue("OutputURL", cOutputURL);
+ vXJobArg0[6] = new NamedValue("FileNamePrefix", "Identifier");
+ vXJobArg0[7] = new NamedValue("FileNameFromColumn", Boolean.TRUE);
+
+ //second Arguments
+ vXJobArg1[0] = new NamedValue("DataSourceName", cDataSourceName);
+ vXJobArg1[1] = new NamedValue("Command", cDataCommand);
+ vXJobArg1[2] = new NamedValue("CommandType",Integer.valueOf(CommandType.TABLE));
+ vXJobArg1[3] = new NamedValue("OutputType",
+ Short.valueOf(MailMergeType.PRINTER));
+ vXJobArg1[4] = new NamedValue("DocumentURL", cTestDoc);
+ vXJobArg1[5] = new NamedValue("FileNamePrefix", "Author");
+ vXJobArg1[6] = new NamedValue("FileNameFromColumn", Boolean.TRUE);
+
+ // third Arguments
+ vXJobArg2[0] = new NamedValue("ActiveConnection", getLocalXConnection(Param));
+ vXJobArg2[1] = new NamedValue("DataSourceName", cDataSourceName);
+ vXJobArg2[2] = new NamedValue("Command", cDataCommand);
+ vXJobArg2[3] = new NamedValue("CommandType",Integer.valueOf(CommandType.TABLE));
+ vXJobArg2[4] = new NamedValue("OutputType",
+ Short.valueOf(MailMergeType.FILE));
+ vXJobArg2[5] = new NamedValue("ResultSet", oResultSet);
+ vXJobArg2[6] = new NamedValue("OutputURL", cOutputURL);
+ vXJobArg2[7] = new NamedValue("FileNamePrefix", "Identifier");
+ vXJobArg2[8] = new NamedValue("FileNameFromColumn", Boolean.TRUE);
+ vXJobArg2[9] = new NamedValue("Selection", myBookMarks);
+
+ vXJobArgs[0] = vXJobArg0;
+ vXJobArgs[1] = vXJobArg1;
+ vXJobArgs[2] = vXJobArg2;
+ vXJobArgs[3] = vXJobArg3;
+
+
+ Job = UnoRuntime.queryInterface(XJob.class, oObj);
+ try{
+ Job.execute(vXJobArg2);
+ } catch ( IllegalArgumentException e){
+ System.out.println(e.toString());
+ } catch ( Exception e){
+ System.out.println(e.toString());
+ }
+
+
+ // <create XResultSet>
+ log.println("create XResultSet");
+
+ oRowSet = (XInterface) Param.getMSF().createInstance
+ ("com.sun.star.sdb.RowSet");
+ oRowSetProps = UnoRuntime.queryInterface(XPropertySet.class, oRowSet);
+
+ xRowSet = UnoRuntime.queryInterface(XRowSet.class, oRowSet);
+
+ oRowSetProps.setPropertyValue("DataSourceName",cDataSourceName);
+ oRowSetProps.setPropertyValue("Command",cDataCommand);
+ oRowSetProps.setPropertyValue("CommandType", Integer.valueOf(CommandType.TABLE));
+ xRowSet.execute();
+
+ oResultSet = UnoRuntime.queryInterface(XResultSet.class, oRowSet);
+
+ XResultSet oMMXResultSet = null;
+ oMMXResultSet = UnoRuntime.queryInterface(XResultSet.class,
+ Param.getMSF().createInstance("com.sun.star.sdb.RowSet"));
+ // </create object relations>
+
+ TestEnvironment tEnv = new TestEnvironment(oObj) ;
+
+ // <adding object relations>
+
+ // com.sun.star.sdb.DataAccessDescriptor
+ tEnv.addObjRelation("DataAccessDescriptor.XResultSet", oResultSet);
+ tEnv.addObjRelation("DataAccessDescriptor.XConnection", getRemoteXConnection(Param));
+
+ // com.sun.star.text.MailMerge
+ tEnv.addObjRelation("MailMerge.XConnection", getRemoteXConnection(Param));
+ tEnv.addObjRelation("MailMerge.XResultSet", oMMXResultSet);
+
+ // com.sun.star.text.XMailMergeBroadcaster
+ tEnv.addObjRelation( "executeArgs", vXJobArg0);
+ tEnv.addObjRelation( "Job", Job);
+
+ // com.sun.star.task.XJob
+ tEnv.addObjRelation("XJobArgs", vXJobArgs);
+
+ // </adding object relations>
+
+ return tEnv ;
+ }
+
+ private XConnection getRemoteXConnection(TestParameters Param){
+
+ log.println("create remote connection");
+
+ String databaseName = null ;
+ XMultiServiceFactory xMSF = null ;
+ int uniqueSuffix = Param.getInt("uniqueSuffix");
+
+ try {
+ xMSF = Param.getMSF();
+ xMSF.createInstance( "com.sun.star.sdb.DatabaseContext" );
+
+ // retrieving temp directory for database
+ String tmpDatabaseUrl = utils.getOfficeTempDir(Param.getMSF());
+
+ databaseName = "NewDatabaseSource" + uniqueSuffix ;
+
+ String tmpDatabaseFile = tmpDatabaseUrl + databaseName + ".odb";
+ System.out.println("try to delete '"+tmpDatabaseFile+"'");
+ utils.deleteFile(Param.getMSF(), tmpDatabaseFile);
+
+
+ tmpDatabaseUrl = "sdbc:dbase:file:///" + tmpDatabaseUrl ;
+
+ // Creating new DBase data source in the TEMP directory
+ XInterface newSource = (XInterface) xMSF.createInstance
+ ("com.sun.star.sdb.DataSource") ;
+
+ XPropertySet xSrcProp = UnoRuntime.queryInterface(XPropertySet.class, newSource);
+
+ xSrcProp.setPropertyValue("URL", tmpDatabaseUrl) ;
+
+ DBTools dbt = new DBTools( Param.getMSF() );
+ // registering source in DatabaseContext
+ log.println("register database '"+tmpDatabaseUrl+"' as '"+databaseName+"'" );
+ dbt.reRegisterDB(databaseName, newSource) ;
+
+ uniqueSuffix++;
+ Param.put("uniqueSuffix", Integer.valueOf(uniqueSuffix));
+
+ return dbt.connectToSource(newSource);
+ }
+ catch( Exception e ) {
+ uniqueSuffix++;
+ Param.put("uniqueSuffix", Integer.valueOf(uniqueSuffix));
+ log.println("could not register new database" );
+ e.printStackTrace();
+ throw new StatusException("could not register new database", e) ;
+ }
+ }
+
+ private XConnection getLocalXConnection(TestParameters Param){
+
+ log.println("create local connection");
+
+ XInterface oDataCont = null;
+ try {
+ oDataCont = (XInterface)Param.getMSF().createInstance
+ ("com.sun.star.sdb.DatabaseContext");
+ } catch(Exception e) {
+ throw new StatusException("Couldn't create instance of 'com.sun.star.sdb.DatabaseContext'", e);
+ }
+ XNameAccess xNADataCont = UnoRuntime.queryInterface(XNameAccess.class, oDataCont);
+
+ String[] dataNames = xNADataCont.getElementNames();
+
+ String dataName="";
+ for (int i = 0; i < dataNames.length; i++){
+ if (dataNames[i].startsWith("Biblio")) dataName=dataNames[i];
+ }
+
+ try{
+
+ Object oDataBase = xNADataCont.getByName(dataName);
+ XDataSource xDataSource = UnoRuntime.queryInterface(XDataSource.class, oDataBase);
+
+ return xDataSource.getConnection("","");
+
+ } catch ( NoSuchElementException e){
+ throw new StatusException("Couldn't get registered data base", e);
+ } catch ( WrappedTargetException e){
+ throw new StatusException("Couldn't get registered data base", e);
+ } catch ( SQLException e){
+ throw new StatusException("Couldn't get XConnection from registered data base", e);
+ }
+
+ }
+
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("closing connections...");
+ XMultiServiceFactory xMsf = Param.getMSF();
+ DBTools dbt = new DBTools( xMsf );
+
+ if (Param.containsKey("uniqueSuffix")){
+ int uniqueSuffix = Param.getInt("uniqueSuffix");
+ uniqueSuffix--;
+ String databaseName = "";
+ while (uniqueSuffix >= 0){
+
+ databaseName = "NewDatabaseSource" + uniqueSuffix ;
+
+ log.println("revoke '"+databaseName+"'");
+
+ try{
+ dbt.revokeDB(databaseName);
+ } catch (com.sun.star.uno.Exception e){
+ }
+
+ uniqueSuffix--;
+ }
+ }
+
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXModule.java b/qadevOOo/tests/java/mod/_sw/SwXModule.java
new file mode 100644
index 000000000..6d074c86f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXModule.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.GlobalSettings</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::view::XPrintSettingsSupplier</code></li>
+ * <li> <code>com::sun::star::view::XViewSettingsSupplier</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.view.XPrintSettingsSupplier
+ * @see com.sun.star.view.XViewSettingsSupplier
+ * @see ifc.view._XPrintSettingsSupplier
+ * @see ifc.view._XViewSettingsSupplier
+ */
+public class SwXModule extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.GlobalSettings</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ Object oInterface = Param.getMSF().createInstance(
+ "com.sun.star.text.GlobalSettings" );
+ XInterface oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXModule
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXNumberingRules.java b/qadevOOo/tests/java/mod/_sw/SwXNumberingRules.java
new file mode 100644
index 000000000..cfc957228
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXNumberingRules.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.NumberingRules</code>.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::text::NumberingRules</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.text.NumberingRules
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.text._NumberingRules
+ */
+public class SwXNumberingRules extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * At first some strings are inserted to a text document, then style families
+ * are gotten from text document using <code>XStyleFamiliesSupplier</code>.
+ * Then style family 'NumberingRules' is retrieved, then style indexed '0'
+ * is obtained. At the end property value 'NumberingRules' is obtained from
+ * given style.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+ XInterface oObj = null;
+ XIndexAccess NumStyleI = null;
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ try {
+ for (int i=0; i<5; i++) {
+ oText.insertString(oCursor, "The quick brown fox jumps "+
+ "over the lazy Dog", false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ }
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ }
+
+ XStyleFamiliesSupplier oStyleFamiliesSupplier = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xTextDoc);
+
+ try {
+ XNameAccess oStyleFamilies = oStyleFamiliesSupplier.getStyleFamilies();
+ XNameContainer NumStyles = (XNameContainer) AnyConverter.toObject(
+ new Type(XNameContainer.class),
+ oStyleFamilies.getByName("NumberingStyles"));
+ NumStyleI = UnoRuntime.queryInterface(XIndexAccess.class,NumStyles);
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.container.NoSuchElementException e ) {
+ log.println("Error, no such style family...");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ }
+
+ Object instance1 = null;
+
+ try {
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),NumStyleI.getByIndex(0));
+ XPropertySet props = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),props.getPropertyValue("NumberingRules"));
+ XIndexAccess nRules = UnoRuntime.queryInterface(XIndexAccess.class, props.getPropertyValue("NumberingRules"));
+ instance1 = nRules.getByIndex(0);
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IndexOutOfBoundsException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Error, exception occurred...");
+ e.printStackTrace(log);
+ }
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("INSTANCE1", instance1);
+ return tEnv;
+ }
+
+} // finish class SwXNumberingRules
diff --git a/qadevOOo/tests/java/mod/_sw/SwXParagraph.java b/qadevOOo/tests/java/mod/_sw/SwXParagraph.java
new file mode 100644
index 000000000..c32d63b28
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXParagraph.java
@@ -0,0 +1,225 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Paragraph</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextContent</code></li>
+ * <li> <code>com::sun::star::text::TextContent</code></li>
+ * <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.TextContent
+ * @see com.sun.star.style.CharacterPropertiesComplex
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.style.CharacterPropertiesAsian
+ * @see com.sun.star.text.Paragraph
+ * @see ifc.text._XTextContent
+ * @see ifc.text._TextContent
+ * @see ifc.style._CharacterPropertiesComplex
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.beans._XPropertyState
+ * @see ifc.style._CharacterProperties
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.lang._XComponent
+ * @see ifc.style._CharacterPropertiesAsian
+ */
+public class SwXParagraph extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. To obtain
+ * test component, at first several paragraphs are inserted to a major text
+ * of text document. Then enumeration of text paragraphs is created, and
+ * some paragraph is gotten using <code>XEnumeration</code> interface.<p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.style._CharacterProperties} : paragraph </li>
+ * <li> <code>'PORTION'</code> for
+ * {@link ifc.style._CharacterProperties} : some text portion of
+ * paragraph. To obtain text portion, enumeration of paragraph text portions is
+ * created, and some text portion is gotten using <code>XEnumeration</code>
+ * interface. </li>
+ * <li> <code>'NRULES'</code> for
+ * {@link ifc.style._ParagraphProperties} : value of property
+ * 'NumberingRules' of paragraph. Method changes property
+ * 'NumberingStyleName' of previously obtained paragraph, and gets value of
+ * a property 'NumberingRules'. </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ if (xTextDoc != null) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+
+ XInterface oObj = null;
+ XPropertySet paraP = null;
+ XPropertySet portP = null;
+ Object nRules = null;
+ XInterface port = null;
+ XInterface para = null;
+
+ log.println( "creating a test environment" );
+
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println( "inserting some lines" );
+ for (int i=0; i<5; i++){
+ oText.insertString( oCursor,"Paragraph Number: " + i, false);
+ oText.insertString( oCursor,
+ " The quick brown fox jumps over the lazy Dog: SwXParagraph",
+ false);
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertString( oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertControlCharacter(
+ oCursor, ControlCharacter.LINE_BREAK, false );
+ }
+
+ // Enumeration
+ XEnumerationAccess oEnumA = UnoRuntime.queryInterface(XEnumerationAccess.class, oText );
+ XEnumeration oEnum = oEnumA.createEnumeration();
+
+ try {
+ para = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oEnum.nextElement());
+ XEnumerationAccess oEnumB = UnoRuntime.queryInterface( XEnumerationAccess.class, para );
+ XEnumeration oEnum2 = oEnumB.createEnumeration();
+ port = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oEnum2.nextElement());
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ e.printStackTrace(log);
+ log.println("Error: exception occurred...");
+ } catch ( com.sun.star.container.NoSuchElementException e ) {
+ e.printStackTrace(log);
+ log.println("Error: exception occurred...");
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ e.printStackTrace(log);
+ log.println("Error: exception occurred...");
+ }
+
+ portP = UnoRuntime.queryInterface(XPropertySet.class, port);
+ paraP = UnoRuntime.queryInterface(XPropertySet.class, para);
+ paraP.setPropertyValue("NumberingStyleName","Numbering IVX");
+ nRules = paraP.getPropertyValue("NumberingRules");
+
+
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class),oEnum.nextElement());
+
+
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println("adding ObjectRelation 'PARA' for CharacterProperties");
+ tEnv.addObjRelation("PARA", paraP);
+
+ log.println("adding ObjectRelation 'PORTION' for CharacterProperties");
+ tEnv.addObjRelation("PORTION", portP);
+
+ log.println("adding ObjectRelation 'NRULES' for ParagraphProperties");
+ tEnv.addObjRelation("NRULES", nRules);
+
+ tEnv.addObjRelation("NoAttach","SwXParagraph");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXParagraph
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXParagraphEnumeration.java b/qadevOOo/tests/java/mod/_sw/SwXParagraphEnumeration.java
new file mode 100644
index 000000000..3e17bfce3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXParagraphEnumeration.java
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.ParagraphEnumeration</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XEnumeration</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XEnumeration
+ * @see ifc.container._XEnumeration
+ */
+public class SwXParagraphEnumeration extends TestCase {
+ XTextDocument xTextDoc = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After major
+ * text is gotten from a text document, three paragraphs (each of them
+ * filled by 5 strings) are inserted to major text. Finally, paragraph
+ * enumeration is created using <code>XEnumeration</code> interface.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'ENUM'</code> for
+ * {@link ifc.container._XEnumeration} : major text of text document
+ * with several paragraphs inserted, queried to
+ * <code>XEnumerationAccess</code> interface.</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ for (int i=0; i<3; i++) {
+ try {
+ oText.insertString( oCursor, "Paragraph Number: " + i, false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.LINE_BREAK, false );
+ } catch ( com.sun.star.lang.IllegalArgumentException e ){
+ log.println( "EXCEPTION: " + e);
+ }
+
+ for (int j=0; j<5; j++){
+ try {
+ oText.insertString( oCursor,"The quick brown fox jumps"+
+ " over the lazy Dog: SwXParagraph", false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.LINE_BREAK, false );
+ oText.insertString( oCursor, "THE QUICK BROWN FOX JUMPS"+
+ " OVER THE LAZY DOG: SwXParagraph", false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.LINE_BREAK, false );
+ } catch ( com.sun.star.lang.IllegalArgumentException e ){
+ log.println( "EXCEPTION: " + e);
+ }
+ }
+
+ try {
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ } catch ( com.sun.star.lang.IllegalArgumentException e ){
+ log.println( "EXCEPTION: " + e);
+ }
+ }
+
+ // Enumeration
+ XEnumerationAccess oEnumA = UnoRuntime.queryInterface( XEnumerationAccess.class, oText );
+ XEnumeration oEnum = oEnumA.createEnumeration();
+
+ oObj = oEnum;
+
+ log.println("creating a new environment for ParagraphEnumeration object");
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("ENUM", oEnumA);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXParagraphEnumeration
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXPrintSettings.java b/qadevOOo/tests/java/mod/_sw/SwXPrintSettings.java
new file mode 100644
index 000000000..109b947f6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXPrintSettings.java
@@ -0,0 +1,91 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XPrintSettingsSupplier;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.PrintSettings</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::PrintSettings</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.PrintSettings
+ * @see ifc.text._PrintSettings
+ */
+public class SwXPrintSettings extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.GlobalSettings</code>, then print settings are
+ * gotten using <code>XPrintSettingsSupplier</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+ Object oInst = null;
+
+ log.println( "creating a test environment" );
+ XMultiServiceFactory myMSF = tParam.getMSF();
+ oInst = myMSF.createInstance("com.sun.star.text.GlobalSettings");
+ XPrintSettingsSupplier xPSS = UnoRuntime.queryInterface(XPrintSettingsSupplier.class, oInst);
+ oObj = xPSS.getPrintSettings();
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXPrintSettings
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXPropertySet.java b/qadevOOo/tests/java/mod/_sw/SwXPropertySet.java
new file mode 100644
index 000000000..0089c2f11
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXPropertySet.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextDocument;
+
+/**
+ * Test for object which is represented by text document.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.beans._XPropertySet
+ */
+public class SwXPropertySet extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Method creates text document as a test component.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+
+ log.println( "creating a test environment" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ log.println( "creating a text document" );
+ xTextDoc = SOF.createTextDoc( null );
+
+ TestEnvironment tEnv = new TestEnvironment( xTextDoc );
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXPropertySet
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXPropertySetInfo.java b/qadevOOo/tests/java/mod/_sw/SwXPropertySetInfo.java
new file mode 100644
index 000000000..c47e0080b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXPropertySetInfo.java
@@ -0,0 +1,82 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by PropertySetInfo of
+ * text document.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::beans::XPropertySetInfo</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.beans.XPropertySetInfo
+ * @see ifc.beans._XPropertySetInfo
+ */
+public class SwXPropertySetInfo extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters Param, PrintWriter log) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. Method
+ * creates text document, then obtains PropertySetInfo of created text
+ * document using <code>XPropertySet</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+
+ log.println( "creating a test environment" );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+
+ log.println( " getting the XPropertySetInfo" );
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, xTextDoc);
+ oObj = xProp.getPropertySetInfo();
+ log.println( " creating a new environment for PropertySetInfo object" );
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXPropertySetInfo
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXReferenceMark.java b/qadevOOo/tests/java/mod/_sw/SwXReferenceMark.java
new file mode 100644
index 000000000..8b257ba13
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXReferenceMark.java
@@ -0,0 +1,117 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.ReferenceMark</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::text::XTextContent</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.ReferenceMark
+ * @see ifc.container._XNamed
+ * @see ifc.lang._XComponent
+ * @see ifc.text._XTextContent
+ */
+public class SwXReferenceMark extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.ReferenceMark</code>, then sets new
+ * name of created ReferenceMark using <code>XNamed</code> interface.
+ * Finally, renamed ReferenceMark is inserted to a major text of text
+ * document as a text content.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception{
+ XInterface oObj = null;
+ XText oText = null;
+ String Name = "SwXReferenceMark";
+
+ log.println( "creating a test environment" );
+ oText = xTextDoc.getText();
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ Object instance = null;
+ oObj = (XInterface) oDocMSF.createInstance
+ ("com.sun.star.text.ReferenceMark");
+ instance = oDocMSF.createInstance
+ ("com.sun.star.text.ReferenceMark");
+
+ XNamed oObjN = UnoRuntime.queryInterface(XNamed.class, oObj);
+ oObjN.setName(Name);
+ XTextContent oObjTC = UnoRuntime.queryInterface(XTextContent.class, oObj);
+
+ XTextCursor oCursor = oText.createTextCursor();
+ oText.insertTextContent(oCursor, oObjTC, false);
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXReferenceMark
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXReferenceMarks.java b/qadevOOo/tests/java/mod/_sw/SwXReferenceMarks.java
new file mode 100644
index 000000000..40b99adec
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXReferenceMarks.java
@@ -0,0 +1,128 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XReferenceMarksSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.ReferenceMarks</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.text.ReferenceMarks
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ */
+public class SwXReferenceMarks extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instances of the service
+ * <code>com.sun.star.text.ReferenceMark</code>, then sets new names to
+ * created ReferenceMark's using <code>XNamed</code> interface. Then renamed
+ * ReferenceMark's are inserted to a major text of text document. Finally,
+ * ReferenceMarks are gotten from text document using
+ * <code>XReferenceMarksSupplier</code> interface.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+ XText oText = null;
+ String Name = "SwXReferenceMark01";
+ String Name2 = "SwXReferenceMark02";
+
+ log.println( "creating a test environment" );
+ oText = xTextDoc.getText();
+
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+
+ // Creation and insertion of ReferenceMark01
+ oObj = (XInterface)
+ oDocMSF.createInstance( "com.sun.star.text.ReferenceMark" );
+ XNamed oObjN = UnoRuntime.queryInterface(XNamed.class, oObj);
+ oObjN.setName(Name);
+ XTextContent oObjTC = UnoRuntime.queryInterface(XTextContent.class, oObj);
+ XTextCursor oCursor = oText.createTextCursor();
+ oText.insertTextContent(oCursor, oObjTC, false);
+
+ // Creation and insertion of ReferenceMark02
+ oObj = (XInterface)
+ oDocMSF.createInstance( "com.sun.star.text.ReferenceMark" );
+ XNamed oObjN2 = UnoRuntime.queryInterface(XNamed.class, oObj);
+ oObjN2.setName(Name2);
+
+ XTextContent oObjTC2 = UnoRuntime.queryInterface(XTextContent.class, oObj);
+ oText.insertTextContent(oCursor, oObjTC2, false);
+
+ // getting ReferenceMarks from text document
+ XReferenceMarksSupplier oRefSupp = UnoRuntime.queryInterface(XReferenceMarksSupplier.class, xTextDoc);
+ oObj = oRefSupp.getReferenceMarks();
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXReferenceMarks
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXShape.java b/qadevOOo/tests/java/mod/_sw/SwXShape.java
new file mode 100644
index 000000000..e3309db61
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXShape.java
@@ -0,0 +1,120 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPageSupplier;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.drawing.Shape</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::lang::XComponent</code></li>
+ * <li> <code>com::sun::star::drawing::XShape</code></li>
+ * <li> <code>com::sun::star::drawing::XShapeDescriptor</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::drawing::Shape</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.drawing.XShape
+ * @see com.sun.star.drawing.XShapeDescriptor
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.drawing.Shape
+ * @see ifc.lang._XComponent
+ * @see ifc.drawing._XShape
+ * @see ifc.drawing._XShapeDescriptor
+ * @see ifc.beans._XPropertySet
+ * @see ifc.drawing._Shape
+ */
+public class SwXShape extends TestCase {
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. At first,
+ * DrawPage is gotten from text document using <code>XDrawPageSupplier</code>
+ * interface. Then shape (rectangle) is created and added to DrawPage
+ * obtained before, then returned as a test component.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ XDrawPage oDP = null;
+ XShapes oShapes = null;
+
+ log.println( "creating a test environment" );
+ log.println( "getting Drawpage" );
+ XDrawPageSupplier oDPS = UnoRuntime.queryInterface(XDrawPageSupplier.class, xTextDoc);
+ oDP = oDPS.getDrawPage();
+
+ log.println( "getting Shape" );
+ oShapes = UnoRuntime.queryInterface(XShapes.class, oDP);
+ oObj = SOF.createShape(xTextDoc,5000,3500,7500,5000,"Rectangle");
+ oShapes.add((XShape) oObj);
+
+ for ( int i = 0; i < 9; i++){
+ XInterface oShape = SOF.createShape(xTextDoc,
+ 5000 + 100*i,3500,7500,5000,"Rectangle");
+ oShapes.add((XShape) oShape);
+ }
+
+ log.println( "creating a new environment for XShape object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXShape
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXStyle.java b/qadevOOo/tests/java/mod/_sw/SwXStyle.java
new file mode 100644
index 000000000..6a01b029e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXStyle.java
@@ -0,0 +1,181 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.Style</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNamed</code></li>
+ * <li> <code>com::sun::star::style::Style</code></li>
+ * <li> <code>com::sun::star::style::XStyle</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.style.Style
+ * @see com.sun.star.style.XStyle
+ * @see ifc.container._XNamed
+ * @see ifc.style._Style
+ * @see ifc.style._XStyle
+ */
+public class SwXStyle extends TestCase {
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF = null;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * At first style families are gotten from a text document using
+ * <code>XStyleFamiliesSupplier</code> interface, then family indexed '0' is
+ * gotten from this style family using <code>XIndexAccess</code> interface.
+ * Next, method creates an instance of the service
+ * <code>com.sun.star.style.CharacterStyle</code> and inserts it to a
+ * previously obtained style family using <code>XNameContainer</code>
+ * interface. Finally, method creates a cursor of a major text of text
+ * document and sets it's property 'CharStyleName' value to the name of
+ * previously created style's name.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'PoolStyle'</code> for
+ * {@link ifc.style._XStyle} : style indexed '10' obtained from
+ * StyleFamily indexed '0' from text document using
+ * <code>XIndexAccess</code> interface.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ TestEnvironment tEnv = null;
+ XNameAccess oSFNA = null;
+ XStyle oStyle = null;
+ XStyle oMyStyle = null;
+
+ log.println("creating a test environment");
+
+ log.println("getting style");
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
+ xTextDoc);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+ XIndexAccess oSFsIA = UnoRuntime.queryInterface(XIndexAccess.class, oSF);
+ oSFNA = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),oSFsIA.getByIndex(0));
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSFNA);
+ oStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oSFIA.getByIndex(10));
+
+ log.print("Creating a user-defined style... ");
+ XMultiServiceFactory oMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ XInterface oInt = (XInterface)
+ oMSF.createInstance("com.sun.star.style.CharacterStyle");
+ oMyStyle = UnoRuntime.queryInterface(XStyle.class, oInt);
+
+
+ if (oMyStyle == null)
+ log.println("FAILED");
+ else
+ log.println("OK");
+ XNameContainer oSFNC = UnoRuntime.queryInterface(XNameContainer.class, oSFNA);
+
+ if ( oSFNC.hasByName("My Style") )
+ oSFNC.removeByName("My Style");
+ oSFNC.insertByName("My Style", oMyStyle);
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ XPropertySet xProp = UnoRuntime.queryInterface(XPropertySet.class, oCursor);
+
+ xProp.setPropertyValue("CharStyleName", oMyStyle.getName());
+
+ log.println("creating a new environment for object");
+ tEnv = new TestEnvironment(oMyStyle);
+ tEnv.addObjRelation("PoolStyle", oStyle);
+
+ XPropertySet xStyleProp = UnoRuntime.queryInterface(XPropertySet.class, oMyStyle);
+ tEnv.addObjRelation("PropertyNames",getPropertyNames(xStyleProp));
+
+ return tEnv;
+ }
+
+ public String[] getPropertyNames(XPropertySet props) {
+ Property[] the_props = props.getPropertySetInfo().getProperties();
+ String[] names = new String[the_props.length];
+ String placebo = "";
+ for (int i=0;i<the_props.length;i++) {
+ boolean isWritable =
+ ((the_props[i].Attributes & PropertyAttribute.READONLY) == 0);
+ if (isWritable) placebo=the_props[i].Name;
+ }
+ for (int i=0;i<the_props.length;i++) {
+ boolean isWritable =
+ ((the_props[i].Attributes & PropertyAttribute.READONLY) == 0);
+ if (isWritable) {
+ names[i]=the_props[i].Name;
+ } else {
+ names[i] = placebo;
+ }
+ }
+ return names;
+ }
+
+} // finish class SwXStyle
diff --git a/qadevOOo/tests/java/mod/_sw/SwXStyleFamilies.java b/qadevOOo/tests/java/mod/_sw/SwXStyleFamilies.java
new file mode 100644
index 000000000..ebbc4690a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXStyleFamilies.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.StyleFamilies</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.style.StyleFamilies
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XIndexAccess
+ */
+public class SwXStyleFamilies extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. Style families
+ * are gotten from text document using <code>XStyleFamiliesSupplier</code>
+ * interface and returned as a test component.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws StatusException {
+
+
+ log.println( "Creating a test environment" );
+ XTextDocument xArea = UnoRuntime.queryInterface(XTextDocument.class, xTextDoc);
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xArea);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+
+ TestEnvironment tEnv = new TestEnvironment(oSF);
+ return tEnv;
+ }
+
+
+} // finish class SwXStyle
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXStyleFamily.java b/qadevOOo/tests/java/mod/_sw/SwXStyleFamily.java
new file mode 100644
index 000000000..c785ebd84
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXStyleFamily.java
@@ -0,0 +1,169 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.style.StyleFamily</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XNameContainer</code></li>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XNameReplace</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XNameContainer
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XNameReplace
+ * @see ifc.container._XNameContainer
+ * @see ifc.container._XNameAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XNameReplace
+ */
+public class SwXStyleFamily extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. At first,
+ * style families of text document are gotten using
+ * <code>XStyleFamiliesSupplier</code> interface, then family indexed '0' is
+ * gotten from previously obtained style families collection using
+ * <code>XIndexAccess</code> interface. Finally, method creates an instance
+ * of the service <code>com.sun.star.style.CharacterStyle</code> and inserts
+ * it to a gotten style family as 'SwXStyleFamily' using
+ * <code>XNameContainer</code> interface.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XNameReplaceINDEX'</code> for
+ * {@link ifc.container._XNameReplace} : number of last taken instance
+ * of <code>com.sun.star.style.CharacterStyle</code>, when multithread
+ * testing is going.</li>
+ * <li> <code>'NAMEREPLACE'</code> for
+ * {@link ifc.container._XNameReplace} : name of style family, inserted
+ * to style families of a text document.</li>
+ * <li> <code>'INSTANCEn'</code> for
+ * {@link ifc.container._XIndexContainer},
+ * {@link ifc.container._XIndexReplace},
+ * {@link ifc.container._XNameContainer},
+ * {@link ifc.container._XNameReplace} : several relations, which are
+ * represented by instances of service
+ * <code>com.sun.star.style.CharacterStyle</code>.</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XNameAccess oSFNA = null;
+
+ log.println( "Creating Test Environment..." );
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+ XComponent xComp = UnoRuntime.queryInterface(XComponent.class, xTextDoc);
+ XInterface oInstance = (XInterface)
+ SOF.createInstance(xComp, "com.sun.star.style.CharacterStyle");
+ XStyleFamiliesSupplier oSFsS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xTextDoc);
+ XNameAccess oSF = oSFsS.getStyleFamilies();
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSF);
+
+ oSFNA = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),oSFIA.getByIndex(0));
+
+ XNameContainer oContainer = UnoRuntime.queryInterface(XNameContainer.class, oSFNA);
+
+ // insert a Style which can be replaced by name
+ try {
+ oContainer.insertByName("SwXStyleFamily",oInstance);
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Could not insert style family.");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Could not insert style family.");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.container.ElementExistException e ) {
+ log.println("Could not insert style family.");
+ e.printStackTrace(log);
+ }
+
+ TestEnvironment tEnv = new TestEnvironment(oSFNA);
+
+ int THRCNT = 1;
+ if ((String)Param.get("THRCNT") != null) {
+ THRCNT = Integer.parseInt((String)Param.get("THRCNT"));
+ }
+ String nr = Integer.toString(THRCNT+1);
+
+ log.println( "adding NameReplaceIndex as mod relation to environment" );
+ tEnv.addObjRelation("XNameReplaceINDEX", nr);
+
+ for (int n=1; n<(THRCNT+3); n++ ) {
+ log.println( "adding INSTANCE"+n+" as mod relation to environment");
+ tEnv.addObjRelation("INSTANCE"+n,
+ SOF.createInstance(xComp,"com.sun.star.style.CharacterStyle"));
+ }
+
+ log.println("adding NAMEREPLACE as mod relation to environment");
+ tEnv.addObjRelation("NAMEREPLACE", "SwXStyleFamily");
+
+ return tEnv;
+ }
+
+} // finish class SwXStyleFamily
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTableCellText.java b/qadevOOo/tests/java/mod/_sw/SwXTableCellText.java
new file mode 100644
index 000000000..336aba189
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTableCellText.java
@@ -0,0 +1,146 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+import util.TextSectionDsc;
+
+import com.sun.star.table.XCell;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by cell text of the text table.<p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextRangeMover</code></li>
+ * <li> <code>com::sun::star::text::XSimpleText</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::text::XRelativeTextContentInsert</code></li>
+ * <li> <code>com::sun::star::text::XTextRangeCompare</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::text::XText</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextRangeMover
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XRelativeTextContentInsert
+ * @see com.sun.star.text.XTextRangeCompare
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.text.XText
+ * @see ifc.text._XTextRangeMover
+ * @see ifc.text._XSimpleText
+ * @see ifc.text._XTextRange
+ * @see ifc.text._XRelativeTextContentInsert
+ * @see ifc.text._XTextRangeCompare
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XEnumerationAccess
+ * @see ifc.text._XText
+ */
+public class SwXTableCellText extends TestCase {
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After creation
+ * of text table, it is inserted to a text document. Then cell named 'A1' is
+ * obtained from table, string 'SwXTableCellText' is set to this cell, then
+ * cell text is gotten from cell obtained before and returned as a test
+ * component.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'TEXT'</code> for
+ * {@link ifc.text._XTextRangeCompare} : table cell text</li>
+ * <li> <code>'PARA'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert} : paragraph creator</li>
+ * <li> <code>'XTEXTINFO'</code> for
+ * {@link ifc.text._XRelativeTextContentInsert},
+ * {@link ifc.text._XText} : creates text sections</li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ XTextTable oTable = null;
+
+ log.println( "Creating a test environment" );
+ oTable = SOfficeFactory.createTextTable( xTextDoc );
+
+ SOfficeFactory.insertTextContent(xTextDoc, oTable );
+
+ XCell oCell = oTable.getCellByName("A1");
+ XSimpleText oCellText = UnoRuntime.queryInterface(XSimpleText.class, oCell);
+ oCellText.setString("SwXTableCellText");
+ oObj = oCellText.getText();
+
+ log.println( "creating a new environment for Cell object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXT", oObj);
+
+ log.println( " adding InstCreator object" );
+ TextSectionDsc tDsc = new TextSectionDsc();
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ log.println( " adding Paragraph" );
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation( "PARA", new InstCreator( xTextDoc, pDsc ) );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class SwXTableCellText
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTableColumns.java b/qadevOOo/tests/java/mod/_sw/SwXTableColumns.java
new file mode 100644
index 000000000..2acfbf586
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTableColumns.java
@@ -0,0 +1,112 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.table.TableColumns</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::container::XNameAccess</code></li>
+ * <li> <code>com::sun::star::table::XTableColumns</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.table.XTableColumns
+ * @see com.sun.star.table.TableColumns
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.container._XNameAccess
+ * @see ifc.table._XTableColumns
+ */
+public class SwXTableColumns extends TestCase {
+ XTextDocument xTextDoc;
+ SOfficeFactory SOF;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After creation
+ * of text table, it is inserted to text document, then columns are gotten
+ * from table.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ XTextTable oTable = null;
+
+ log.println( "creating a test environment" );
+
+ oTable = SOfficeFactory.createTextTable( xTextDoc );
+
+ SOfficeFactory.insertTextContent(xTextDoc, oTable );
+
+ oObj = oTable.getColumns();
+
+ log.println( "creating a new environment for TableColumns object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XTableColumns
+ tEnv.addObjRelation("XTableColumns.XCellRange",
+ UnoRuntime.queryInterface(XCellRange.class, oTable));
+
+ tEnv.addObjRelation("XIndexAccess.getByIndex.mustBeNull", Boolean.TRUE);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTableColumns
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTableRows.java b/qadevOOo/tests/java/mod/_sw/SwXTableRows.java
new file mode 100644
index 000000000..1dc1be9d2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTableRows.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.table.XCellRange;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.table.TableRows</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::container::XIndexAccess</code></li>
+ * <li> <code>com::sun::star::container::XElementAccess</code></li>
+ * <li> <code>com::sun::star::table::XTableRows</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.table.XTableRows
+ * @see ifc.container._XIndexAccess
+ * @see ifc.container._XElementAccess
+ * @see ifc.table._XTableRows
+ */
+public class SwXTableRows extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After creation
+ * of text table, it is inserted to text document, then rows are gotten
+ * from table.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log ) throws StatusException {
+ XInterface oObj = null;
+ XTextTable oTable = null;
+
+ log.println( "creating a test environment" );
+ SOfficeFactory.getFactory( tParam.getMSF() );
+ oTable = SOfficeFactory.createTextTable( xTextDoc );
+
+ SOfficeFactory.insertTextContent(xTextDoc, oTable );
+ oObj = oTable.getRows();
+
+ log.println( "creating a new environment for TableColumns object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XTableColumns
+ tEnv.addObjRelation("XTableRows.XCellRange",
+ UnoRuntime.queryInterface(XCellRange.class, oTable));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTableRows
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextColumns.java b/qadevOOo/tests/java/mod/_sw/SwXTextColumns.java
new file mode 100644
index 000000000..d198e4468
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextColumns.java
@@ -0,0 +1,168 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextColumns;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.TextColumns</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextColumns</code></li>
+ * <li> <code>com::sun::star::text::TextColumns</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextColumns
+ * @see com.sun.star.text.TextColumns
+ * @see ifc.text._XTextColumns
+ * @see ifc.text._TextColumns
+ */
+public class SwXTextColumns extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After style
+ * families are gotten from text document using
+ * <code>XStyleFamiliesSupplier</code> interface, style family indexed '2'
+ * is obtained using <code>XIndexAccess</code> interface. Then style
+ * named 'Standard' is gotten from previously obtained style family using
+ * <code>XNameAccess</code> interface, and 'TextColumns' property value
+ * of this style is returned as a test component. Finally, several
+ * paragraphs within the text are inserted to a text document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+ XInterface oObj = null;
+ TestEnvironment tEnv = null;
+ XStyle oStyle = null;
+
+ log.println( "creating a test environment" );
+ log.println("getting PageStyle");
+ XStyleFamiliesSupplier oSFS = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xTextDoc);
+ XNameAccess oSF = oSFS.getStyleFamilies();
+ XIndexAccess oSFIA = UnoRuntime.queryInterface(XIndexAccess.class, oSF);
+
+ try {
+ XNameAccess oSFNA = (XNameAccess) AnyConverter.toObject(
+ new Type(XNameAccess.class),oSFIA.getByIndex(2));
+ oStyle = (XStyle) AnyConverter.toObject(
+ new Type(XStyle.class),oSFNA.getByName("Standard"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Error, exception occurred while getting style.");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IndexOutOfBoundsException e ) {
+ log.println("Error, exception occurred while getting style.");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.container.NoSuchElementException e ) {
+ log.println("Error, exception occurred while getting style.");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Error, exception occurred while getting style.");
+ e.printStackTrace(log);
+ }
+
+ try {
+ log.println("Getting property ('TextColumns') value of style "
+ + oStyle.getName());
+ XPropertySet xProps = UnoRuntime.queryInterface(XPropertySet.class,oStyle);
+ oObj = (XTextColumns) AnyConverter.toObject(
+ new Type(XTextColumns.class),xProps.getPropertyValue("TextColumns"));
+ } catch ( com.sun.star.lang.WrappedTargetException e ) {
+ log.println("Exception occurred while getting style property");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.beans.UnknownPropertyException e ) {
+ log.println("Exception occurred while getting style property");
+ e.printStackTrace(log);
+ } catch ( com.sun.star.lang.IllegalArgumentException e ) {
+ log.println("Exception occurred while getting style property");
+ e.printStackTrace(log);
+ }
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println( "inserting some text to text document..." );
+ try {
+ for (int i =0; i < 5; i++){
+ oText.insertString( oCursor,"Paragraph Number: " + i, false);
+ oText.insertString( oCursor,
+ "The quick brown fox jumps over the lazy Dog: SwXParagraph",
+ false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertString( oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.LINE_BREAK, false );
+ }
+ } catch ( com.sun.star.lang.IllegalArgumentException e ){
+ log.println("Exception occurred while inserting Text");
+ e.printStackTrace(log);
+ }
+
+ log.println("creating a new environment for object");
+ tEnv = new TestEnvironment(oObj);
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextColumns
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextCursor.java b/qadevOOo/tests/java/mod/_sw/SwXTextCursor.java
new file mode 100644
index 000000000..5b641b1e7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextCursor.java
@@ -0,0 +1,307 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XParagraphCursor;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.TextCursor</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::text::XTextCursor</code></li>
+ * <li> <code>com::sun::star::text::XWordCursor</code></li>
+ * <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+ * <li> <code>com::sun::star::text::XTextRange</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::container::XContentEnumerationAccess</code></li>
+ * <li> <code>com::sun::star::beans::XPropertyState</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::text::XSentenceCursor</code></li>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::text::XParagraphCursor</code></li>
+ * <li> <code>com::sun::star::document::XDocumentInsertable</code></li>
+ * <li> <code>com::sun::star::util::XSortable</code></li>
+ * <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+ * </ul> <p>
+ * This object test <b> is NOT </b> designed to be run in several
+ * threads concurrently.
+ * @see com.sun.star.text.XTextCursor
+ * @see com.sun.star.text.XWordCursor
+ * @see com.sun.star.style.CharacterPropertiesComplex
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XContentEnumerationAccess
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.text.XSentenceCursor
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.text.XParagraphCursor
+ * @see com.sun.star.document.XDocumentInsertable
+ * @see com.sun.star.util.XSortable
+ * @see com.sun.star.style.CharacterPropertiesAsian
+ * @see ifc.text._XTextCursor
+ * @see ifc.text._XWordCursor
+ * @see ifc.style._CharacterPropertiesComplex
+ * @see ifc.text._XTextRange
+ * @see ifc.beans._XPropertySet
+ * @see ifc.container._XContentEnumerationAccess
+ * @see ifc.beans._XPropertyState
+ * @see ifc.style._CharacterProperties
+ * @see ifc.text._XSentenceCursor
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.text._XParagraphCursor
+ * @see ifc.document._XDocumentInsertable
+ * @see ifc.util._XSortable
+ * @see ifc.style._CharacterPropertiesAsian
+ */
+public class SwXTextCursor extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested. After major
+ * text of text document is obtained, text cursor is created and several
+ * paragraphs within the text are inserted to a text document. Finally,
+ * text cursor is returned as a test component.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XTEXT'</code> for
+ * {@link ifc.text._XTextRange} : major text of text document</li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ log.println("creating a test environment");
+
+
+ // get the bodytext of textdocument here
+ log.println("getting the TextCursor");
+
+ final XSimpleText aText = xTextDoc.getText();
+ final XTextCursor textCursor = aText.createTextCursor();
+ oObj = textCursor;
+
+ log.println("inserting some text");
+
+ try {
+ for (int i = 0; i < 3; i++) {
+ aText.insertString(textCursor, "" + (3 - i), false);
+
+ for (int j = 0; j < 5; j++) {
+ aText.insertString(textCursor, "XTextCursor,XTextCursor",
+ false);
+ aText.insertString(textCursor, "The quick brown fox ",
+ false);
+ aText.insertString(textCursor, "jumps over the lazy dog ",
+ false);
+ }
+
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.LINE_BREAK,
+ false);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Error, insert text to text document.");
+ e.printStackTrace(log);
+ }
+
+ log.println("creating a new environment for SwXTextCursor object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XTEXT", xTextDoc.getText());
+
+ XPropertySet xCursorProp = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+
+ String[] skipNames = { "ParaBackGraphicURL" };
+ String[] propertyNames = getPropertyNames(xCursorProp, skipNames);
+
+ tEnv.addObjRelation("PropertyNames", propertyNames);
+ tEnv.addObjRelation("SkipProperties", propertyNames);
+
+ //Adding relation for util.XSortable
+ final XParagraphCursor paragrCursor = UnoRuntime.queryInterface(
+ XParagraphCursor.class,
+ oObj);
+ final PrintWriter finalLog = log;
+
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ textCursor.gotoEnd(false);
+
+ try {
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertString(textCursor, "4", false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertString(textCursor, "b", false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertString(textCursor, "3", false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertString(textCursor, "a", false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertString(textCursor, "23", false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ aText.insertString(textCursor, "ab", false);
+ aText.insertControlCharacter(textCursor,
+ ControlCharacter.PARAGRAPH_BREAK,
+ false);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ out.println("Unexpected exception:" + e);
+ }
+
+ out.println(
+ "Preparing cursor to sorting. Text before sorting:");
+ paragrCursor.gotoEnd(true);
+
+ for (int i = 0; i < 6; i++) {
+ paragrCursor.gotoPreviousParagraph(true);
+ }
+
+ out.println(textCursor.getString());
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ String ls = System.getProperty("line.separator");
+
+ String text = paragrCursor.getString();
+ out.println("Text after sorting:\n" + text);
+
+ boolean res = false;
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ res = text.endsWith(ls+"3"+ls+"4"+ls+"23");
+
+ if (!res) {
+ out.println("Text must ends by:\n" + "\r\n3\r\n4\r\n23\r\n");
+ }
+ } else {
+ res = text.startsWith("23"+ls+"4"+ls+"3"+ls);
+
+ if (!res) {
+ out.println("Text must starts with:\n" + "23\r\n4\r\n3\r\n");
+ }
+ }
+ } else {
+ if (isSortAscending) {
+ res = text.equals(ls+"23"+ls+"3"+ls+"4"+ls+"a"+ls+"ab"+ls+"b");
+
+ if (!res) {
+ out.println("Text must be equal to:\n" + "\r\n23\r\n3\r\n4\r\na\r\nab\r\nb\r\n");
+ }
+ } else {
+ res = text.endsWith("b"+ls+"ab"+ls+"a"+ls+"4"+ls+"3"+ls+"23"+ls);
+
+ if (!res) {
+ out.println("Text must be equal to:\n" + "b\r\nab\r\na\r\n4\r\n3\r\n23\r\n");
+ }
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ }
+
+ return res;
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ public String[] getPropertyNames(XPropertySet props, String[] skipList) {
+ Property[] the_props = props.getPropertySetInfo().getProperties();
+ ArrayList<String> names = new ArrayList<String>();
+
+ for (int i = 0; i < the_props.length; i++) {
+ boolean isWritable = ((the_props[i].Attributes & PropertyAttribute.READONLY) == 0);
+ if (isWritable && !Arrays.asList(skipList).contains(the_props[i].Name)) {
+ names.add(the_props[i].Name);
+ }
+ }
+
+ return names.toArray(new String[names.size()]);
+ }
+} // finish class SwXTextCursor
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextDefaults.java b/qadevOOo/tests/java/mod/_sw/SwXTextDefaults.java
new file mode 100644
index 000000000..1b02f44d3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextDefaults.java
@@ -0,0 +1,106 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+//API Interfaces
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.text.Defaults</code> created by a writer
+ * document's <code>XMultiServiceFactory</code>. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>com::sun::star::style::ParagraphProperties</code></li>
+ * <li> <code>com::sun::star::style::CharacterPropertiesComplex</code></li>
+ * <li> <code>com::sun::star::style::CharacterPropertiesAsian</code></li>
+ * <li> <code>com::sun::star::text::Defaults</code></li>
+ * <li> <code>com::sun::star::style::CharacterProperties</code></li>
+ * <li> <code>com::sun::star::beans::XPropertySet</code></li>
+ * <li> <code>com::sun::star::style::ParagraphPropertiesComplex</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.style.CharacterPropertiesComplex
+ * @see com.sun.star.style.CharacterPropertiesAsian
+ * @see com.sun.star.text.Defaults
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.style.ParagraphPropertiesComplex
+ * @see ifc.style._ParagraphProperties
+ * @see ifc.style._CharacterPropertiesComplex
+ * @see ifc.style._CharacterPropertiesAsian
+ * @see ifc.text._Defaults
+ * @see ifc.style._CharacterProperties
+ * @see ifc.beans._XPropertySet
+ * @see ifc.style._ParagraphPropertiesComplex
+ */
+public class SwXTextDefaults extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * Creates the service <code>com.sun.star.text.Defaults</code>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+
+ XMultiServiceFactory docMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class,xTextDoc);
+
+ oObj = (XInterface)
+ docMSF.createInstance("com.sun.star.text.Defaults");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+ }
+
+ /**
+ * Creates text document.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Disposes text document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextDocument.java b/qadevOOo/tests/java/mod/_sw/SwXTextDocument.java
new file mode 100644
index 000000000..442d94b2c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextDocument.java
@@ -0,0 +1,215 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.text.XTextSection;
+import com.sun.star.text.XTextSectionsSupplier;
+import com.sun.star.text.XTextTable;
+import com.sun.star.text.XWordCursor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XSelectionSupplier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.DesktopTools;
+
+import util.SOfficeFactory;
+import util.WriterTools;
+
+public class SwXTextDocument extends TestCase {
+ XTextDocument xTextDoc;
+ XTextDocument xSecondTextDoc;
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ DesktopTools.closeDoc(xSecondTextDoc);
+ DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters Param, PrintWriter log) throws Exception {
+ TestEnvironment tEnv = null;
+ XTextTable the_table = null;
+
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting some lines");
+
+ for (int i = 0; i < 5; i++) {
+ oText.insertString(oCursor, "Paragraph Number: " + i, false);
+ oText.insertString(
+ oCursor,
+ " The quick brown fox jumps over the lazy Dog: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ oText.insertString(
+ oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ oText.insertControlCharacter(oCursor, ControlCharacter.LINE_BREAK,
+ false);
+ }
+ for (int i = 0; i < 11; i++) {
+ oText.insertString(oCursor, "xTextDoc ", false);
+
+ }
+
+ // insert two sections parent and child
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, xTextDoc);
+
+ XInterface oTS;
+ XTextSection xTS;
+
+ XTextSectionsSupplier oTSSupp = UnoRuntime.queryInterface(
+ XTextSectionsSupplier.class, xTextDoc);
+ XNameAccess oTSSuppName = oTSSupp.getTextSections();
+
+ oTS = (XInterface) oDocMSF
+ .createInstance("com.sun.star.text.TextSection");
+
+ XTextContent oTSC = UnoRuntime.queryInterface(XTextContent.class, oTS);
+ oText.insertTextContent(oCursor, oTSC, false);
+
+ XWordCursor oWordC = UnoRuntime.queryInterface(XWordCursor.class,
+ oCursor);
+ oCursor.setString("End of TextSection");
+ oCursor.gotoStart(false);
+ oCursor.setString("Start of TextSection ");
+ oWordC.gotoEndOfWord(false);
+
+ XInterface oTS2 = (XInterface) oDocMSF
+ .createInstance("com.sun.star.text.TextSection");
+ oTSC = UnoRuntime.queryInterface(XTextContent.class, oTS2);
+ oText.insertTextContent(oCursor, oTSC, false);
+
+ XIndexAccess oTSSuppIndex = UnoRuntime.queryInterface(
+ XIndexAccess.class, oTSSuppName);
+ log.println("getting a TextSection with the XTextSectionSupplier()");
+ xTS = UnoRuntime.queryInterface(XTextSection.class,
+ oTSSuppIndex.getByIndex(0));
+
+ XNamed xTSName = UnoRuntime.queryInterface(XNamed.class, xTS);
+ xTSName.setName("SwXTextSection");
+
+ log.println(" adding TextTable");
+ the_table = SOfficeFactory.createTextTable(xTextDoc, 6, 4);
+
+ XNamed the_name = UnoRuntime.queryInterface(XNamed.class, the_table);
+ the_name.setName("SwXTextDocument");
+ SOfficeFactory.insertTextContent(xTextDoc, the_table);
+
+ log.println(" adding ReferenceMark");
+
+ XInterface aMark = (XInterface) oDocMSF
+ .createInstance("com.sun.star.text.ReferenceMark");
+ the_name = UnoRuntime.queryInterface(XNamed.class, aMark);
+ the_name.setName("SwXTextDocument");
+
+ XTextContent oTC = UnoRuntime.queryInterface(XTextContent.class, aMark);
+ SOfficeFactory.insertTextContent(xTextDoc, oTC);
+
+ log.println(" adding TextGraphic");
+ WriterTools.insertTextGraphic(xTextDoc, oDocMSF, Param.getComponentContext(),
+ 5200, 4200, 4400, 4000, "space-metal.jpg", "SwXTextDocument");
+
+ log.println(" adding EndNote");
+
+ XInterface aEndNote = (XInterface) oDocMSF
+ .createInstance("com.sun.star.text.Endnote");
+ oTC = UnoRuntime.queryInterface(XTextContent.class, aEndNote);
+ SOfficeFactory.insertTextContent(xTextDoc, oTC);
+
+ log.println(" adding Bookmark");
+ SOfficeFactory.insertTextContent(xTextDoc,
+ SOfficeFactory.createBookmark(xTextDoc));
+
+ log.println(" adding DocumentIndex");
+ oTC = SOfficeFactory.createIndex(xTextDoc,
+ "com.sun.star.text.DocumentIndex");
+ SOfficeFactory.insertTextContent(xTextDoc, oTC);
+
+ log.println(" adding TextFrame");
+
+ XTextFrame frame = SOfficeFactory.createTextFrame(xTextDoc, 500, 500);
+ oTC = UnoRuntime.queryInterface(XTextContent.class, frame);
+ SOfficeFactory.insertTextContent(xTextDoc, oTC);
+
+ log.println("creating a second textdocument");
+ xSecondTextDoc = WriterTools.createTextDoc(Param.getMSF());
+
+ XText oText2 = xTextDoc.getText();
+ XTextCursor oTextCursor = oText2.createTextCursor();
+
+ for (int i = 0; i < 11; i++) {
+ oText2.insertString(oTextCursor, "xTextDoc ", false);
+ }
+
+ tEnv = new TestEnvironment(xTextDoc);
+
+ XModel model1 = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+ XModel model2 = UnoRuntime.queryInterface(XModel.class, xSecondTextDoc);
+
+ XController cont1 = model1.getCurrentController();
+ XController cont2 = model2.getCurrentController();
+
+ cont1.getFrame().setName("cont1");
+ cont2.getFrame().setName("cont2");
+
+ XSelectionSupplier sel = UnoRuntime.queryInterface(
+ XSelectionSupplier.class, cont1);
+
+ log.println("Adding SelectionSupplier and Shape to select for XModel");
+ tEnv.addObjRelation("SELSUPP", sel);
+ tEnv.addObjRelation("TOSELECT", the_table);
+
+ log.println("adding Controller as ObjRelation for XModel");
+ tEnv.addObjRelation("CONT1", cont1);
+ tEnv.addObjRelation("CONT2", cont2);
+
+ return tEnv;
+ }
+} // finish class SwXTextDocument
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObject.java b/qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObject.java
new file mode 100644
index 000000000..59019e91d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObject.java
@@ -0,0 +1,153 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import com.sun.star.beans.XPropertySet;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextEmbeddedObjectsSupplier;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.document.XEmbeddedObjectSupplier
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.TextEmbeddedObject
+ * @see com.sun.star.text.XTextContent
+ *
+ */
+public class SwXTextEmbeddedObject extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ // create testobject here
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+
+ XTextCursor xCursor = xTextDoc.getText().createTextCursor();
+ try {
+ XMultiServiceFactory xMultiServiceFactory = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ Object o = xMultiServiceFactory.createInstance("com.sun.star.text.TextEmbeddedObject" );
+ XTextContent xTextContent = UnoRuntime.queryInterface(XTextContent.class, o);
+ String sChartClassID = "12dcae26-281f-416f-a234-c3086127382e";
+ XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xTextContent);
+ xPropertySet.setPropertyValue( "CLSID", sChartClassID );
+
+ xTextDoc.getText().insertTextContent( xCursor, xTextContent, false );
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ }
+
+ XTextEmbeddedObjectsSupplier oTEOS = UnoRuntime.queryInterface(
+ XTextEmbeddedObjectsSupplier.class,
+ xTextDoc);
+
+ XNameAccess oEmObj = oTEOS.getEmbeddedObjects();
+ XIndexAccess oEmIn = UnoRuntime.queryInterface(
+ XIndexAccess.class, oEmObj);
+
+ oObj = (XInterface) AnyConverter.toObject(
+ new Type(XInterface.class), oEmIn.getByIndex(0));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("NoAttach", "SwXTextEmbeddedObject");
+
+ XTextFrame aFrame = SOfficeFactory.createTextFrame(xTextDoc, 500, 500);
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ XTextContent the_content = UnoRuntime.queryInterface(
+ XTextContent.class, aFrame);
+
+ try {
+ oText.insertTextContent(oCursor, the_content, true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't insert frame " + e.getMessage());
+ }
+
+ tEnv.addObjRelation("TextFrame", aFrame);
+
+ tEnv.addObjRelation("NoSetSize", "SwXTextEmbeddedObject");
+ tEnv.addObjRelation("NoPos", "SwXTextEmbeddedObject");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SwXTextEmbeddedObject
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObjects.java b/qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObjects.java
new file mode 100644
index 000000000..4b0e3ae72
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObjects.java
@@ -0,0 +1,121 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import com.sun.star.beans.XPropertySet;
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextEmbeddedObjectsSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+public class SwXTextEmbeddedObjects extends TestCase {
+
+ XTextDocument oDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ oDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(oDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log ) throws StatusException {
+
+ XInterface oObj = null;
+
+ // create testobject here
+ XTextCursor xCursor = oDoc.getText().createTextCursor();
+ try {
+ XMultiServiceFactory xMultiServiceFactory = UnoRuntime.queryInterface(XMultiServiceFactory.class, oDoc);
+ Object o = xMultiServiceFactory.createInstance("com.sun.star.text.TextEmbeddedObject" );
+ XTextContent xTextContent = UnoRuntime.queryInterface(XTextContent.class, o);
+ String sChartClassID = "12dcae26-281f-416f-a234-c3086127382e";
+ XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xTextContent);
+ xPropertySet.setPropertyValue( "CLSID", sChartClassID );
+
+ oDoc.getText().insertTextContent( xCursor, xTextContent, false );
+ }
+ catch(com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ }
+
+ XTextEmbeddedObjectsSupplier oTEOS = UnoRuntime.queryInterface(XTextEmbeddedObjectsSupplier.class, oDoc);
+
+ oObj = oTEOS.getEmbeddedObjects();
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextEmbeddedObjects
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextField.java b/qadevOOo/tests/java/mod/_sw/SwXTextField.java
new file mode 100644
index 000000000..61afb8e30
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextField.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XDependentTextField;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.TextContent
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.XTextField
+ *
+ */
+public class SwXTextField extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ Object instance = null;
+
+ // create testobject here
+ try {
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+
+ Object FieldMaster = oDocMSF.createInstance
+ ( "com.sun.star.text.FieldMaster.Database" );
+ XPropertySet PFieldMaster = UnoRuntime.queryInterface
+ (XPropertySet.class,FieldMaster);
+ oObj = (XInterface) oDocMSF.createInstance
+ ( "com.sun.star.text.TextField.Database" );
+
+ instance = oDocMSF.createInstance
+ ( "com.sun.star.text.TextField.DateTime" );
+
+ XDependentTextField xTF = UnoRuntime.queryInterface(XDependentTextField.class,oObj);
+
+ PFieldMaster.setPropertyValue("DataBaseName","Address Book File");
+ PFieldMaster.setPropertyValue("DataTableName","address");
+ PFieldMaster.setPropertyValue("DataColumnName","FIRSTNAME");
+ XText the_Text = xTextDoc.getText();
+ XTextCursor the_Cursor = the_Text.createTextCursor();
+ XTextContent the_Field = UnoRuntime.queryInterface(XTextContent.class,oObj);
+
+ xTF.attachTextFieldMaster(PFieldMaster);
+ the_Text.insertTextContent(the_Cursor,the_Field,false);
+ }
+ catch (Exception ex) {
+ log.println("Couldn't create instance");
+ ex.printStackTrace(log);
+ }
+
+ log.println( "creating a new environment for FieldMaster object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SwXTextField
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextFieldMasters.java b/qadevOOo/tests/java/mod/_sw/SwXTextFieldMasters.java
new file mode 100644
index 000000000..3f6d70705
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextFieldMasters.java
@@ -0,0 +1,125 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFieldsSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.container.XContainer
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XNameAccess
+ * @see com.sun.star.container.XNameContainer
+ * @see com.sun.star.container.XNameReplace
+ *
+ */
+public class SwXTextFieldMasters extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+
+ // create testobject here
+ try {
+ XTextFieldsSupplier oTFS = UnoRuntime.queryInterface( XTextFieldsSupplier.class, xTextDoc );
+
+ oObj = oTFS.getTextFieldMasters();
+
+ }
+ catch (Exception ex) {
+ log.println("Couldn't create instance");
+ ex.printStackTrace(log);
+ }
+
+ log.println( "creating a new environment for FieldMasters object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SwXTextFieldMasters
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextFieldTypes.java b/qadevOOo/tests/java/mod/_sw/SwXTextFieldTypes.java
new file mode 100644
index 000000000..03cb9721e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextFieldTypes.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFieldsSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.container.XContainer
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ *
+ */
+public class SwXTextFieldTypes extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+
+ // create testobject here
+ try {
+ XTextFieldsSupplier oTFS = UnoRuntime.queryInterface( XTextFieldsSupplier.class, xTextDoc );
+
+ oObj = oTFS.getTextFields();
+
+ }
+ catch (Exception ex) {
+ log.println("Couldn't create instance");
+ ex.printStackTrace(log);
+ }
+
+ log.println( "creating a new environment for FieldTypes object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SwXTextFieldTypes
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextFrame.java b/qadevOOo/tests/java/mod/_sw/SwXTextFrame.java
new file mode 100644
index 000000000..e3eb3c299
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextFrame.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.TextContentAnchorType;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.text.XText
+ *
+ */
+public class SwXTextFrame extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XTextFrame oFrame1 = null;
+ XTextFrame oFrame2 = null;
+ XPropertySet oPropSet = null;
+ XText oText = null;
+ XTextCursor oCursor = null;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+
+ // creating Frames
+ log.println("creating Frames");
+
+
+ Object instance = null;
+
+ oFrame1 = SOfficeFactory.createTextFrame(xTextDoc, 500, 500);
+ oFrame2 = SOfficeFactory.createTextFrame(xTextDoc, 1500, 1500);
+ oPropSet = UnoRuntime.queryInterface(
+ XPropertySet.class, oFrame1);
+
+
+ // AnchorTypes: 0 = paragraph, 1 = as char, 2 = page,
+ // 3 = frame/paragraph 4= at char
+ oPropSet.setPropertyValue("AnchorType",
+ TextContentAnchorType.AS_CHARACTER);
+ oText = xTextDoc.getText();
+ oCursor = oText.createTextCursor();
+
+ log.println("inserting Frame1");
+
+ XTextContent the_content = UnoRuntime.queryInterface(
+ XTextContent.class, oFrame1);
+ oText.insertTextContent(oCursor, the_content, true);
+
+ log.println("inserting Frame2");
+ the_content = UnoRuntime.queryInterface(
+ XTextContent.class, oFrame2);
+ oText.insertTextContent(oCursor, the_content, true);
+
+ XText oFrameText = oFrame1.getText();
+ oFrameText.insertString(oFrameText.getStart(), "The FrameText",
+ true);
+
+ instance = SOF.createInstance(xTextDoc,
+ "com.sun.star.text.TextFrame");
+ oObj = oFrame1;
+
+ log.println("creating a new environment for TextFrame object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("CONTENT",
+ UnoRuntime.queryInterface(
+ XTextContent.class, instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ log.println("adding ObjRelation for XShape " +
+ "(get/setPosition won't work there)");
+ tEnv.addObjRelation("NoPos", "SwXTextFrame");
+ tEnv.addObjRelation("NoSetSize", "SwXTextFrame");
+
+ tEnv.addObjRelation("TextFrame", oFrame2);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class SwXTextFrame
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextFrameText.java b/qadevOOo/tests/java/mod/_sw/SwXTextFrameText.java
new file mode 100644
index 000000000..1b12794f0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextFrameText.java
@@ -0,0 +1,137 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.ParagraphDsc;
+import util.SOfficeFactory;
+import util.TableDsc;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ *
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XEnumerationAccess
+ * @see com.sun.star.text.XSimpleText
+ * @see com.sun.star.text.XText
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XTextRangeMover
+ *
+ */
+public class SwXTextFrameText extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XTextFrame oFrame1 = null;
+ XPropertySet oPropSet = null;
+ XText oText = null;
+ XTextCursor oCursor = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory.getFactory(tParam.getMSF());
+
+ // create testobject here
+
+ oFrame1 = SOfficeFactory.createTextFrame(xTextDoc, 500, 500);
+ oPropSet = UnoRuntime.queryInterface(XPropertySet.class, oFrame1);
+ // AnchorTypes: 0 = paragraph, 1 = as char, 2 = page,
+ // 3 = frame/paragraph 4= at char
+ oPropSet.setPropertyValue("AnchorType", Integer.valueOf(2));
+ oText = xTextDoc.getText();
+ oCursor = oText.createTextCursor();
+
+ log.println("inserting Frame1");
+ oText.insertTextContent(oCursor, oFrame1, false);
+
+ XText oFText = UnoRuntime.queryInterface(XText.class, oFrame1);
+ XTextCursor oFCursor = oFText.createTextCursor();
+ oFText.insertString(oFCursor, "SwXTextFrameText", false);
+
+ oObj = oFText.getText();
+
+ log.println("creating a new environment for TextFrameText object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("adding TextDocument as mod relation to environment");
+ tEnv.addObjRelation("TEXT", oObj);
+
+ log.println("adding InstDescriptor object");
+ TableDsc tDsc = new TableDsc(6, 4);
+
+ log.println("adding InstCreator object");
+ tEnv.addObjRelation("XTEXTINFO", new InstCreator(xTextDoc, tDsc));
+
+ log.println(" adding Paragraph");
+ ParagraphDsc pDsc = new ParagraphDsc();
+ tEnv.addObjRelation("PARA", new InstCreator(xTextDoc, pDsc));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextFrameText
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextGraphicObject.java b/qadevOOo/tests/java/mod/_sw/SwXTextGraphicObject.java
new file mode 100644
index 000000000..d078516e2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextGraphicObject.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.TextContentAnchorType;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.graphic.XGraphic;
+import com.sun.star.graphic.XGraphicProvider;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.XComponentContext;
+
+public class SwXTextGraphicObject extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+ log.println("creating a textdoc");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xDrawDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oGObject = null;
+ Object xTextFrame = null;
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ Object instance = null;
+
+ oGObject = SOF.createInstance(xTextDoc,
+ "com.sun.star.text.GraphicObject");
+ instance = SOF.createInstance(xTextDoc,
+ "com.sun.star.text.GraphicObject");
+ xTextFrame = SOfficeFactory.createTextFrame(xTextDoc, 500, 500);
+
+ oObj = (XInterface) oGObject;
+
+ XText the_text = xTextDoc.getText();
+ XTextCursor the_cursor = the_text.createTextCursor();
+ XTextContent the_content = UnoRuntime.queryInterface(
+ XTextContent.class, oObj);
+
+ log.println("inserting Frame");
+ XTextContent Framecontent = UnoRuntime.queryInterface(
+ XTextContent.class, xTextFrame);
+ the_text.insertTextContent(the_cursor, Framecontent, true);
+
+ log.println("inserting graphic");
+ the_text.insertTextContent(the_cursor, the_content, true);
+
+ log.println("adding graphic");
+
+ XComponentContext xContext = tParam.getComponentContext();
+
+ XGraphicProvider xGraphicProvider = UnoRuntime.queryInterface(XGraphicProvider.class,
+ xContext.getServiceManager().createInstanceWithContext("com.sun.star.graphic.GraphicProvider", xContext));
+
+ String fullURL = util.utils.getFullTestURL("space-metal.jpg");
+
+ PropertyValue[] aMediaProps = new PropertyValue[] { new PropertyValue() };
+ aMediaProps[0].Name = "URL";
+ aMediaProps[0].Value = fullURL;
+
+ XGraphic xGraphic = UnoRuntime.queryInterface(XGraphic.class,
+ xGraphicProvider.queryGraphic(aMediaProps));
+
+ XPropertySet oProps = UnoRuntime.queryInterface(XPropertySet.class,
+ oObj);
+
+ oProps.setPropertyValue("AnchorType", TextContentAnchorType.AT_PARAGRAPH);
+ oProps.setPropertyValue("Graphic", xGraphic);
+ oProps.setPropertyValue("HoriOrientPosition", Integer.valueOf(5500));
+ oProps.setPropertyValue("VertOrientPosition", Integer.valueOf(4200));
+ oProps.setPropertyValue("Width", Integer.valueOf(4400));
+ oProps.setPropertyValue("Height", Integer.valueOf(4000));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("adding ObjRelation for XShape "
+ + "(get/setPosition won't work there)");
+ tEnv.addObjRelation("NoPos", "SwXTextGraphicObject");
+ tEnv.addObjRelation("NoSetSize", "SwXTextGraphicObject");
+ Object ImgMap = null;
+ // creating ObjectRelation for the property
+ // 'ImageMap' of 'TextGraphicObject'
+ try {
+ XMultiServiceFactory xDocMSF = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, xTextDoc);
+ ImgMap = xDocMSF
+ .createInstance("com.sun.star.image.ImageMapRectangleObject");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+
+ tEnv.addObjRelation("IMGMAP", ImgMap);
+
+ tEnv.addObjRelation("CONTENT",
+ UnoRuntime.queryInterface(XTextContent.class, instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ // object relation for text.BaseFrameProperties
+ tEnv.addObjRelation("TextFrame", xTextFrame);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextGraphicObject
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextGraphicObjects.java b/qadevOOo/tests/java/mod/_sw/SwXTextGraphicObjects.java
new file mode 100644
index 000000000..4a0de3b0b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextGraphicObjects.java
@@ -0,0 +1,152 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextGraphicObjectsSupplier;
+import com.sun.star.graphic.XGraphic;
+import com.sun.star.graphic.XGraphicProvider;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.XComponentContext;
+
+public class SwXTextGraphicObjects extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+ log.println("creating a textdoc");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oGObject = null;
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ oGObject = SOF.createInstance(xTextDoc,
+ "com.sun.star.text.GraphicObject");
+
+ oObj = (XInterface) oGObject;
+
+ XText the_text = xTextDoc.getText();
+ XTextCursor the_cursor = the_text.createTextCursor();
+ XTextContent the_content = UnoRuntime.queryInterface(
+ XTextContent.class, oObj);
+
+ log.println("inserting graphic");
+ the_text.insertTextContent(the_cursor, the_content, true);
+
+ log.println("adding graphic");
+
+ XComponentContext xContext = tParam.getComponentContext();
+
+ XGraphicProvider xGraphicProvider = UnoRuntime.queryInterface(XGraphicProvider.class,
+ xContext.getServiceManager().createInstanceWithContext("com.sun.star.graphic.GraphicProvider", xContext));
+
+ String fullURL = util.utils.getFullTestURL("space-metal.jpg");
+
+ PropertyValue[] aMediaProps = new PropertyValue[] { new PropertyValue() };
+ aMediaProps[0].Name = "URL";
+ aMediaProps[0].Value = fullURL;
+
+ XGraphic xGraphic = UnoRuntime.queryInterface(XGraphic.class,
+ xGraphicProvider.queryGraphic(aMediaProps));
+
+ XPropertySet oProps = UnoRuntime.queryInterface(XPropertySet.class,
+ oObj);
+ oProps.setPropertyValue("Graphic", xGraphic);
+ oProps.setPropertyValue("HoriOrientPosition", Integer.valueOf(5500));
+ oProps.setPropertyValue("VertOrientPosition", Integer.valueOf(4200));
+ oProps.setPropertyValue("Width", Integer.valueOf(4400));
+ oProps.setPropertyValue("Height", Integer.valueOf(4000));
+
+ XTextGraphicObjectsSupplier xTGS = UnoRuntime.queryInterface(
+ XTextGraphicObjectsSupplier.class, xTextDoc);
+ oObj = xTGS.getGraphicObjects();
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextGraphicObjects
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextPortion.java b/qadevOOo/tests/java/mod/_sw/SwXTextPortion.java
new file mode 100644
index 000000000..50fc0c532
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextPortion.java
@@ -0,0 +1,154 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ *
+ * @see com.sun.star.text.TextPortion
+ *
+ */
+public class SwXTextPortion extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XInterface param = null;
+ XPropertySet paraP = null;
+ XPropertySet portP = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // create testobject here
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting Strings");
+ log.println("inserting ControlCharacter");
+
+ for (int i = 0; i < 5; i++) {
+ oText.insertString(oCursor, "Paragraph Number: " + i, false);
+ oText.insertControlCharacter(oCursor, ControlCharacter.LINE_BREAK,
+ false);
+ oText.insertString(
+ oCursor,
+ "The quick brown fox jumps over the lazy Dog: SwXParagraph\n",
+ false);
+ oText.insertControlCharacter(oCursor, ControlCharacter.LINE_BREAK,
+ false);
+ oText.insertString(
+ oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ }
+
+ // Enumeration
+ XEnumerationAccess oEnumA = UnoRuntime.queryInterface(
+ XEnumerationAccess.class, oText);
+ XEnumeration oEnum = oEnumA.createEnumeration();
+
+ int n = 0;
+ while (oEnum.hasMoreElements()) {
+ param = (XInterface) AnyConverter.toObject(new Type(
+ XInterface.class), oEnum.nextElement());
+ log.println("Element Nr.: " + n);
+ n++;
+ }
+
+ XEnumerationAccess oEnumP = UnoRuntime.queryInterface(
+ XEnumerationAccess.class, param);
+ XEnumeration oEnum2 = oEnumP.createEnumeration();
+ oObj = (XInterface) AnyConverter.toObject(new Type(XInterface.class),
+ oEnum2.nextElement());
+
+ portP = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ paraP = UnoRuntime.queryInterface(XPropertySet.class, param);
+
+ log.println("creating a new environment for Paragraph object");
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("adding ObjRelation TRO for TextContent");
+ tEnv.addObjRelation("TRO", Boolean.TRUE);
+
+ log.println("adding ObjectRelation 'PARA' for CharacterProperties");
+ tEnv.addObjRelation("PARA", paraP);
+
+ log.println("adding ObjectRelation 'PORTION' for CharacterProperties");
+ tEnv.addObjRelation("PORTION", portP);
+
+ tEnv.addObjRelation("XTEXT", oText);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextPortion
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextPortionEnumeration.java b/qadevOOo/tests/java/mod/_sw/SwXTextPortionEnumeration.java
new file mode 100644
index 000000000..b5cf80e30
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextPortionEnumeration.java
@@ -0,0 +1,137 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ *
+ * @see com.sun.star.text.TextPortion
+ *
+ */
+public class SwXTextPortionEnumeration extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam
+ * class which contains additional test parameters
+ * @param log
+ * class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface param = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println("creating a test environment");
+
+ // create testobject here
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ log.println("inserting Strings");
+ log.println("inserting ControlCharacter");
+
+ for (int i = 0; i < 5; i++) {
+ oText.insertString(oCursor, "Paragraph Number: " + i, false);
+ oText.insertControlCharacter(oCursor, ControlCharacter.LINE_BREAK,
+ false);
+ oText.insertString(
+ oCursor,
+ "The quick brown fox jumps over the lazy Dog: SwXParagraph\n",
+ false);
+ oText.insertControlCharacter(oCursor, ControlCharacter.LINE_BREAK,
+ false);
+ oText.insertString(
+ oCursor,
+ "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG: SwXParagraph",
+ false);
+ oText.insertControlCharacter(oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ }
+
+ // Enumeration
+ XEnumerationAccess oEnumA = UnoRuntime.queryInterface(
+ XEnumerationAccess.class, oText);
+ XEnumeration oEnum = oEnumA.createEnumeration();
+
+ while (oEnum.hasMoreElements()) {
+ param = (XInterface) AnyConverter.toObject(new Type(
+ XInterface.class), oEnum.nextElement());
+ }
+
+ XEnumerationAccess oEnumP = UnoRuntime.queryInterface(
+ XEnumerationAccess.class, param);
+ XEnumeration oEnum2 = oEnumP.createEnumeration();
+
+ log.println("creating a new environment for TextPortionEnumeration object");
+ TestEnvironment tEnv = new TestEnvironment(oEnum2);
+
+ log.println("adding ObjRelation ENUM for XEnumeration");
+ tEnv.addObjRelation("ENUM", oEnumP);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextPortionEnumeration
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextRange.java b/qadevOOo/tests/java/mod/_sw/SwXTextRange.java
new file mode 100644
index 000000000..e96c722b4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextRange.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+public class SwXTextRange extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws StatusException {
+
+ XText aText = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+
+ // get the bodytext of textdocument here
+ log.println( "getting the TextRange of the text document" );
+ aText = xTextDoc.getText();
+ XTextCursor oCursor = aText.createTextCursor();
+
+ XInterface oObj = oCursor.getStart();
+
+ log.println( "creating a new environment for textrange object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ System.out.println("Implementation Name: "+utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextRange
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextRanges.java b/qadevOOo/tests/java/mod/_sw/SwXTextRanges.java
new file mode 100644
index 000000000..32e97b47d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextRanges.java
@@ -0,0 +1,115 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XSearchDescriptor;
+import com.sun.star.util.XSearchable;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XIndexAccess
+ *
+ */
+public class SwXTextRanges extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ for (int j =0; j < 5; j++){
+ try{
+ oText.insertString( oCursor,
+ "SwXTextRanges...SwXTextRanges...SwXTextRanges", false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ }
+ catch( Exception e ){
+ log.println( "EXCEPTION: " + e);
+ }
+ }
+
+ XSearchable oSearch = UnoRuntime.queryInterface
+ (XSearchable.class, xTextDoc);
+ XSearchDescriptor xSDesc = oSearch.createSearchDescriptor();
+ xSDesc.setSearchString("SwXTextRanges");
+
+ oObj = oSearch.findAll(xSDesc);
+
+ log.println( "creating a new environment for textrange object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextRanges
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextSearch.java b/qadevOOo/tests/java/mod/_sw/SwXTextSearch.java
new file mode 100644
index 000000000..0ca1bbef7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextSearch.java
@@ -0,0 +1,116 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XSearchDescriptor;
+import com.sun.star.util.XSearchable;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.util.SearchDescriptor
+ * @see com.sun.star.util.XSearchDescriptor
+ *
+ */
+public class SwXTextSearch extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ for (int j =0; j < 5; j++){
+ try{
+ oText.insertString( oCursor,
+ "SwXTextSearch...SwXTextSearch...SwXTextSearch", false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false );
+ }
+ catch( Exception e ){
+ log.println( "EXCEPTION: " + e);
+ }
+ }
+
+ XSearchable oSearch = UnoRuntime.queryInterface
+ (XSearchable.class, xTextDoc);
+ XSearchDescriptor xSDesc = oSearch.createSearchDescriptor();
+ xSDesc.setSearchString("SwXTextSearch");
+
+ oObj = xSDesc;
+
+ log.println( "creating a new environment for TextSearch object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextSearch
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextSection.java b/qadevOOo/tests/java/mod/_sw/SwXTextSection.java
new file mode 100644
index 000000000..9fd67a72a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextSection.java
@@ -0,0 +1,159 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.InstCreator;
+import util.SOfficeFactory;
+import util.TableDsc;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextColumns;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextSection;
+import com.sun.star.text.XTextSectionsSupplier;
+import com.sun.star.text.XWordCursor;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.text.XText
+ *
+ */
+
+public class SwXTextSection extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ XInterface oTS = null;
+ XTextSection xTS = null;
+ XText oText = null;
+ XTextColumns TC = null;
+ Object instance = null;
+
+ log.println( "creating a test environment" );
+
+ oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+
+ try {
+ XTextSectionsSupplier oTSSupp = UnoRuntime.queryInterface
+ ( XTextSectionsSupplier.class, xTextDoc );
+ XNameAccess oTSSuppName = oTSSupp.getTextSections();
+
+ //cleanup if necessary
+ if (oTSSuppName.hasByName("SwXTextSection")) {
+ XTextSection old = (XTextSection) AnyConverter.toObject(
+ new Type(XTextSection.class),
+ oTSSuppName.getByName("SwXTextSection"));
+ XComponent oldC = UnoRuntime.queryInterface(XComponent.class,old);
+ oldC.dispose();
+ oText.setString("");
+ }
+
+ //insert two sections parent and child
+ oTS = (XInterface) oDocMSF.createInstance
+ ("com.sun.star.text.TextSection");
+ instance = oDocMSF.createInstance("com.sun.star.text.TextSection");
+ XTextContent oTSC = UnoRuntime.queryInterface(XTextContent.class, oTS);
+ oText.insertTextContent(oCursor, oTSC, false);
+ XWordCursor oWordC = UnoRuntime.queryInterface(XWordCursor.class, oCursor);
+ oCursor.setString("End of TextSection");
+ oCursor.gotoStart(false);
+ oCursor.setString("Start of TextSection ");
+ oWordC.gotoEndOfWord(false);
+ XInterface oTS2 = (XInterface) oDocMSF.createInstance
+ ("com.sun.star.text.TextSection");
+ oTSC = UnoRuntime.queryInterface(XTextContent.class, oTS2);
+ oText.insertTextContent(oCursor, oTSC, false);
+
+ XIndexAccess oTSSuppIndex = UnoRuntime.queryInterface(XIndexAccess.class, oTSSuppName);
+
+ log.println( "getting a TextSection with the XTextSectionSupplier()" );
+ xTS = (XTextSection) AnyConverter.toObject(
+ new Type(XTextSection.class),oTSSuppIndex.getByIndex(0));
+ XNamed xTSName = UnoRuntime.queryInterface( XNamed.class, xTS);
+ xTSName.setName("SwXTextSection");
+ }
+ catch(Exception e){
+ System.out.println("Couldn't get Textsection " + e);
+ }
+
+ oObj = xTS;
+
+ log.println( "creating a new environment for TextSection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding InstDescriptor object" );
+ TableDsc tDsc = new TableDsc( 6, 4 );
+
+ log.println( "adding InstCreator object" );
+ tEnv.addObjRelation( "XTEXTINFO", new InstCreator( xTextDoc, tDsc ) );
+
+ tEnv.addObjRelation("TRO",Boolean.TRUE);
+
+ TC = UnoRuntime.queryInterface(XTextColumns.class,
+ oDocMSF.createInstance("com.sun.star.text.TextColumns"));
+ tEnv.addObjRelation("TC",TC);
+
+ tEnv.addObjRelation("CONTENT", UnoRuntime.queryInterface(XTextContent.class,instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}// finish class SwXTextSection
+
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextSections.java b/qadevOOo/tests/java/mod/_sw/SwXTextSections.java
new file mode 100644
index 000000000..c00d0cb5e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextSections.java
@@ -0,0 +1,122 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextSectionsSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.text.XText
+ *
+ */
+public class SwXTextSections extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ XInterface oTS = null;
+ XNameAccess oTSSuppName = null;
+
+ XText oText = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+
+ oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+
+
+ log.println( "inserting TextSections" );
+
+ XMultiServiceFactory oDocMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+
+ // First TextSection
+ oTS = (XInterface) oDocMSF.createInstance
+ ("com.sun.star.text.TextSection");
+ XTextContent oTSC = UnoRuntime.queryInterface(XTextContent.class, oTS);
+ oText.insertTextContent(oCursor, oTSC, false);
+
+ // Second TextSection
+ oTS = (XInterface) oDocMSF.createInstance
+ ("com.sun.star.text.TextSection");
+ XTextContent oTSC2 = UnoRuntime.queryInterface(XTextContent.class, oTS);
+ oText.insertTextContent(oCursor, oTSC2, false);
+
+
+ log.println( "try to get a TextSection with the XTextSectionSupplier()" );
+
+ try{
+ XTextSectionsSupplier oTSSupp = UnoRuntime.queryInterface( XTextSectionsSupplier.class,
+ xTextDoc );
+ oTSSuppName = oTSSupp.getTextSections();
+ }
+ catch(Exception e){
+ System.out.println("Couldn't get Textsection " + e);
+ }
+
+
+ oObj = oTSSuppName;
+
+ log.println( "creating a new environment for TextSections object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextSection
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextTable.java b/qadevOOo/tests/java/mod/_sw/SwXTextTable.java
new file mode 100644
index 000000000..2ff21ff52
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextTable.java
@@ -0,0 +1,235 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.ValueComparer;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.table.XCell;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRange;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * this class tests the implementation of listed interfaces
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.container.XNamed
+ * @see com.sun.star.lang.XComponent
+ * @see com.sun.star.text.TextContent
+ * @see com.sun.star.text.XTextContent
+ * @see com.sun.star.text.XTextTable
+ */
+public class SwXTextTable extends TestCase {
+ SOfficeFactory SOF;
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ this method creates the testenvironment
+ @param tParam TestParameters class which contains additional
+ test parameters
+ @param log PrintWriter class to log the test state and result
+
+ @return TestEnvironment class
+
+ @see TestParameters
+ @see PrintWriter
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) {
+ // creation of testobject here
+ XTextTable oObj = null;
+ TestEnvironment tEnv = null;
+ Object instance = null;
+
+ oObj = SOfficeFactory.createTextTable(xTextDoc);
+ instance = SOfficeFactory.createTextTable(xTextDoc);
+
+ int nRow = 6;
+ int nCol = 2;
+ oObj.initialize(nRow, nCol);
+
+ log.println("Creating instance...");
+ tEnv = new TestEnvironment(oObj);
+
+ if (SOfficeFactory.getTableCollection(xTextDoc).getCount() == 0) {
+ SOfficeFactory.insertTextContent(xTextDoc, oObj);
+ }
+
+ XPropertySet props = UnoRuntime.queryInterface(
+ XPropertySet.class, oObj);
+
+ try {
+ props.setPropertyValue("ChartRowAsLabel", Boolean.TRUE);
+ props.setPropertyValue("ChartColumnAsLabel", Boolean.TRUE);
+ } catch (Exception e) {
+ e.printStackTrace(log);
+ }
+
+
+ //Adding relation for util.XTextTable
+ tEnv.addObjRelation("NROW", Integer.valueOf(nRow));
+ tEnv.addObjRelation("NCOL", Integer.valueOf(nCol));
+
+ //Adding ObjRelation for XCellRangeData
+ Object[][] newData = new Object[6][];
+ Object[] line = new Object[2];
+ line[0] = new Double(1.5);
+ line[1] = new Double(2.5);
+ newData[0] = line;
+ newData[1] = line;
+ newData[2] = line;
+ newData[3] = line;
+ newData[4] = line;
+ newData[5] = line;
+ tEnv.addObjRelation("NewData", newData);
+
+ //Adding relation for util.XSortable
+ final PrintWriter finalLog = log;
+ final XTextTable oTable = oObj;
+ tEnv.addObjRelation("SORTCHECKER",
+ new ifc.util._XSortable.XSortChecker() {
+ PrintWriter out = finalLog;
+
+ public void setPrintWriter(PrintWriter log) {
+ out = log;
+ }
+
+ public void prepareToSort() {
+ oTable.getCellByName("A1").setValue(4);
+
+ XTextRange textRange = UnoRuntime.queryInterface(
+ XTextRange.class,
+ oTable.getCellByName("A2"));
+ textRange.setString("b");
+ oTable.getCellByName("A3").setValue(3);
+ textRange = UnoRuntime.queryInterface(
+ XTextRange.class,
+ oTable.getCellByName("A4"));
+ textRange.setString("a");
+ oTable.getCellByName("A5").setValue(23);
+ textRange = UnoRuntime.queryInterface(
+ XTextRange.class,
+ oTable.getCellByName("A6"));
+ textRange.setString("ab");
+
+ }
+
+ public boolean checkSort(boolean isSortNumbering,
+ boolean isSortAscending) {
+ out.println("Sort checking...");
+
+ boolean res = false;
+ String[] value = new String[6];
+
+ for (int i = 0; i < 6; i++) {
+ XCell cell = oTable.getCellByName("A" + (i + 1));
+ XTextRange textRange = UnoRuntime.queryInterface(
+ XTextRange.class, cell);
+ value[i] = textRange.getString();
+ }
+
+ if (isSortNumbering) {
+ if (isSortAscending) {
+ String[] rightVal = { "3", "4", "23" };
+ String[] vals = { value[3], value[4], value[5] };
+ res = ValueComparer.equalValue(vals, rightVal);
+
+ if (!res) {
+ out.println("Expected: 3, 4, 23");
+ out.println("Getting: " + value[3] + ", " +
+ value[4] + ", " + value[5]);
+ }
+ } else {
+ String[] rightVal = { "23", "4", "3" };
+ String[] vals = { value[0], value[1], value[2] };
+ res = ValueComparer.equalValue(vals, rightVal);
+
+ if (!res) {
+ out.println("Expected: 23, 4, 3");
+ out.println("Getting: " + value[1] + ", " +
+ value[2] + ", " + value[3]);
+ }
+ }
+ } else {
+ if (isSortAscending) {
+ String[] rightVal = { "23", "3", "4", "a", "ab", "b" };
+ res = ValueComparer.equalValue(value, rightVal);
+
+ if (!res) {
+ out.println("Expected: 23, 3, 4, a, ab, b");
+ out.println("Getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] +
+ ", " + value[3] + ", " +
+ value[4] + ", " + value[5]);
+ }
+ } else {
+ String[] rightVal = { "b", "ab", "a", "4", "3", "23" };
+ res = ValueComparer.equalValue(value, rightVal);
+
+ if (!res) {
+ out.println("Expected: b, ab, a, 4, 3, 23");
+ out.println("Getting: " + value[0] + ", " +
+ value[1] + ", " + value[2] +
+ ", " + value[3] + ", " +
+ value[4] + ", " + value[5]);
+ }
+ }
+ }
+
+ if (res) {
+ out.println("Sorted correctly");
+ } else {
+ out.println("Sorted incorrectly");
+ }
+
+ return res;
+ }
+ });
+
+ tEnv.addObjRelation("CONTENT",
+ UnoRuntime.queryInterface(
+ XTextContent.class, instance));
+ tEnv.addObjRelation("RANGE", xTextDoc.getText().createTextCursor());
+
+ return tEnv;
+ }
+} // finish class SwXTextTable
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextTableCursor.java b/qadevOOo/tests/java/mod/_sw/SwXTextTableCursor.java
new file mode 100644
index 000000000..6417a9a3e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextTableCursor.java
@@ -0,0 +1,104 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.text.XTextTableCursor
+ *
+ */
+public class SwXTextTableCursor extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws StatusException {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory.getFactory( tParam.getMSF() );
+
+ // create testobject here
+
+ XTextTable oTable = null;
+ oTable = SOfficeFactory.createTextTable( xTextDoc );
+ SOfficeFactory.insertTextContent(xTextDoc, oTable );
+
+ oObj = oTable.createCursorByCellName("A1");
+
+ log.println( "creating a new environment for TextTableCursor object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ tEnv.addObjRelation("STYLENAME1", "Table");
+ tEnv.addObjRelation("STYLENAME2", "Text");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextTableCursor
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextTableRow.java b/qadevOOo/tests/java/mod/_sw/SwXTextTableRow.java
new file mode 100644
index 000000000..a8f4144f2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextTableRow.java
@@ -0,0 +1,113 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.table.XTableRows;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+
+public class SwXTextTableRow extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+
+ XInterface oObj = null;
+ XTextTable oTable = null;
+
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "Creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory.getFactory( Param.getMSF() );
+
+ try {
+ log.println("creating a texttable");
+ oTable = SOfficeFactory.createTextTable(xTextDoc,5,5);
+ } catch( Exception e ) {
+ e.printStackTrace(log);
+ }
+
+ XText oText = xTextDoc.getText();
+
+ XTextCursor oCursor = oText.createTextCursor();
+
+ try {
+ log.println("inserting texttable");
+ oText.insertTextContent(oCursor, oTable, false);
+ } catch (Exception e) {
+ log.println("Exception!");
+ }
+
+ try {
+ log.println("getting table row");
+ XTableRows oTRn = oTable.getRows();
+ XIndexAccess oIA = UnoRuntime.queryInterface
+ (XIndexAccess.class,oTRn);
+ oObj = (XPropertySet) AnyConverter.toObject(
+ new Type(XPropertySet.class),oIA.getByIndex(1));
+ } catch( Exception e ) {
+ e.printStackTrace(log);
+ }
+
+ log.println( "creating a new environment for TextTableRow object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextTableRow
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextTables.java b/qadevOOo/tests/java/mod/_sw/SwXTextTables.java
new file mode 100644
index 000000000..28ad076e4
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextTables.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextTable;
+import com.sun.star.text.XTextTablesSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.container.XElementAccess
+ * @see com.sun.star.container.XIndexAccess
+ * @see com.sun.star.container.XNameAccess
+ *
+ */
+public class SwXTextTables extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+ int nRow = 4;
+ int nCol = 5;
+
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // get a soffice factory object
+ SOfficeFactory.getFactory( tParam.getMSF() );
+
+ // create testobject here
+ TestEnvironment tEnv = null;
+ XTextTable oTable = null;
+ oTable = SOfficeFactory.createTextTable( xTextDoc );
+ SOfficeFactory.insertTextContent(xTextDoc, oTable );
+
+ // Number two
+ XTextTable oTable2 = null;
+ oTable2 = SOfficeFactory.createTextTable( xTextDoc );
+ SOfficeFactory.insertTextContent(xTextDoc, oTable2 );
+
+ XMultiServiceFactory msf = UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDoc);
+ XTextTablesSupplier oTTSupp = UnoRuntime.queryInterface(XTextTablesSupplier.class, msf);
+ oObj = oTTSupp.getTextTables();
+
+ if ( oTable != null ) {
+ log.println("Creating instance...");
+ tEnv = new TestEnvironment(oObj);
+ }
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation( "TEXTDOC", xTextDoc );
+ tEnv.addObjRelation( "ROW", Integer.valueOf( nRow ) );
+ tEnv.addObjRelation( "COL", Integer.valueOf( nCol ) );
+ tEnv.addObjRelation( "INST", SOfficeFactory.createTextTable( xTextDoc ));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class SwXTextTables
+
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextView.java b/qadevOOo/tests/java/mod/_sw/SwXTextView.java
new file mode 100644
index 000000000..9c72b2f0d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextView.java
@@ -0,0 +1,254 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShape;
+import com.sun.star.lang.WrappedTargetException;
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.form.XForm;
+import com.sun.star.frame.XController;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.text.ControlCharacter;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextFrame;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XSearchDescriptor;
+import com.sun.star.util.XSearchable;
+import com.sun.star.view.XSelectionSupplier;
+import util.FormTools;
+import util.WriterTools;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.text.XTextViewCursorSupplier
+ * @see com.sun.star.view.XControlAccess
+ * @see com.sun.star.view.XSelectionSupplier
+ * @see com.sun.star.view.XViewSettingsSupplier
+ *
+ */
+public class SwXTextView extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ boolean debug = false;
+
+ /**
+ * in general this method creates a testdocument
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ debug = tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE);
+ }
+
+ /**
+ * in general this method disposes the testenvironment and document
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ *
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws com.sun.star.uno.Exception
+ {
+
+
+ // creation of testobject here
+ log.println( "creating a test environment" );
+
+ XController xContr = xTextDoc.getCurrentController();
+
+ TestEnvironment tEnv = new TestEnvironment(xContr);
+
+ util.dbg.getSuppServices(xContr);
+
+ SOfficeFactory SOF=SOfficeFactory.getFactory( tParam.getMSF() );
+ XTextFrame first =null;
+ XTextFrame second =null;
+
+ Object oFrame1 = null;
+ Object oFrame2 = null;
+ XText oText = xTextDoc.getText();
+ XTextCursor oCursor = oText.createTextCursor();
+ oFrame1 = SOF.createInstance
+ (xTextDoc, "com.sun.star.text.TextFrame" );
+ first = UnoRuntime.queryInterface
+ ( XTextFrame.class, oFrame1);
+ oText.insertTextContent(oCursor,first, false);
+ first.getText().setString("Frame 1");
+ oFrame2 = SOF.createInstance(xTextDoc, "com.sun.star.text.TextFrame" );
+ second = UnoRuntime.queryInterface
+ ( XTextFrame.class, oFrame2);
+ oText.insertTextContent(oCursor,second, false);
+ second.getText().setString("Frame 2");
+ oText.insertString( oCursor,
+ "SwXTextRanges...SwXTextRanges...SwXTextRanges", false);
+ oText.insertControlCharacter( oCursor,
+ ControlCharacter.PARAGRAPH_BREAK, false);
+ oText.insertString( oCursor,
+ "bla...bla...", false);
+
+ XSearchable oSearch = UnoRuntime.queryInterface
+ (XSearchable.class, xTextDoc);
+ XSearchDescriptor xSDesc = oSearch.createSearchDescriptor();
+ xSDesc.setSearchString("SwXTextRanges");
+ XIndexAccess textRanges1 = oSearch.findAll(xSDesc);
+
+ xSDesc.setSearchString("bla");
+ XIndexAccess textRanges2 = oSearch.findAll(xSDesc);
+
+ tEnv.addObjRelation("Selections", new Object[] {
+ oFrame1, oFrame2, textRanges1, textRanges2});
+ tEnv.addObjRelation("Comparer", new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XServiceInfo serv1 = UnoRuntime.queryInterface(XServiceInfo.class, o1);
+ XServiceInfo serv2 = UnoRuntime.queryInterface(XServiceInfo.class, o2);
+
+ String implName1 = serv1.getImplementationName();
+ String implName2 = serv2.getImplementationName();
+ if (!implName1.equals(implName2)) {
+ return -1;
+ }
+
+ XIndexAccess indAc1 = UnoRuntime.queryInterface(XIndexAccess.class, o1);
+ XIndexAccess indAc2 = UnoRuntime.queryInterface(XIndexAccess.class, o2);
+
+ if (indAc1 != null && indAc2 != null) {
+ int c1 = indAc1.getCount();
+ int c2 = indAc2.getCount();
+ return c1 == c2 ? 0 : 1;
+ }
+
+ XText text1 = UnoRuntime.queryInterface(XText.class, o1);
+ XText text2 = UnoRuntime.queryInterface(XText.class, o2);
+
+ if (text1 != null && text2 != null) {
+ return text1.getString().equals(text2.getString()) ? 0 : 1;
+ }
+
+ return -1;
+ }
+ });
+
+ XSelectionSupplier xsel = UnoRuntime.queryInterface(XSelectionSupplier.class,xContr);
+ xsel.select(second);
+
+ tEnv.addObjRelation("DOCUMENT",xTextDoc);
+ XForm myForm = null;
+ String kindOfControl="CommandButton";
+ XShape aShape = null;
+ log.println("adding control shape '" + kindOfControl + "'");
+ aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ kindOfControl);
+
+
+ log.println("adding relation for com.sun.star.view.XFormLayerAccess: XForm");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ try {
+
+ XDrawPage xDP = WriterTools.getDrawPage(xTextDoc);
+ if (xDP == null)
+ log.println("ERROR: could not get DrawPage");
+
+ XNameContainer xForms = FormTools.getForms(xDP);
+ if (xForms == null)
+ log.println("ERROR: could not get Forms");
+
+ log.println("the draw page contains following elements:");
+ String[] elements = FormTools.getForms(WriterTools.getDrawPage(xTextDoc)).getElementNames();
+ for (int i = 0; i< elements.length; i++){
+ log.println("Element[" + i + "] :" + elements[i]);
+ }
+
+ myForm = (XForm) AnyConverter.toObject(new Type(XForm.class), xForms.getByName("Standard"));
+ if (myForm == null){
+ log.println("ERROR: could not get 'Standard' from drawpage!");
+ if (debug){
+ log.println("the draw page contains following elements:");
+ }
+ }
+ else
+ tEnv.addObjRelation("XFormLayerAccess.XForm", myForm);
+ } catch (WrappedTargetException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ } catch (NoSuchElementException ex) {
+ log.println("ERROR: could not add ObjectRelation 'XFormLayerAccess.XForm': " + ex.toString());
+ }
+
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+} // finish class SwXTextView
diff --git a/qadevOOo/tests/java/mod/_sw/SwXTextViewCursor.java b/qadevOOo/tests/java/mod/_sw/SwXTextViewCursor.java
new file mode 100644
index 000000000..1ee16ff4e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXTextViewCursor.java
@@ -0,0 +1,107 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextViewCursorSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.beans.XPropertyState
+ * @see com.sun.star.document.XDocumentInsertable
+ * @see com.sun.star.style.CharacterProperties
+ * @see com.sun.star.style.ParagraphProperties
+ * @see com.sun.star.text.XPageCursor
+ * @see com.sun.star.text.XParagraphCursor
+ * @see com.sun.star.text.XSentenceCursor
+ * @see com.sun.star.text.XTextCursor
+ * @see com.sun.star.text.XTextRange
+ * @see com.sun.star.text.XWordCursor
+ * @see com.sun.star.util.XSortable
+ * @see com.sun.star.view.XScreenCursor
+ *
+ */
+public class SwXTextViewCursor extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+ oObj = xTextDoc.getCurrentController();
+
+ XTextViewCursorSupplier oTVCSupp = UnoRuntime.queryInterface(XTextViewCursorSupplier.class, oObj);
+
+ oObj = oTVCSupp.getViewCursor();
+
+ log.println( "creating a new environment for TextViewCursor object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+ tEnv.addObjRelation("XTEXT", xTextDoc.getText());
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class SwXTextViewCursor
diff --git a/qadevOOo/tests/java/mod/_sw/SwXViewSettings.java b/qadevOOo/tests/java/mod/_sw/SwXViewSettings.java
new file mode 100644
index 000000000..b1ea4407c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/SwXViewSettings.java
@@ -0,0 +1,97 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+ *
+ * initial description
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.text.ViewSettings
+ *
+ */
+public class SwXViewSettings extends TestCase {
+ XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ *
+ * @param tParam class which contains additional test parameters
+ * @param log class to log the test state and result
+ *
+ * @return Status class
+ *
+ * @see TestParameters
+ * @see PrintWriter
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) {
+
+ XInterface oObj = null;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ // create testobject here
+
+ oObj = xTextDoc.getCurrentController();
+ XViewSettingsSupplier oVSSupp = UnoRuntime.queryInterface(XViewSettingsSupplier.class, oObj);
+
+ oObj = oVSSupp.getViewSettings();
+
+ log.println( "creating a new environment for ViewSettings object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ log.println( "adding TextDocument as mod relation to environment" );
+ tEnv.addObjRelation("TEXTDOC", xTextDoc);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+
+} // finish class SwXViewSettings
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLContentExporter.java b/qadevOOo/tests/java/mod/_sw/XMLContentExporter.java
new file mode 100644
index 000000000..e05a117a0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLContentExporter.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLContentExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLContentExporter extends TestCase {
+ XTextDocument xTextDoc;
+ ContentFilterChecker Filter;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLContentExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The text document is set as a source document for exporter
+ * created. A string inserted into document. This made
+ * for checking if this string is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ final String CONTENT = "XMLContentExporter";
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ Filter = new ContentFilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Writer.XMLContentExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xTextDoc);
+
+ // text added to the document
+ XSimpleText aText = xTextDoc.getText();
+ XTextCursor curs = aText.createTextCursor();
+ aText.insertString(curs, CONTENT, false);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag("office:document-content") ;
+ Filter.addTagEnclosed("office:body", "office:document-content") ;
+ Filter.addTagEnclosed("office:script", "office:document-content") ;
+ Filter.addTagEnclosed("office:body", "office:document-content") ;
+ Filter.addCharactersEnclosed(CONTENT, "text:p") ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"swriter: StarOffice XML (Writer)"}));
+ tEnv.addObjRelation("SourceDocument",xTextDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class ContentFilterChecker extends XMLTools.XMLTagsChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private ContentFilterChecker(PrintWriter log) {
+ super(log) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return checkTags();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLContentImporter.java b/qadevOOo/tests/java/mod/_sw/XMLContentImporter.java
new file mode 100644
index 000000000..e10549ced
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLContentImporter.java
@@ -0,0 +1,157 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Writer.XMLContentImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLContentImporter extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Text document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Writer.XMLContentImporter</code><p>
+ *
+ * The text document is set as a target document for importer.
+ * Imported XML-data contains only content tags including test text.
+ * After import text getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impText = "XMLContentImporter test." ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Writer.XMLContentImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xTextDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-content",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text"
+ },
+ {"start", "office:body"},
+ {"start", "text:p"},
+ {"chars", impText},
+ {"end", "text:p"},
+ {"end", "office:body"},
+ {"end", "office:document-content"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final XTextDocument textDoc = UnoRuntime.queryInterface
+ (XTextDocument.class, xTextDoc) ;
+ final PrintWriter fLog = log ;
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String docText = textDoc.getText().getString() ;
+ fLog.println("Document text returned = '" + docText + "'") ;
+ return impText.equals(docText) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLExporter.java b/qadevOOo/tests/java/mod/_sw/XMLExporter.java
new file mode 100644
index 000000000..4cee8fb68
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLExporter.java
@@ -0,0 +1,181 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ XTextDocument xTextDoc;
+ FilterChecker Filter;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The text document is set as a source document for exporter
+ * created. A string inserted into document. This made
+ * for checking if this string is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ final String TEST_STR = "XMLExporter";
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ Filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),Filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Writer.XMLExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xTextDoc);
+
+ XSimpleText aText = xTextDoc.getText();
+ XTextCursor curs = aText.createTextCursor();
+ aText.insertString(curs, TEST_STR, false);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag("office:document") ;
+ Filter.addTagEnclosed("office:meta", "office:document") ;
+ Filter.addTagEnclosed("office:settings", "office:document") ;
+ Filter.addTagEnclosed("office:script", "office:document") ;
+ Filter.addTagEnclosed("office:styles", "office:document") ;
+ Filter.addTagEnclosed("office:body", "office:document") ;
+ Filter.addCharactersEnclosed(TEST_STR, "text:p") ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"swriter: StarOffice XML (Writer)"}));
+ tEnv.addObjRelation("SourceDocument",xTextDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter) ;
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLTagsChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return checkTags() ;
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLImporter.java b/qadevOOo/tests/java/mod/_sw/XMLImporter.java
new file mode 100644
index 000000000..92291cde6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLImporter.java
@@ -0,0 +1,153 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XImporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Writer.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Text document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Writer.XMLImporter</code><p>
+ *
+ * The text document is set as a target document for importer.
+ * Imported tags contain tag including tag with test text.
+ * After import text getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ oObj = (XInterface) xMSF.createInstance
+ ("com.sun.star.comp.Writer.XMLImporter");
+ XImporter xIm = UnoRuntime.queryInterface
+ (XImporter.class,oObj);
+ xIm.setTargetDocument(xTextDoc);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ final String impText = "XMLImporter test." ;
+ String[][] xml = new String[][] {
+ {"start", "office:document" ,
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "office:class", "CDATA", "text",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text"},
+ {"start", "office:body" },
+ {"start", "text:p" },
+ {"chars", impText},
+ {"end", "text:p"},
+ {"end", "office:body"},
+ {"end", "office:document"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ tEnv.addObjRelation("TargetDocument",xTextDoc);
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ final XTextDocument textDoc = UnoRuntime.queryInterface
+ (XTextDocument.class, xTextDoc) ;
+ final PrintWriter fLog = log ;
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String docText = textDoc.getText().getString() ;
+ fLog.println("Document text returned = '" + docText + "'") ;
+ return impText.equals(docText) ;
+ }
+ }) ;
+
+ return tEnv;
+
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLMetaExporter.java b/qadevOOo/tests/java/mod/_sw/XMLMetaExporter.java
new file mode 100644
index 000000000..7c4b7df26
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLMetaExporter.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLMetaExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLMetaExporter extends TestCase {
+
+ XTextDocument xTextDoc;
+ MetaFilterChecker Filter;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLMetaExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The text document is set as a source document for exporter
+ * created. The 'Title' metadata property is set to a value. This made
+ * for checking if this property is successfully exported within
+ * the document metadata.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters tParam, PrintWriter log ) throws Exception {
+ final String TITLE = "Title for testing of XMLMetaExporter";
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ Filter = new MetaFilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Writer.XMLMetaExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xTextDoc);
+
+ //set some meta data
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xTextDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ xDocProps.setTitle(TITLE);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag("office:document-meta");
+ Filter.addTagEnclosed("office:meta", "office:document-meta");
+ Filter.addCharactersEnclosed(TITLE, "dc:title");
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"swriter: StarOffice XML (Writer)"}));
+ tEnv.addObjRelation("SourceDocument", xTextDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class MetaFilterChecker extends XMLTools.XMLTagsChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private MetaFilterChecker(PrintWriter log) {
+ super(log) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return checkTags();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLMetaImporter.java b/qadevOOo/tests/java/mod/_sw/XMLMetaImporter.java
new file mode 100644
index 000000000..354444f82
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLMetaImporter.java
@@ -0,0 +1,161 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Writer.XMLMetaImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLMetaImporter extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Text document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Writer.XMLMetaImporter</code><p>
+ *
+ * The text document is set as a target document for importer.
+ * Imported XML-data contains only meta tags including
+ * title tag with test name.
+ * After import title name getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impTitle = "XMLMetaImporter test." ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Writer.XMLMetaImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xTextDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-meta" ,
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:dc", "CDATA", "http://purl.org/dc/elements/1.1/"},
+ {"start", "office:meta"} ,
+ {"start", "dc:title"},
+ {"chars", impTitle},
+ {"end", "dc:title"},
+ {"end", "office:meta"},
+ {"end", "office:document-meta"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xTextDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String title = xDocProps.getTitle();
+ logF.println("Title returned = '" + title + "'") ;
+ return impTitle.equals(title) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLSettingsExporter.java b/qadevOOo/tests/java/mod/_sw/XMLSettingsExporter.java
new file mode 100644
index 000000000..f736f5869
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLSettingsExporter.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.frame.XController;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLSettingsExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLSettingsExporter extends TestCase {
+
+ XTextDocument xTextDoc;
+ SettingsFilterChecker Filter;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLSettingsExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The text document is set as a source document for exporter
+ * created. New document zoom is set as one of the 'View' settings. This made
+ * for checking if this setting is successfully exported within
+ * the document settings.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ final short ZOOM = 50;
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ Filter = new SettingsFilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Writer.XMLSettingsExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xTextDoc);
+
+ //set some settings
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class,
+ xController);
+ XPropertySet xPropSet = xViewSetSup.getViewSettings();
+ xPropSet.setPropertyValue("ZoomValue", Short.valueOf(ZOOM));
+
+ // adding tags which must be contained in XML output
+ Filter.addTag( new XMLTools.Tag("office:document-settings") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:settings"),
+ new XMLTools.Tag("office:document-settings") );
+ Filter.addCharactersEnclosed(
+ String.valueOf(ZOOM),
+ new XMLTools.Tag("config:config-item",
+ "config:name", "ZoomFactor") );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"swriter: StarOffice XML (Writer)"}));
+ tEnv.addObjRelation("SourceDocument",xTextDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter);
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class SettingsFilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private SettingsFilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLSettingsImporter.java b/qadevOOo/tests/java/mod/_sw/XMLSettingsImporter.java
new file mode 100644
index 000000000..0c10e971a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLSettingsImporter.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XViewSettingsSupplier;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Writer.XMLSettingsImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLSettingsImporter extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Text document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Writer.XMLSettingsImporter</code><p>
+ *
+ * The text document is set as a target document for importer.
+ * Imported XML-data contains only settings tags including
+ * title tag with test zoom factor.
+ * After import zoom factor getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final short impZoom = 50 ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Writer.XMLSettingsImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xTextDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-settings",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:config", "CDATA", "http://openoffice.org/2001/config",
+ "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink",
+ },
+ {"start", "office:settings"},
+ {"start", "config:config-item-set",
+ "config:name", "CDATA", "view-settings"
+ },
+ {"start", "config:config-item-map-indexed",
+ "config:name", "CDATA", "Views"},
+ {"start", "config:config-item-map-entry"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ZoomFactor",
+ "config:type", "CDATA", "short"
+ },
+ {"chars", String.valueOf(impZoom)},
+ {"end", "config:config-item"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "ZoomType",
+ "config:type", "CDATA", "short"
+ },
+ {"chars", "0"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item-map-entry"},
+ {"end", "config:config-item-map-indexed"},
+ {"end", "config:config-item-set"},
+ {"end", "office:settings"},
+ {"end", "office:document-settings"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+ XController xController = xTextDoc.getCurrentController();
+ XViewSettingsSupplier xViewSetSup = UnoRuntime.queryInterface(XViewSettingsSupplier.class, xController);
+ final XPropertySet xPropSet = xViewSetSup.getViewSettings();
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ Short gValue = (Short)
+ xPropSet.getPropertyValue("ZoomValue");
+ logF.println("ZoomValue property value = " + gValue) ;
+ return impZoom == gValue.shortValue() ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception while checking import :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_sw/XMLStylesExporter.java
new file mode 100644
index 000000000..f676430dd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLStylesExporter.java
@@ -0,0 +1,180 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnotesSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Calc.XMLStylesExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLStylesExporter extends TestCase {
+
+ XTextDocument xTextDoc;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /*
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Calc.XMLStylesExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The text document is set as a source document for exporter
+ * created. Footnote property 'Prefix' is set to a new value. This made
+ * for checking if this property value is successfully exported within
+ * the document styles.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log) ;
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Writer.XMLStylesExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface
+ (XExporter.class,oObj);
+ xEx.setSourceDocument(xTextDoc);
+
+ // Checking Head Tag existence and that property has changed
+ filter.addTag(new XMLTools.Tag ("office:document-styles"));
+ filter.addTag(new XMLTools.Tag ("text:footnotes-configuration",
+ "style:num-prefix","New Property")) ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Obtain Footnotes properties
+ XFootnotesSupplier supp = UnoRuntime.queryInterface
+ (XFootnotesSupplier.class, xTextDoc);
+ XPropertySet set = supp.getFootnoteSettings();
+
+ // Change property "Prefix"
+ set.setPropertyValue("Prefix","New Property");
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"swriter: StarOffice XML (Writer)"}));
+ tEnv.addObjRelation("SourceDocument",xTextDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,false) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_sw/XMLStylesImporter.java
new file mode 100644
index 000000000..c51f1d2e0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/XMLStylesImporter.java
@@ -0,0 +1,169 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XFootnotesSupplier;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Writer.XMLStylesImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLStylesImporter extends TestCase {
+ XTextDocument xTextDoc;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+
+ log.println( "creating a textdocument" );
+ xTextDoc = SOF.createTextDoc( null );
+ }
+
+ /**
+ * Text document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xTextDoc " );
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Writer.XMLStylesImporter</code><p>
+ *
+ * The text document is set as a target document for importer.
+ * Imported XML-data contains only style tags including
+ * title tag with test prefix.
+ * After import prefixes getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters tParam,
+ PrintWriter log )
+ throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impPrefix = "Prefix" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Writer.XMLStylesImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xTextDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-styles",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:style", "CDATA", "http://openoffice.org/2000/style",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text"
+ },
+ {"start", "office:styles"},
+ {"start", "text:footnotes-configuration",
+ "style:num-prefix", "CDATA", impPrefix},
+ {"end", "text:footnotes-configuration"},
+ {"end", "office:styles"},
+ {"end", "office:document-styles"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XFootnotesSupplier supp = UnoRuntime.queryInterface
+ (XFootnotesSupplier.class, xTextDoc);
+ final XPropertySet set = supp.getFootnoteSettings();
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ String prefix = (String) set.getPropertyValue("Prefix");
+ logF.println("Prefix returned = '" + prefix + "'") ;
+ return impPrefix.equals(prefix) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_sw/package.html b/qadevOOo/tests/java/mod/_sw/package.html
new file mode 100644
index 000000000..3be3b188f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sw/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'sw'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_sysdtrans/SystemClipboard.java b/qadevOOo/tests/java/mod/_sysdtrans/SystemClipboard.java
new file mode 100644
index 000000000..f70dcd961
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sysdtrans/SystemClipboard.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._sysdtrans;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+public class SystemClipboard extends TestCase {
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.datatransfer.clipboard.SystemClipboard");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_sysdtrans/package.html b/qadevOOo/tests/java/mod/_sysdtrans/package.html
new file mode 100644
index 000000000..a530c6b12
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_sysdtrans/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'sysdtrans'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_syssh/SystemShellExecute.java b/qadevOOo/tests/java/mod/_syssh/SystemShellExecute.java
new file mode 100644
index 000000000..08b0af7dd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_syssh/SystemShellExecute.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._syssh;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+public class SystemShellExecute extends TestCase {
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.system.SystemShellExecute");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_tcv/TypeConverter.java b/qadevOOo/tests/java/mod/_tcv/TypeConverter.java
new file mode 100644
index 000000000..e0019b8ea
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_tcv/TypeConverter.java
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._tcv;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+public class TypeConverter extends TestCase {
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws StatusException {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance( "com.sun.star.script.Converter" );
+ }
+ catch( Exception e ) {
+ log.println("Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class TypeConverter
+
diff --git a/qadevOOo/tests/java/mod/_tcv/package.html b/qadevOOo/tests/java/mod/_tcv/package.html
new file mode 100644
index 000000000..45007682b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_tcv/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'tcv'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_tdmgr/TypeDescriptionManager.java b/qadevOOo/tests/java/mod/_tdmgr/TypeDescriptionManager.java
new file mode 100644
index 000000000..f2e2a2831
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_tdmgr/TypeDescriptionManager.java
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._tdmgr;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+
+public class TypeDescriptionManager extends TestCase {
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws StatusException {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, xMSF);
+ // get context
+ XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class,
+ xProp.getPropertyValue("DefaultContext"));
+ // get the type description manager from context
+ oInterface = xContext.getValueByName("/singletons/" +
+ "com.sun.star.reflection.theTypeDescriptionManager");
+ }
+ catch( Exception e ) {
+ log.println("Introspection Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+
+
+ log.println( " creating a new environment for Introspection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Object relation for XHierarchicalNameAccess ifc
+ // Name of the existing object
+ tEnv.addObjRelation("ElementName", "com.sun.star.container.XNameAccess") ;
+ tEnv.addObjRelation("SearchString", "com.sun.star.loader");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class TypeDescriptionManager
+
diff --git a/qadevOOo/tests/java/mod/_tdmgr/package.html b/qadevOOo/tests/java/mod/_tdmgr/package.html
new file mode 100644
index 000000000..277a28045
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_tdmgr/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'tdmgr'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_text/DefaultNumberingProvider.java b/qadevOOo/tests/java/mod/_text/DefaultNumberingProvider.java
new file mode 100644
index 000000000..a673cba8d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_text/DefaultNumberingProvider.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._text;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.text.DefaultNumberingProvider</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::text::XDefaultNumberingProvider</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see ifc.text._DefaultNumberingProvider
+* @see ifc.text._XDefaultNumberingProvider
+*/
+public class DefaultNumberingProvider extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.text.DefaultNumberingProvider</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ("com.sun.star.text.DefaultNumberingProvider" );
+
+ oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleButton.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleButton.java
new file mode 100644
index 000000000..299e366dc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleButton.java
@@ -0,0 +1,195 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+ * Object implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul>
+ * <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleButton extends lib.TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+
+ /**
+ * Opens 'Printer Settings' dialog using document dispatch provider running
+ * in a separate thread. Finds active top window (the dialog window) and
+ * finds accessible button 'OK' walking through the accessible component
+ * tree.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XMultiServiceFactory msf = Param.getMSF();
+
+ oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,
+ oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // Opening PrinterSetupDialog
+ String aSlotID = ".uno:Zoom";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ msf.createInstance("com.sun.star.util.URLTransformer"));
+
+ // Because it's an in/out parameter
+ // we must use an array of URL objects.
+ URL[] aParseURL = new URL[] { new URL() };
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+
+ XDispatch xDispatcher = xDispProv.queryDispatch(aParseURL[0], "", 0);
+ if (xDispatcher != null) {
+ xDispatcher.dispatch(aParseURL[0], null);
+ }
+
+ util.utils.waitForEventIdle(msf);
+
+ Object atw = tk.getActiveTopWindow();
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class, atw);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot,
+ Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON, "Cancel");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ action = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+
+ tEnv.addObjRelation(
+ "EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ System.out.println("Grabbing focus ... ");
+ acomp.grabFocus();
+ }
+ });
+
+ XAccessibleText text = UnoRuntime.queryInterface(XAccessibleText.class,
+ oObj);
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this component");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the dialog using accessible button 'OK' found in
+ * <code>createTestEnvironment()</code>.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Opens new writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log)
+ throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleCheckBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleCheckBox.java
new file mode 100644
index 000000000..8c737225a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleCheckBox.java
@@ -0,0 +1,207 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+ * Test for object which is represented by accessible component of check box in
+ * 'InsertTable' dialog.
+ * <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul>
+ * <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleCheckBox extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+
+ /**
+ * Opens 'Insert Table' dialog using document dispatch provider running in a
+ * separate thread. Finds active top window (the dialog window) and finds
+ * first accessible check box walking through the accessible component tree.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory msf = Param.getMSF();
+ log.println("Creating text document");
+
+ if (xTextDoc == null) {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XInterface oObj = null;
+
+ log.println("getting toolkit");
+
+ oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,
+ oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ log.println("Opening Dialog in second thread");
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // Opening PrinterSetupDialog
+ String aSlotID = ".uno:InsertTable";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ msf.createInstance("com.sun.star.util.URLTransformer"));
+
+ // Because it's an in/out parameter we must use an array of URL
+ // objects.
+ URL[] aParseURL = new URL[] { new URL() };
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+
+ XDispatch xDispatcher = xDispProv.queryDispatch(aParseURL[0], "", 0);
+ if (xDispatcher != null) {
+ xDispatcher.dispatch(aParseURL[0], null);
+ }
+
+ util.utils.waitForEventIdle(msf);
+
+ log.println("Getting the active TopWindow");
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot,
+ Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON, "Cancel");
+
+ action = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.CHECK_BOX);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+
+ tEnv.addObjRelation(
+ "EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ System.out.println("Grabbing focus ... ");
+ acomp.grabFocus();
+ }
+ });
+
+ XAccessibleText text = UnoRuntime.queryInterface(XAccessibleText.class,
+ oObj);
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this component");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the dialog using accessible button 'Cancel' found in
+ * <code>createTestEnvironment()</code>.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try {
+ log.println("closing dialog");
+ action.doAccessibleAction(0);
+ log.println("closing the document");
+ util.DesktopTools.closeDoc(xTextDoc);
+ log.println("reinitialize the variable");
+ xTextDoc = null;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleComboBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleComboBox.java
new file mode 100644
index 000000000..5e04b73da
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleComboBox.java
@@ -0,0 +1,194 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+/**
+ * Test for object which is represented by accessible component of the 'Font'
+ * combo box in Format->Character... dialog box.
+ * <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li>
+ * <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul>
+ * <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleComboBox extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+
+ /**
+ * Opens CharacterStyle dialog and finds AccessibleComboBox walking through
+ * the accessible component tree.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,
+ oObj);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XController xController = aModel.getCurrentController();
+
+ // Opening PrinterSetupDialog
+ String aSlotID = ".uno:FontDialog";
+ XDispatchProvider xDispProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class, xController);
+ XURLTransformer xParser = UnoRuntime.queryInterface(
+ XURLTransformer.class,
+ Param.getMSF().createInstance(
+ "com.sun.star.util.URLTransformer"));
+
+ // Because it's an in/out parameter we must use an array of URL
+ // objects.
+ URL[] aParseURL = new URL[] { new URL() };
+ aParseURL[0].Complete = aSlotID;
+ xParser.parseStrict(aParseURL);
+
+ XDispatch xDispatcher = xDispProv.queryDispatch(aParseURL[0], "", 0);
+ if (xDispatcher != null) {
+ xDispatcher.dispatch(aParseURL[0], null);
+ }
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ Object atw = tk.getActiveTopWindow();
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class, atw);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON, "Cancel");
+ action = UnoRuntime.queryInterface(XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PAGE_TAB_LIST);
+
+ XAccessibleSelection xAccSel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class, oObj);
+
+ try {
+ xAccSel.selectAccessibleChild(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ AccessibilityTools.printAccessibleTree(log, xRoot,
+ Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PANEL, "", "AccessibleComboBox");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+ final XAccessibleComponent acomp1 = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, action);
+
+ tEnv.addObjRelation(
+ "EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acomp1.grabFocus();
+ acomp.grabFocus();
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Closes the dialog using accessible button 'Cancel' found in
+ * <code>createTestEnvironment()</code>.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" closing dialog ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creates writer doc
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log)
+ throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownComboBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownComboBox.java
new file mode 100644
index 000000000..d1b465c0e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownComboBox.java
@@ -0,0 +1,123 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XWindow;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by accessible component
+ * of the URL locator combo box located in the left upper corner
+ * of a document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleDropDownComboBox extends TestCase {
+ private static XTextDocument xTextDoc = null;
+
+ /**
+ * Finds AccessibleDropDownComboBox walking through the
+ * accessible component tree of a writer document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(
+ xTextDoc);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.COMBO_BOX,
+ "", "AccessibleDropDownComboBox");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleAction editAction = UnoRuntime.queryInterface(
+ XAccessibleAction.class,
+ oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ editAction.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Creates writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownListBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownListBox.java
new file mode 100644
index 000000000..7adcc1c2e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownListBox.java
@@ -0,0 +1,127 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XWindow;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.AccessibilityTools;
+import util.DesktopTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by style list box
+ * on toolbar of a document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleDropDownListBox extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ /**
+ * Finds AccessibleDropDownListBox walking through the
+ * accessible component tree of a writer document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(
+ xTextDoc);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.COMBO_BOX,
+ "", "AccessibleDropDownListBox");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleAction acomp = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ acomp.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ throw new StatusException("Can't perform action 0", e);
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Creates writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ // Dock the Navigator to supply an AccessibleDropDownListBox
+ DesktopTools.dockNavigator(Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleEdit.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleEdit.java
new file mode 100644
index 000000000..d28592b6c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleEdit.java
@@ -0,0 +1,194 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by edit field
+ * of 'Insert Hyperlink' dialog. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEditableText</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEditableText
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleEditableText
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleEdit extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+
+ /**
+ * Opens 'Insert Hyperlink' dialog using document dispatch provider.
+ * Finds active top window (the dialog
+ * window) and finds first accessible edit field and
+ * button 'Close' (for closing this dialog when disposing)
+ * walking through the accessible component tree.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening HyperlinkDialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PUSH_BUTTON,
+ "Close");
+ action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TEXT);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleEditableText edText = UnoRuntime.queryInterface(
+ XAccessibleEditableText.class,
+ oObj);
+ edText.setText("AccessibleEdit");
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ edText.setText("firing event ...");
+ edText.setText("firing event ... 2");
+ edText.setText("AccessibleEdit");
+ }
+ });
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("XAccessibleEditableText.hasAttr", Boolean.FALSE);
+
+ return tEnv;
+ }
+
+ /**
+ * Closes dialog using action of button 'Close'
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog ... ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creates writer document
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
new file mode 100644
index 000000000..f7a756685
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
@@ -0,0 +1,189 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XFixedText;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XLayoutConstrains;
+import com.sun.star.awt.Size;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by accessible component
+ * of the fixed text label in 'Hyperlink' Dialog. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleFixedText extends TestCase {
+ private static XWindow xWinDlg = null;
+
+ /**
+ * Creates a new dialog adds fixed text control to it and
+ * displays it. Then the text's accessible component is
+ * obtained.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XControlModel dlgModel = null;
+
+ XControl txtControl = null;
+ XControlModel txtModel = null;
+
+ try {
+ dlgModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlDialogModel"));
+
+ XControl dlgControl = UnoRuntime.queryInterface(
+ XControl.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlDialog"));
+
+ dlgControl.setModel(dlgModel);
+
+ txtModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlFixedTextModel"));
+
+ txtControl = UnoRuntime.queryInterface(XControl.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlFixedText"));
+
+ txtControl.setModel(txtModel);
+
+ XFixedText xFT = UnoRuntime.queryInterface(
+ XFixedText.class, txtControl);
+ xFT.setText("FxedText");
+
+ /* Set the text control to its preferred size, otherwise it
+ * defaults to the size hard coded in its constructor (100 x 12) */
+ XLayoutConstrains xLCTxt = UnoRuntime.queryInterface(
+ XLayoutConstrains.class, txtControl);
+ Size textSize = xLCTxt.getPreferredSize();
+ XWindow xWinTxt = UnoRuntime.queryInterface(
+ XWindow.class, txtControl);
+ xWinTxt.setPosSize(0, 0, textSize.Width, textSize.Height,
+ PosSize.SIZE);
+
+ XControlContainer ctrlCont = UnoRuntime.queryInterface(
+ XControlContainer.class,
+ dlgControl);
+
+ ctrlCont.addControl("Text", txtControl);
+
+ xWinDlg = UnoRuntime.queryInterface(XWindow.class,
+ dlgControl);
+
+ xWinDlg.setVisible(true);
+
+ xWinDlg.setPosSize(0, 0, 200, 100, PosSize.SIZE);
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error creating dialog :");
+ e.printStackTrace(log);
+ }
+
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWinDlg);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.LABEL);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XWindow xWin = UnoRuntime.queryInterface(XWindow.class,
+ txtControl);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ xWin.setEnable(false);
+ xWin.setEnable(true);
+ }
+ });
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this component");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ return tEnv;
+ }
+
+ /**
+ * Closes dialog using action of button 'Close'
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog ... ");
+ if (xWinDlg != null)
+ xWinDlg.dispose();
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleList.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleList.java
new file mode 100644
index 000000000..f88b7dbe1
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleList.java
@@ -0,0 +1,191 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+public class AccessibleList extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+ private static XMultiServiceFactory msf = null;
+
+ /**
+ * Opens 'Insert Hyperlink' dialog using document dispatch provider.
+ * Finds active top window (the dialog
+ * window) and finds button 'Close' (for closing this dialog when
+ * disposing) walking through the accessible component tree.
+ * Then the TREE component is found and the 'New Document' tab is
+ * selected to make list box visible. After that list box is obtained.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) msf.createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening HyperlinkDialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ // obtaining 'Close' button
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PUSH_BUTTON,
+ "Close");
+ action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ // Selecting 'New Document' tab
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TREE);
+
+ XAccessibleSelection xAccSel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ oObj);
+ xAccSel.selectAccessibleChild(3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ log.println("# Getting the ListBox");
+
+ XAccessibleContext parent = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PANEL,
+ "",
+ "com.sun.star.comp.toolkit.AccessibleListBox");
+
+ log.println("# Getting the first child");
+
+ try {
+ oObj = parent.getAccessibleChild(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ oObj);
+ final XAccessibleComponent acomp1 = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ action);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ System.out.println("Grabbing focus ... ");
+ acomp1.grabFocus();
+ acomp.grabFocus();
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Closes dialog using action of button 'Close'
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog ... ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creates writer document
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ msf = Param.getMSF();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xTextDoc = SOF.createTextDoc(null);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleListBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleListBox.java
new file mode 100644
index 000000000..dcbef787f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleListBox.java
@@ -0,0 +1,205 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented accessible component
+ * of 'File type' list box situated in 'Insert Hyperlink'
+ * dialog on tab 'New Document'. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleListBox extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+
+ /**
+ * Opens 'Insert Hyperlink' dialog using document dispatch provider.
+ * Finds active top window (the dialog
+ * window) and finds button 'Close' (for closing this dialog when
+ * disposing) walking through the accessible component tree.
+ * Then the TREE component is found and the 'New Document' tab is
+ * selected to make list box visible. After that list box is obtained.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening HyperlinkDialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+
+ // obtaining 'Close' button
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PUSH_BUTTON,
+ "Close");
+ action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ // Selecting 'New Document' tab
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TREE);
+
+ XAccessibleSelection xAccSel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ oObj);
+ xAccSel.selectAccessibleChild(3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL, "",
+ "com.sun.star.comp.toolkit.AccessibleListBox");
+
+ Object list = AccessibilityTools.getAccessibleObjectForRole(AccessibilityTools.SearchedAccessible,
+ AccessibleRole.LIST);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ list);
+ final XAccessibleComponent acomp1 = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ action);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ System.out.println("Grabbing focus ... ");
+ acomp1.grabFocus();
+ acomp.grabFocus();
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Closes dialog using action of button 'Close'
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog ... ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creates writer document
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleListItem.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleListItem.java
new file mode 100644
index 000000000..58726c366
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleListItem.java
@@ -0,0 +1,197 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented accessible component
+ * of 'File type' list box item situated in 'Insert Hyperlink'
+ * dialog on tab 'New Document'. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleListItem extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XAccessibleAction action = null;
+
+ /**
+ * Opens 'Insert Hyperlink' dialog using document dispatch provider.
+ * Finds active top window (the dialog
+ * window) and finds button 'Close' (for closing this dialog when
+ * disposing) walking through the accessible component tree.
+ * Then the TREE component is found and the 'New Document' tab is
+ * selected to make list box visible. After that listbox item is obtained.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory msf = Param.getMSF();
+ XInterface oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) msf.createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening HyperlinkDialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ // obtaining 'Close' button
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PUSH_BUTTON,
+ "Close");
+ action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ // Selecting 'New Document' tab
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TREE);
+
+ XAccessibleSelection xAccSel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ oObj);
+ xAccSel.selectAccessibleChild(3);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.LIST_ITEM,"Spr");
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this component");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ oObj);
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acomp.grabFocus();
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Closes dialog using action of button 'Close'
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println(" Closing dialog ... ");
+
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ioe) {
+ log.println("Couldn't close dialog");
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Dialog already disposed");
+ }
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creates writer document
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java
new file mode 100644
index 000000000..b050f6108
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java
@@ -0,0 +1,158 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented accessible component of
+ * main menu of a document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleText
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleMenu extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ /**
+ * Finds accessible component with role <code>MENU</code>
+ * walking through the accessible component tree of a document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(final TestParameters Param,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory msf = Param.getMSF();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XAccessibleContext menubar = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.MENU_BAR);
+ XInterface oObj = null;
+ Object menu2 = null;
+
+ try {
+ oObj = menubar.getAccessibleChild(2);
+ menu2 = menubar.getAccessibleChild(1);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleAction act1 = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+ final XAccessibleAction act2 = UnoRuntime.queryInterface(
+ XAccessibleAction.class, menu2);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ act2.doAccessibleAction(0);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ act1.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ });
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("EditOnly", "Can't change or select Text in Menu");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ tEnv.addObjRelation("XAccessibleSelection.OneAlwaysSelected",
+ Boolean.FALSE);
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ return tEnv;
+ }
+
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try {
+ util.DesktopTools.closeDoc(xTextDoc);
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Object already disposed");
+ }
+ }
+
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java
new file mode 100644
index 000000000..d50050394
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented accessible component of
+ * menu bar of a document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleSelection</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleMenuBar extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ /**
+ * Finds accessible component with role <code>MENUBAR</code>
+ * walking through the accessible component tree of a document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XInterface oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.MENU_BAR);
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ System.out.println("Grabbing focus ... ");
+ acomp.grabFocus();
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleSelection.OneAlwaysSelected",
+ Boolean.FALSE);
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ return tEnv;
+ }
+
+ /**
+ * Creates writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuItem.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuItem.java
new file mode 100644
index 000000000..0e9fa36ea
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuItem.java
@@ -0,0 +1,165 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by accessible component
+ * of a menu item in main menu of a document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleMenuItem extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XMultiServiceFactory msf = null;
+
+ /**
+ * Finds first accessible component with role <code>MENUITEM</code>
+ * walking through the accessible component tree of a document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ Object atw = tk.getActiveTopWindow();
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ atw);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XAccessibleContext MenuBar = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.MENU_BAR);
+
+ try {
+ //activate Edit-Menu
+ XAccessible Menu = MenuBar.getAccessibleChild(1);
+ XAccessibleAction act = UnoRuntime.queryInterface(
+ XAccessibleAction.class, Menu);
+ act.doAccessibleAction(0);
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ //get a menu-item
+ oObj = Menu.getAccessibleContext().getAccessibleChild(11);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleAction action = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ });
+
+ XAccessibleText text = UnoRuntime.queryInterface(
+ XAccessibleText.class, oObj);
+
+ tEnv.addObjRelation("XAccessibleText.Text", text.getText());
+
+ tEnv.addObjRelation("EditOnly",
+ "Can't change or select Text in MenuBarItem");
+
+ tEnv.addObjRelation("Destroy", Boolean.TRUE);
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ return tEnv;
+ }
+
+ /**
+ * Creates writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ msf = Param.getMSF();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java
new file mode 100644
index 000000000..48e14436f
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+import util.utils;
+
+
+/**
+ * Test for object which is represented by accessible component
+ * of a menu separator in main menu of a document. <p>
+ *
+ * Object implements the following interfaces :
+ * <ul>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleEventBroadcaster</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li> <code>::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleContext
+ */
+public class AccessibleMenuSeparator extends TestCase {
+ private static XTextDocument xTextDoc = null;
+ private static XMultiServiceFactory msf = null;
+
+ /**
+ * Finds first accessible component with role <code>SEPARATOR</code>
+ * and implementation name <code>AccessibleMenuSeparator</code>
+ * walking through the accessible component tree of a document.
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XAccessibleContext MenuBar = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.MENU_BAR);
+ XAccessibleAction act = null;
+ XInterface oObj = null;
+
+ try {
+ //activate Edit-Menu
+ XAccessible Menu = MenuBar.getAccessibleChild(1);
+ act = UnoRuntime.queryInterface(
+ XAccessibleAction.class, Menu);
+ act.doAccessibleAction(0);
+
+ util.utils.waitForEventIdle(Param.getMSF());
+
+ //get a menu-separator
+ oObj = Menu.getAccessibleContext().getAccessibleChild(3);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+
+ log.println("ImplementationName " + utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleAction aAct = act;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ aAct.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+ /**
+ * Creates writer document.
+ */
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ msf = Param.getMSF();
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessiblePopupMenu.java b/qadevOOo/tests/java/mod/_toolkit/AccessiblePopupMenu.java
new file mode 100644
index 000000000..ed60cb7dc
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessiblePopupMenu.java
@@ -0,0 +1,191 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+public class AccessiblePopupMenu extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static Point point;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+
+ log.println("release the popup menu");
+ try {
+ Robot rob = new Robot();
+ int x = point.X;
+ int y = point.Y;
+ rob.mouseMove(x, y);
+ rob.mousePress(InputEvent.BUTTON1_MASK);
+ rob.mouseRelease(InputEvent.BUTTON1_MASK);
+ } catch (java.awt.AWTException e) {
+ log.println("couldn't press mouse button");
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a text document. Then obtains an accessible object with the role
+ * <code>AccessibleRole.PUSHBUTTON</code> and with the name
+ * <code>"Bold"</code>. Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}</li>
+ * <li> <code>'XAccessibleText.Text'</code> for
+ * {@link ifc.accessibility._XAccessibleText}: the name of button</li>
+ * </ul>
+ *
+ * @param tParam
+ * test parameters
+ * @param log
+ * writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception{
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF());
+
+ XInterface toolkit = null;
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+ toolkit = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ XInterface oObj = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(aModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PANEL);
+
+ XAccessibleComponent window = UnoRuntime.queryInterface(
+ XAccessibleComponent.class, oObj);
+
+ point = window.getLocationOnScreen();
+ Rectangle rect = window.getBounds();
+
+ try {
+ Robot rob = new Robot();
+ int x = point.X + (rect.Width / 2);
+ int y = point.Y + (rect.Height / 2);
+ rob.mouseMove(x, y);
+ rob.mousePress(InputEvent.BUTTON3_MASK);
+ rob.mouseRelease(InputEvent.BUTTON3_MASK);
+ } catch (java.awt.AWTException e) {
+ log.println("couldn't press mouse button");
+ }
+
+ util.utils.shortWait();
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,
+ toolkit);
+
+ try {
+ xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getTopWindow(0));
+
+ xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot,
+ tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Couldn't get Window");
+ }
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.POPUP_MENU);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ final XAccessibleSelection sel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class, oObj);
+
+ tEnv.addObjRelation(
+ "EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ sel.selectAccessibleChild(2);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.out.println("Couldn't fire event");
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleRadioButton.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleRadioButton.java
new file mode 100644
index 000000000..29cdbc71e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleRadioButton.java
@@ -0,0 +1,266 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.accessibility.XAccessibleValue;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleText</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleText
+ */
+public class AccessibleRadioButton extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XAccessibleAction accCloseButton;
+
+ /**
+ * Closes a hyperlink dialog, disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try {
+ if (accCloseButton != null) {
+ log.println("closing HyperlinkDialog");
+ accCloseButton.doAccessibleAction(0);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.DisposedException de) {
+ log.println("Already disposed");
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a text document, opens a hyperlink dialog, selects a first item
+ * in IconChoiceCtrl.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.RADIOBUTTON</code> with the name <code>
+ * "Internet"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * grabs focus </li>
+ * <li> <code>'XAccessibleText.Text'</code> for
+ * {@link ifc.accessibility._XAccessibleText}:
+ * the text of the component </li>
+ * <li> <code>'XAccessibleValue.anotherFromGroup'</code> for
+ * {@link ifc.accessibility._XAccessibleValue}:
+ * <code>'FTP'</code> button </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening HyperlinkDialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:HyperlinkDialog";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext iconChoiceCtrl = AccessibilityTools.getAccessibleObjectForRole(
+ xRoot, AccessibleRole.TREE,
+ "IconChoiceControl");
+
+ XAccessibleSelection sel = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ iconChoiceCtrl);
+
+ try {
+ sel.selectAccessibleChild(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("Unexpected exception");
+ e.printStackTrace(log);
+ }
+
+ AccessibilityTools.printAccessibleTree(log,xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.RADIO_BUTTON,
+ "Web");
+
+ XAccessibleContext anotherButton = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.RADIO_BUTTON,
+ "FTP");
+
+ XAccessibleContext closeButton = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON,
+ "Close");
+
+
+ accCloseButton = UnoRuntime.queryInterface(
+ XAccessibleAction.class, closeButton);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this component");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ final XAccessibleComponent acomp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ acomp.grabFocus();
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleText.Text", "Web");
+
+ tEnv.addObjRelation("EditOnly",
+ "Can't change or select Text in AccessibleRadioButton");
+
+ XAccessibleValue anotherButtonValue = UnoRuntime.queryInterface(
+ XAccessibleValue.class,
+ anotherButton);
+
+ tEnv.addObjRelation("XAccessibleValue.anotherFromGroup",
+ anotherButtonValue);
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleScrollBar.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleScrollBar.java
new file mode 100644
index 000000000..e06c73423
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleScrollBar.java
@@ -0,0 +1,155 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleAction
+ */
+public class AccessibleScrollBar extends TestCase {
+ private static XComponent xDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a text document.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.SCROLLBAR</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * grabs focus </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xDoc != null) {
+ closeDoc();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xDoc = SOF.createDrawDoc(null);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class, xDoc);
+
+ XInterface oObj = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(
+ aModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.SCROLL_BAR);
+
+ final XAccessibleAction act = UnoRuntime.queryInterface(
+ XAccessibleAction.class, oObj);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ act.doAccessibleAction(1);
+ } catch (Exception e) {
+ }
+ }
+ });
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ util.DesktopTools.closeDoc(xDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java
new file mode 100644
index 000000000..db248108d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleAction
+ */
+public class AccessibleStatusBar extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+ }
+
+ /**
+ * Creates a text document.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.SCROLLBAR</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * grabs focus </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ XInterface toolkit = null;
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+ toolkit = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XInterface oObj = null;
+
+ final XWindow xWindow =
+ UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.STATUS_BAR);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ Rectangle newPosSize = xWindow.getPosSize();
+ newPosSize.Width = newPosSize.Width - 20;
+ newPosSize.Height = newPosSize.Height - 20;
+ newPosSize.X = newPosSize.X + 20;
+ newPosSize.Y = newPosSize.Y + 20;
+ xWindow.setPosSize(
+ newPosSize.X, newPosSize.Y, newPosSize.Width,
+ newPosSize.Height, PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBarItem.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBarItem.java
new file mode 100644
index 000000000..aa10a8b00
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBarItem.java
@@ -0,0 +1,163 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleValue
+ * @see ifc.accessibility._XAccessibleAction
+ */
+public class AccessibleStatusBarItem extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+ }
+
+ /**
+ * Creates a text document.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.SCROLLBAR</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * grabs focus </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XInterface oObj = null;
+ XInterface secondItem = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(
+ aModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ XAccessibleContext statusbar = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.STATUS_BAR);
+
+ try {
+ oObj = statusbar.getAccessibleChild(6);
+ secondItem = statusbar.getAccessibleChild(1);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "Can't change or select Text in StatusBarItem");
+ tEnv.addObjRelation("XAccessibleText", secondItem);
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ final XTextDocument doc = xTextDoc;
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ doc.getText().setString("AccessibleStatusBarItem");
+ }
+ });
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleTabControl.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleTabControl.java
new file mode 100644
index 000000000..f73b34894
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleTabControl.java
@@ -0,0 +1,225 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleSelection
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleSelection
+ */
+public class AccessibleTabControl extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XAccessibleAction accCloseButton = null;
+
+ /**
+ * Closes an InsertFields dialog, disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try {
+ if (accCloseButton != null) {
+ log.println("closing InsertFields Dialog");
+ accCloseButton.doAccessibleAction(0);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+ }
+
+ /**
+ * Creates a text document, opens an InsertField dialog.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.PAGETABLIST</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * selects items </li>
+ * <li> <code>'XAccessibleSelection.multiSelection'</code>
+ * of type <code>Boolean</code> for
+ * {@link ifc.accessibility._XAccessibleSelection}:
+ * indicates that component supports single selection mode.</li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleSelection
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleSelection
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening InsertField dialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:InsertField";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PAGE_TAB_LIST);
+
+ XAccessibleContext closeButton = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON,
+ "Close");
+
+ accCloseButton = UnoRuntime.queryInterface(
+ XAccessibleAction.class, closeButton);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XAccessibleSelection selection = UnoRuntime.queryInterface(
+ XAccessibleSelection.class,
+ oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ selection.selectAccessibleChild(1);
+ selection.selectAccessibleChild(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleSelection.OneAlwaysSelected",
+ Boolean.TRUE);
+
+ tEnv.addObjRelation("XAccessibleSelection.multiSelection",
+ Boolean.FALSE);
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleTabPage.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleTabPage.java
new file mode 100644
index 000000000..f31182703
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleTabPage.java
@@ -0,0 +1,237 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ */
+public class AccessibleTabPage extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XAccessibleAction accCloseButton = null;
+
+ /**
+ * Closes an InsertFields dialog, disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ try {
+ if (accCloseButton != null) {
+ log.println("closing InsertFields Dialog");
+ accCloseButton.doAccessibleAction(0);
+ util.utils.waitForEventIdle(Param.getMSF());
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Couldn't close dialog " + e.getMessage());
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a text document, opens an InsertField dialog.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.PAGETAB</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * grabs focus </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ try {
+ if (accCloseButton != null) {
+ log.println("closing InsertFields Dialog");
+ accCloseButton.doAccessibleAction(0);
+ util.utils.waitForEventIdle(tParam.getMSF());
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("Couldn't close dialog " + e.getMessage());
+ }
+
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XModel aModel1 = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XController secondController = aModel1.getCurrentController();
+
+ XDispatchProvider aProv = UnoRuntime.queryInterface(
+ XDispatchProvider.class,
+ secondController);
+
+ XURLTransformer urlTransf = null;
+
+ XInterface transf = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.util.URLTransformer");
+ urlTransf = UnoRuntime.queryInterface(
+ XURLTransformer.class, transf);
+
+ XDispatch getting = null;
+ log.println("opening InsertField dialog");
+
+ URL[] url = new URL[1];
+ url[0] = new URL();
+ url[0].Complete = ".uno:InsertField";
+ urlTransf.parseStrict(url);
+ getting = aProv.queryDispatch(url[0], "", 0);
+
+ PropertyValue[] noArgs = new PropertyValue[0];
+ getting.dispatch(url[0], noArgs);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface oObj = null;
+
+ oObj = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, oObj);
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class,
+ tk.getActiveTopWindow());
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ XAccessibleContext closeButton = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.PUSH_BUTTON,
+ "Close");
+
+ accCloseButton = UnoRuntime.queryInterface(
+ XAccessibleAction.class, closeButton);
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PAGE_TAB);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly", "toolkit.AccessibleTabPage");
+ tEnv.addObjRelation("LimitedBounds", "toolkit.AccessibleTabPage");
+
+ XAccessibleComponent accComp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ oObj);
+ accComp.getLocationOnScreen();
+
+ util.utils.waitForEventIdle(tParam.getMSF());
+
+ XInterface xEventInt = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PAGE_TAB, "Variables");
+ final XAccessibleComponent eventAccComp = UnoRuntime.queryInterface(
+ XAccessibleComponent.class,
+ xEventInt);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ eventAccComp.grabFocus();
+ }
+ });
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java
new file mode 100644
index 000000000..868eac149
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java
@@ -0,0 +1,159 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ */
+public class AccessibleToolBox extends TestCase {
+ private XTextDocument xTextDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+ }
+
+ /**
+ * Creates a text document.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.TOOLBAR</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}:
+ * grabs focus
+ * </li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ XMultiServiceFactory msf = tParam.getMSF();
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(msf);
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ XInterface oObj = null;
+
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TOOL_BAR);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ XAccessible acc = AccessibilityTools.getAccessibleObject(oObj);
+ XAccessible child = null;
+
+ try {
+ child = acc.getAccessibleContext().getAccessibleChild(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+
+ util.dbg.printInterfaces(child);
+
+ final XAccessibleAction action = UnoRuntime.queryInterface(
+ XAccessibleAction.class,
+ child);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ action.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.out.println("Couldn't fire event");
+ }
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBoxItem.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBoxItem.java
new file mode 100644
index 000000000..c92a14b61
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBoxItem.java
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleAction;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleText</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleText
+ * @see ifc.accessibility._XAccessibleValue
+ */
+public class AccessibleToolBoxItem extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+ }
+
+ /**
+ * Creates a text document.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.PUSHBUTTON</code> and with the name
+ * <code>"Bold"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}</li>
+ * <li> <code>'XAccessibleText.Text'</code> for
+ * {@link ifc.accessibility._XAccessibleText}: the name of button</li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ closeDoc();
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XInterface oObj = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentContainerWindow(
+ aModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,
+ AccessibleRole.TOGGLE_BUTTON,
+ "Bold");
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("EditOnly",
+ "This method isn't supported in this dialog");
+
+ tEnv.addObjRelation("LimitedBounds", "yes");
+
+ final XAccessibleAction oAction = UnoRuntime.queryInterface(
+ XAccessibleAction.class,
+ oObj);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ try {
+ oAction.doAccessibleAction(0);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ });
+
+ tEnv.addObjRelation("XAccessibleText.Text", "Bold");
+
+ return tEnv;
+ }
+
+ protected void closeDoc() {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleWindow.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleWindow.java
new file mode 100644
index 000000000..ff3f63c84
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleWindow.java
@@ -0,0 +1,173 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.AccessibilityTools;
+import util.SOfficeFactory;
+
+
+/**
+ * Test for object that implements the following interfaces :
+ * <ul>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleContext</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleComponent</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleExtendedComponent
+ * </code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleAction</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleText</code></li>
+ * <li><code>
+ * ::com::sun::star::accessibility::XAccessibleValue</code></li>
+ * </ul> <p>
+ *
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleContext
+ * @see com.sun.star.accessibility.XAccessibleComponent
+ * @see com.sun.star.accessibility.XAccessibleExtendedComponent
+ * @see com.sun.star.accessibility.XAccessibleAction
+ * @see com.sun.star.accessibility.XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleValue
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleContext
+ * @see ifc.accessibility._XAccessibleComponent
+ * @see ifc.accessibility._XAccessibleExtendedComponent
+ * @see ifc.accessibility._XAccessibleAction
+ * @see ifc.accessibility._XAccessibleText
+ * @see ifc.accessibility._XAccessibleValue
+ */
+public class AccessibleWindow extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Disposes the document, if exists, created in
+ * <code>createTestEnvironment</code> method.
+ */
+ @Override
+ protected void cleanup(TestParameters Param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+ }
+
+ /**
+ * Creates a text document.
+ * Then obtains an accessible object with
+ * the role <code>AccessibleRole.PUSHBUTTON</code> and with the name
+ * <code>"Bold"</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'EventProducer'</code> for
+ * {@link ifc.accessibility._XAccessibleEventBroadcaster}</li>
+ * <li> <code>'XAccessibleText.Text'</code> for
+ * {@link ifc.accessibility._XAccessibleText}: the name of button</li>
+ * </ul>
+ *
+ * @param tParam test parameters
+ * @param log writer to log information while testing
+ *
+ * @see com.sun.star.awt.Toolkit
+ * @see com.sun.star.accessibility.AccessibleRole
+ * @see ifc.accessibility._XAccessibleEventBroadcaster
+ * @see ifc.accessibility._XAccessibleText
+ * @see com.sun.star.accessibility.XAccessibleEventBroadcaster
+ * @see com.sun.star.accessibility.XAccessibleText
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ log.println("creating a test environment");
+
+ if (xTextDoc != null) {
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ XInterface toolkit = null;
+
+ log.println("creating a text document");
+ xTextDoc = SOF.createTextDoc(null);
+ toolkit = (XInterface) tParam.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XModel aModel = UnoRuntime.queryInterface(XModel.class,
+ xTextDoc);
+
+ XInterface oObj = null;
+
+ XWindow xWindow = AccessibilityTools.getCurrentWindow(
+ aModel);
+
+ XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
+
+ AccessibilityTools.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
+
+ oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
+
+ log.println("ImplementationName: " + util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ final XExtendedToolkit tk = UnoRuntime.queryInterface(
+ XExtendedToolkit.class, toolkit);
+
+ tEnv.addObjRelation("EventProducer",
+ new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
+ public void fireEvent() {
+ XWindow xWin = UnoRuntime.queryInterface(
+ XWindow.class, tk.getActiveTopWindow());
+ Rectangle newPosSize = xWin.getPosSize();
+ newPosSize.Width = newPosSize.Width - 20;
+ newPosSize.Height = newPosSize.Height - 20;
+ newPosSize.X = newPosSize.X + 20;
+ newPosSize.Y = newPosSize.Y + 20;
+ xWin.setPosSize(newPosSize.X, newPosSize.Y, newPosSize.Width,
+ newPosSize.Height, PosSize.POSSIZE);
+ }
+ });
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/MutableTreeDataModel.java b/qadevOOo/tests/java/mod/_toolkit/MutableTreeDataModel.java
new file mode 100644
index 000000000..10a5f2d1d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/MutableTreeDataModel.java
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.tree.XMutableTreeDataModel;
+import com.sun.star.awt.tree.XMutableTreeNode;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class MutableTreeDataModel extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XInterface oObj = null;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.tree.MutableTreeDataModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for MutableTreeDataModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "toolkit.MutableTreeDataModel");
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ tEnv.addObjRelation("XTreeDataModelListenerEvent", new XTreeDataModelListenerEvent());
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ private class XTreeDataModelListenerEvent implements ifc.awt.tree._XTreeDataModel.XTreeDataModelListenerEvent{
+
+ public void fireEvent(){
+
+ XMutableTreeDataModel xModel = UnoRuntime.queryInterface(XMutableTreeDataModel.class, oObj);
+ XMutableTreeNode node = xModel.createNode("EventNode", true);
+ try {
+ xModel.setRoot(node);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ log.println("ERROR: could not perform event: " + ex.toString());
+ ex.printStackTrace();
+ }
+
+ }
+ }
+} // finish class UnoControlListBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/MutableTreeNode.java b/qadevOOo/tests/java/mod/_toolkit/MutableTreeNode.java
new file mode 100644
index 000000000..e08d2dd65
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/MutableTreeNode.java
@@ -0,0 +1,153 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.tree.XMutableTreeDataModel;
+import com.sun.star.awt.tree.XMutableTreeNode;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.CommandAbortedException;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import ifc.awt.tree._XMutableTreeNode.XMutableTreeNodeCreator;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+
+public class MutableTreeNode extends TestCase {
+ private static XInterface oObj = null;
+ private static XMutableTreeDataModel mXTreeDataModel;
+ private static XMultiServiceFactory mxMSF;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ mxMSF = tParam.getMSF();
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XMutableTreeNode xNode;
+
+ mXTreeDataModel = UnoRuntime.queryInterface(XMutableTreeDataModel.class,
+ mxMSF.createInstance("com.sun.star.awt.tree.MutableTreeDataModel"));
+
+ xNode = mXTreeDataModel.createNode("UnoTreeControl", false);
+
+ String sDisplayValue = "UnoTreeControl";
+ String sExpandedGraphicURL = "private:graphicrepository/sd/res/triangle_down.png";
+ String sCollapsedGraphicURL = "private:graphicrepository/sd/res/triangle_right.png";
+ String sNodeGraphicURL = "private:graphicrepository/sw/res/nc20010.png";
+
+ xNode.setDisplayValue( sDisplayValue);
+ xNode.setDataValue(sDisplayValue);
+ xNode.setExpandedGraphicURL(sExpandedGraphicURL);
+ xNode.setCollapsedGraphicURL(sCollapsedGraphicURL);
+ xNode.setNodeGraphicURL(sNodeGraphicURL);
+ xNode.setHasChildrenOnDemand(true);
+
+ fillNode(xNode);
+
+ TestEnvironment tEnv = new TestEnvironment(xNode);
+
+ tEnv.addObjRelation("OBJNAME", "toolkit.MutableTreeDataModel");
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ tEnv.addObjRelation("XTreeNode_DisplayValue", sDisplayValue);
+ tEnv.addObjRelation("XTreeNode_ExpandedGraphicURL", sExpandedGraphicURL);
+ tEnv.addObjRelation("XTreeNode_CollapsedGraphicURL", sCollapsedGraphicURL);
+ tEnv.addObjRelation("XTreeNode_NodeGraphicURL", sNodeGraphicURL);
+
+ tEnv.addObjRelation("XMutableTreeNode_NodeToAppend",
+ mXTreeDataModel.createNode("XMutableTreeNode_NodeToAppend", true));
+
+ tEnv.addObjRelation("XMutableTreeNodeCreator", new XMutableTreeNodeCreator(){
+ public XMutableTreeNode createNode(String name){
+ return mXTreeDataModel.createNode(name, true);
+ }
+ });
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ private void fillNode( XMutableTreeNode xNode ) throws com.sun.star.uno.Exception {
+
+ if( xNode.getChildCount() == 0 )
+ {
+ xNode.getDataValue();
+
+ String officeUserPath = utils.getOfficeUserPath(mxMSF);
+ Object fileacc = mxMSF.createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ UnoRuntime.queryInterface(XSimpleFileAccess.class,fileacc);
+
+
+ dirlist(officeUserPath, xNode);
+ }
+ }
+
+ private void dirlist(String dir, XMutableTreeNode xNode){
+
+ Object fileacc = null;
+ try {
+ fileacc = mxMSF.createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ } catch (com.sun.star.uno.Exception ex) {
+ ex.printStackTrace();
+ }
+ XSimpleFileAccess sfa = UnoRuntime.queryInterface(XSimpleFileAccess.class,fileacc);
+ XMutableTreeNode xChildNode = null;
+ try {
+ xChildNode = mXTreeDataModel.createNode(dir.substring(dir.lastIndexOf("/")+1, dir.length()), sfa.isFolder(dir));
+ xChildNode.setDataValue(dir);
+ sfa.isFolder(dir);
+ if (sfa.isFolder(dir)){
+ xChildNode.setExpandedGraphicURL( "private:graphicrepository/sd/res/triangle_down.png");
+ xChildNode.setCollapsedGraphicURL("private:graphicrepository/sd/res/triangle_right.png");
+ String[] children = sfa.getFolderContents(dir, true);
+ if (children != null){
+ for (int i=0; i<children.length; i++) {
+ // Get filename of file or directory
+ String filename = children[i];
+ dirlist( filename , xChildNode);
+ }
+ }
+ }
+ else{
+ xChildNode.setNodeGraphicURL( "private:graphicrepository/sw/res/nc20010.png");
+ }
+ } catch (CommandAbortedException ex) {
+ ex.printStackTrace();
+ } catch (com.sun.star.uno.Exception ex) {
+ ex.printStackTrace();
+ }
+
+ try {
+ xNode.appendChild( xChildNode );
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ ex.printStackTrace();
+ }
+ }
+} // finish class UnoControlListBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/TabController.java b/qadevOOo/tests/java/mod/_toolkit/TabController.java
new file mode 100644
index 000000000..0f483bb04
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/TabController.java
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XTabControllerModel;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.form.XForm;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.FormTools;
+import util.WriterTools;
+import util.utils;
+
+
+public class TabController extends TestCase {
+ private static XTextDocument xTextDoc = null;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters param,
+ PrintWriter log)
+ throws com.sun.star.uno.Exception
+ {
+ XInterface oObj = null;
+ XControl xCtrl1 = null;
+ XTabControllerModel tabCtrlModel = null;
+ XControlContainer aCtrlContainer = null;
+
+
+ // create object relations
+ FormTools.insertForm(xTextDoc,
+ FormTools.getForms(WriterTools.getDrawPage(
+ xTextDoc)), "MyForm");
+
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "CommandButton",
+ "UnoControlButton");
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel model = aShape.getControl();
+ XControlAccess access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ try {
+ xCtrl1 = access.getControl(model);
+ } catch (Exception e) {
+ }
+
+ XForm form = null;
+
+ try {
+ Object temp = FormTools.getForms( WriterTools.getDrawPage(xTextDoc) ).getByName("MyForm");
+ form = (XForm) AnyConverter.toObject(new Type(XForm.class), temp);
+ } catch (Exception e) {
+ log.println("Couldn't get Form");
+ e.printStackTrace(log);
+ }
+
+ tabCtrlModel = UnoRuntime.queryInterface(
+ XTabControllerModel.class, form);
+
+ aCtrlContainer = UnoRuntime.queryInterface(
+ XControlContainer.class, xCtrl1.getContext());
+
+ // create object
+ try {
+ oObj = (XInterface) param.getMSF().createInstance(
+ "com.sun.star.awt.TabController");
+ } catch (Exception e) {
+ }
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ String objName = "TabController";
+ tEnv.addObjRelation("OBJNAME", "toolkit." + objName);
+ tEnv.addObjRelation("MODEL", tabCtrlModel);
+ tEnv.addObjRelation("CONTAINER", aCtrlContainer);
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/TabControllerModel.java b/qadevOOo/tests/java/mod/_toolkit/TabControllerModel.java
new file mode 100644
index 000000000..1c227f0b3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/TabControllerModel.java
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.WriterTools;
+import util.utils;
+
+
+public class TabControllerModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters param, PrintWriter log) {
+ log.println("disposing xTextDoc");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+
+ log.println("inserting some ControlShapes");
+
+ XControlShape shape1 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 1000,
+ "CommandButton");
+ XControlShape shape2 = FormTools.createControlShape(xTextDoc, 5000,
+ 3500, 7500, 5000,
+ "TextField");
+
+ oObj = (XInterface) param.getMSF().createInstance(
+ "com.sun.star.awt.TabControllerModel");
+
+ log.println("creating a new environment for TabControllerModel");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME",
+ "stardiv.vcl.controlmodel.TabController");
+ tEnv.addObjRelation("Model1", shape1.getControl());
+ tEnv.addObjRelation("Model2", shape2.getControl());
+
+
+ //Object Relation for XPersistObject
+ tEnv.addObjRelation("noPS", Boolean.TRUE);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class TabControllerModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/Toolkit.java b/qadevOOo/tests/java/mod/_toolkit/Toolkit.java
new file mode 100644
index 000000000..346ef21f5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/Toolkit.java
@@ -0,0 +1,118 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+/**
+* Test for <code>com.sun.star.awt.Toolkit</code> service.
+*/
+public class Toolkit extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates <code>com.sun.star.awt.Toolkit</code> service.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XWindow win = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 15000, 10000,
+ "CommandButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+ XController cntrlr = UnoRuntime.queryInterface(
+ XController.class,
+ xTextDoc.getCurrentController());
+
+ //now get the toolkit
+ win = cntrlr.getFrame().getContainerWindow();
+
+ the_win = the_access.getControl(the_Model).getPeer();
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.Toolkit");
+
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+
+ log.println(" creating a new environment for toolkit object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ log.println("Implementation Name: " + utils.getImplName(oObj));
+
+ tEnv.addObjRelation("WINPEER", the_win);
+
+ tEnv.addObjRelation("XModel", xModel);
+
+
+ // adding relation for XDataTransferProviderAccess
+ tEnv.addObjRelation("XDataTransferProviderAccess.XWindow", win);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class Toolkit
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlButton.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlButton.java
new file mode 100644
index 000000000..3522c9629
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlButton.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlButton extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XTextDocument xTD2;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ xTD2 = WriterTools.createTextDoc(
+ Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ util.DesktopTools.closeDoc(xTD2);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XWindow anotherWindow = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "CommandButton",
+ "UnoControlButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the ButtonControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for UnoControlButton object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ XController aController = xTD2.getCurrentController();
+ XFrame aFrame = aController.getFrame();
+ anotherWindow = aFrame.getComponentWindow();
+
+
+ // Object Relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow", anotherWindow);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlButton
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlButtonModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlButtonModel.java
new file mode 100644
index 000000000..24be3535d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlButtonModel.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlButtonModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlButtonModel");
+
+ log.println(
+ "creating a new environment for UnoControlButtonModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.Button");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlButtonModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBox.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBox.java
new file mode 100644
index 000000000..0132bd4b0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBox.java
@@ -0,0 +1,137 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XCheckBox;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlCheckBox extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XTextDocument xTD2;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ xTD2 = WriterTools.createTextDoc(
+ Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ util.DesktopTools.closeDoc(xTD2);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XWindow anotherWindow = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "CheckBox",
+ "UnoControlCheckBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the CheckBoxControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for UnoControlCheckBox object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // adding object relation for XItemListener
+ ifc.awt._XItemListener.TestItemListener listener =
+ new ifc.awt._XItemListener.TestItemListener();
+ XCheckBox check = UnoRuntime.queryInterface(
+ XCheckBox.class, oObj);
+ check.addItemListener(listener);
+ tEnv.addObjRelation("TestItemListener", listener);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ XController aController = xTD2.getCurrentController();
+ XFrame aFrame = aController.getFrame();
+ anotherWindow = aFrame.getComponentWindow();
+
+
+ // Object Relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow", anotherWindow);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlCheckBox
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBoxModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBoxModel.java
new file mode 100644
index 000000000..0a2930756
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBoxModel.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlCheckBoxModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlCheckBoxModel");
+
+ log.println(
+ "creating a new environment for UnoControlCheckBoxModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.CheckBox");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlCheckBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlComboBox.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlComboBox.java
new file mode 100644
index 000000000..243e90c26
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlComboBox.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+
+public class UnoControlComboBox extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "ComboBox",
+ "UnoControlComboBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the ComboBoxControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for UnoControlComboBox object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlComboBox
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlComboBoxModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlComboBoxModel.java
new file mode 100644
index 000000000..7c6477321
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlComboBoxModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlComboBoxModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlComboBoxModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlComboBoxModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.ComboBox");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlComboBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlContainer.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlContainer.java
new file mode 100644
index 000000000..7c872dfaa
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlContainer.java
@@ -0,0 +1,204 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlContainer extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XTextDocument xTD2;
+ private static XControl xCtrl1;
+ private static XControl xCtrl2;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTD2 = WriterTools.createTextDoc(
+ Param.getMSF());
+ xTextDoc = WriterTools.createTextDoc(
+ Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ util.DesktopTools.closeDoc(xTD2);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters param,
+ PrintWriter log) throws Exception {
+ // create Object Relations -------------------------------------------
+ XInterface oObj = null;
+ XControlShape shape = null;
+ XControlModel model = null;
+ XControlAccess access = null;
+ XWindow anotherWindow = null;
+
+ // for XControl
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+
+ XControlContainer ctrlCont = null;
+
+ XGraphics aGraphic = null;
+
+
+ // create 3 XControls
+ // create first XControl
+ shape = FormTools.createControlShape(xTextDoc, 3000, 4500, 15000,
+ 10000, "TextField");
+ WriterTools.getDrawPage(xTextDoc).add(shape);
+ model = shape.getControl();
+ access = UnoRuntime.queryInterface(
+ XControlAccess.class, xTextDoc.getCurrentController());
+
+ access.getControl(model);
+
+
+ // create second XControl
+ shape = FormTools.createControlShape(xTextDoc, 3000, 4500, 15000,
+ 10000, "TextField");
+ WriterTools.getDrawPage(xTextDoc).add(shape);
+ model = shape.getControl();
+ access = UnoRuntime.queryInterface(
+ XControlAccess.class, xTextDoc.getCurrentController());
+
+ xCtrl1 = access.getControl(model);
+
+
+ // create third XControl
+ shape = FormTools.createControlShape(xTextDoc, 3000, 4500, 15000,
+ 10000, "CommandButton");
+ WriterTools.getDrawPage(xTextDoc).add(shape);
+ model = shape.getControl();
+ access = UnoRuntime.queryInterface(
+ XControlAccess.class, xTextDoc.getCurrentController());
+
+ xCtrl2 = access.getControl(model);
+
+ // create XToolkit, XWindowPeer, XDevice
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "CommandButton",
+ "UnoControlButton");
+
+ WriterTools.getDrawPage(xTD2).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTD2.getCurrentController());
+
+ //get the ButtonControl for the needed Object relations
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+
+ XDevice aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ XController aController = xTD2.getCurrentController();
+ XFrame aFrame = aController.getFrame();
+ anotherWindow = aFrame.getComponentWindow();
+
+ // finished create Object Relations -----------------------------------
+ // create the UnoControlContainer
+ oObj = (XInterface) param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlContainer");
+
+ XControl xCtrl = UnoRuntime.queryInterface(
+ XControl.class, oObj);
+ xCtrl.setModel(the_Model);
+
+ ctrlCont = UnoRuntime.queryInterface(
+ XControlContainer.class, oObj);
+ ctrlCont.addControl("jupp", access.getControl(aShape.getControl()));
+
+ log.println(
+ "creating a new environment for UnoControlContainer object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ XWindow xWindow = UnoRuntime.queryInterface(XWindow.class, oObj);
+ Rectangle ps = xWindow.getPosSize();
+ xWindow.setPosSize(ps.X+10, ps.Y+10, ps.Width+10, ps.Height+10, PosSize.POSSIZE);
+
+ String objName = "UnoControlContainer";
+ tEnv.addObjRelation("OBJNAME", "toolkit." + objName);
+
+
+ // Object relation for XContainer
+ tEnv.addObjRelation("XContainer.Container", ctrlCont);
+ tEnv.addObjRelation("INSTANCE", xCtrl);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ // Object Relation for XControlContainer
+ tEnv.addObjRelation("CONTROL1", xCtrl1);
+ tEnv.addObjRelation("CONTROL2", xCtrl2);
+
+
+ // Object Relation for XControl
+ tEnv.addObjRelation("CONTEXT", xTD2);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+
+ // Object Relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow", anotherWindow);
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlContainerModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlContainerModel.java
new file mode 100644
index 000000000..cd3845560
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlContainerModel.java
@@ -0,0 +1,47 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+
+public class UnoControlContainerModel extends TestCase {
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = (XInterface) param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlContainerModel");
+
+ log.println(
+ "creating a new environment for UnoControlContainer object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+ tEnv.addObjRelation("OBJNAME",
+ "stardiv.vcl.controlmodel.ControlContainer");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ }
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyField.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyField.java
new file mode 100644
index 000000000..60c65000c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyField.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlCurrencyField extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "CurrencyField",
+ "UnoControlCurrencyField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the CurrencyFieldControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlCurrencyField object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlCurrencyField
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyFieldModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyFieldModel.java
new file mode 100644
index 000000000..65f9b528c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyFieldModel.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlCurrencyFieldModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlCurrencyFieldModel");
+ } catch (Exception e) {
+ }
+
+ log.println("creating a new environment for " +
+ "UnoControlCurrencyFieldModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME",
+ "stardiv.vcl.controlmodel.CurrencyField");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlCurrencyFieldModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlDateField.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlDateField.java
new file mode 100644
index 000000000..f9abc3c69
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlDateField.java
@@ -0,0 +1,139 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XFrame;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlDateField extends TestCase {
+ private static XTextDocument xTextDoc;
+ private static XTextDocument xTD2;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ xTD2 = WriterTools.createTextDoc(
+ Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ util.DesktopTools.closeDoc(xTD2);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XWindow anotherWindow = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "DateField",
+ "UnoControlDateField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the DateFieldControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlDateField object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ XController aController = xTD2.getCurrentController();
+ XFrame aFrame = aController.getFrame();
+ anotherWindow = aFrame.getComponentWindow();
+
+
+ // Object Relation for XWindow
+ tEnv.addObjRelation("XWindow.AnotherWindow", anotherWindow);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlDateField
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlDateFieldModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlDateFieldModel.java
new file mode 100644
index 000000000..82344269d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlDateFieldModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlDateFieldModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlDateFieldModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlDateFieldModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.DateField");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlDateFieldModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlDialog.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlDialog.java
new file mode 100644
index 000000000..2f0e6ddc7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlDialog.java
@@ -0,0 +1,241 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.PosSize;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTabController;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.awt.UnoControlDialog</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::awt::XWindow</code></li>
+* <li> <code>com::sun::star::awt::XDialog</code></li>
+* <li> <code>com::sun::star::awt::XControl</code></li>
+* <li> <code>com::sun::star::awt::XTopWindow</code></li>
+* <li> <code>com::sun::star::awt::XControlContainer</code></li>
+* <li> <code>com::sun::star::awt::XView</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.awt.XWindow
+* @see com.sun.star.awt.XDialog
+* @see com.sun.star.awt.XControl
+* @see com.sun.star.awt.XTopWindow
+* @see com.sun.star.awt.XControlContainer
+* @see com.sun.star.awt.XView
+* @see ifc.lang._XComponent
+* @see ifc.awt._XWindow
+* @see ifc.awt._XDialog
+* @see ifc.awt._XControl
+* @see ifc.awt._XTopWindow
+* @see ifc.awt._XControlContainer
+* @see ifc.awt._XView
+*/
+public class UnoControlDialog extends TestCase {
+ private static XWindow xWinDlg = null;
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates a Dialog Control and Model instance defines Model
+ * for Control, adds to Dialog a button, sets its size and
+ * sets the dialog visible. <p>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XControlModel dlgModel = null;
+
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+
+ XControl butControl = null;
+ XControl butControl1 = null;
+ XControl butControl2 = null;
+ XTabController tabControl1 = null;
+ XTabController tabControl2 = null;
+
+ XControlContainer ctrlCont = null;
+
+ if (xWinDlg != null) {
+ xWinDlg.dispose();
+ }
+
+ try {
+ dlgModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlDialogModel"));
+
+ XControl dlgControl = UnoRuntime.queryInterface(
+ XControl.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlDialog"));
+
+ dlgControl.setModel(dlgModel);
+
+ XControlModel butModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlButtonModel"));
+
+ butControl = UnoRuntime.queryInterface(XControl.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlButton"));
+
+ butControl.setModel(butModel);
+
+
+ // creating additional controls for XUnoControlContainer
+ tabControl1 = UnoRuntime.queryInterface(
+ XTabController.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.TabController"));
+
+ tabControl2 = UnoRuntime.queryInterface(
+ XTabController.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.TabController"));
+
+
+ // creating additional controls for XControlContainer
+ butModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlButtonModel"));
+
+ butControl1 = UnoRuntime.queryInterface(XControl.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlButton"));
+
+ butControl1.setModel(butModel);
+
+ butModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlButtonModel"));
+
+ butControl2 = UnoRuntime.queryInterface(XControl.class,
+ xMSF.createInstance(
+ "com.sun.star.awt.UnoControlButton"));
+
+ butControl2.setModel(butModel);
+
+ ctrlCont = UnoRuntime.queryInterface(
+ XControlContainer.class, dlgControl);
+
+ xWinDlg = UnoRuntime.queryInterface(XWindow.class,
+ dlgControl);
+
+ xWinDlg.setVisible(true);
+
+ xWinDlg.setPosSize(10, 10, 220, 110, PosSize.SIZE);
+
+ the_win = dlgControl.getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(220, 220);
+ aGraphic = aDevice.createGraphics();
+
+ oObj = dlgControl;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Error creating dialog :");
+ e.printStackTrace(log);
+ }
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", dlgModel);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", dlgModel);
+
+ tEnv.addObjRelation("INSTANCE", butControl);
+ tEnv.addObjRelation("XContainer.Container", ctrlCont);
+
+
+ // adding relations for XUnoControlContainer
+ tEnv.addObjRelation("TABCONTROL1", tabControl1);
+ tEnv.addObjRelation("TABCONTROL2", tabControl2);
+
+
+ // adding relations for XControlContainer
+ tEnv.addObjRelation("CONTROL1", butControl1);
+ tEnv.addObjRelation("CONTROL2", butControl2);
+
+ XWindow forObjRel = xTextDoc.getCurrentController().getFrame()
+ .getComponentWindow();
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println("Disposing dialog ...");
+ xWinDlg.dispose();
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ tParam.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlDialogModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlDialogModel.java
new file mode 100644
index 000000000..8e2aa77b0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlDialogModel.java
@@ -0,0 +1,173 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.utils;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.awt.UnoControlDialogModel</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::awt::UnoControlDialogModel</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.awt.UnoControlDialogModel
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see ifc.awt._UnoControlDialogModel
+* @see ifc.io._XPersistObject
+* @see ifc.lang._XComponent
+* @see ifc.beans._XPropertySet
+* @see ifc.beans._XMultiPropertySet
+*/
+public class UnoControlDialogModel extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.UnoControlDialogModel</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XInterface dialogModel = null;
+ String _buttonName = "MyButton";
+ String _labelName = "MyLabel";
+ String _labelPrefix = "MyLabelPrefix";
+ XMultiServiceFactory xMultiServiceFactory = null;
+
+ dialogModel = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlDialogModel");
+
+ // create the dialog model and set the properties
+ XPropertySet xPSetDialog = UnoRuntime.queryInterface(
+ XPropertySet.class, dialogModel);
+ xPSetDialog.setPropertyValue("PositionX", Integer.valueOf(100));
+ xPSetDialog.setPropertyValue("PositionY", Integer.valueOf(100));
+ xPSetDialog.setPropertyValue("Width", Integer.valueOf(150));
+ xPSetDialog.setPropertyValue("Height", Integer.valueOf(100));
+ xPSetDialog.setPropertyValue("Title", "Runtime Dialog Demo");
+
+ // get the service manager from the dialog model
+ xMultiServiceFactory = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ dialogModel);
+
+ // create the button model and set the properties
+ Object buttonModel = xMultiServiceFactory.createInstance(
+ "com.sun.star.awt.UnoControlButtonModel");
+ XPropertySet xPSetButton = UnoRuntime.queryInterface(
+ XPropertySet.class, buttonModel);
+ xPSetButton.setPropertyValue("PositionX", Integer.valueOf(50));
+ xPSetButton.setPropertyValue("PositionY", Integer.valueOf(30));
+ xPSetButton.setPropertyValue("Width", Integer.valueOf(50));
+ xPSetButton.setPropertyValue("Height", Integer.valueOf(14));
+ xPSetButton.setPropertyValue("Name", _buttonName);
+ xPSetButton.setPropertyValue("TabIndex", Short.valueOf((short) 0));
+ xPSetButton.setPropertyValue("Label", "Click Me");
+
+ // create the label model and set the properties
+ Object labelModel = xMultiServiceFactory.createInstance(
+ "com.sun.star.awt.UnoControlFixedTextModel");
+ XPropertySet xPSetLabel = UnoRuntime.queryInterface(
+ XPropertySet.class, labelModel);
+ xPSetLabel.setPropertyValue("PositionX", Integer.valueOf(40));
+ xPSetLabel.setPropertyValue("PositionY", Integer.valueOf(60));
+ xPSetLabel.setPropertyValue("Width", Integer.valueOf(100));
+ xPSetLabel.setPropertyValue("Height", Integer.valueOf(14));
+ xPSetLabel.setPropertyValue("Name", _labelName);
+ xPSetLabel.setPropertyValue("TabIndex", Short.valueOf((short) 1));
+ xPSetLabel.setPropertyValue("Label", _labelPrefix);
+
+ // insert the control models into the dialog model
+ XNameContainer xNameCont = UnoRuntime.queryInterface(
+ XNameContainer.class,
+ dialogModel);
+ xNameCont.insertByName(_buttonName, buttonModel);
+ xNameCont.insertByName(_labelName, labelModel);
+
+ // create the dialog control and set the model
+ XControl dialog = UnoRuntime.queryInterface(
+ XControl.class,
+ Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlDialog"));
+ XControl xControl = UnoRuntime.queryInterface(
+ XControl.class, dialog);
+ XControlModel xControlModel = UnoRuntime.queryInterface(
+ XControlModel.class,
+ dialogModel);
+ xControl.setModel(xControlModel);
+
+ oObj = dialogModel;
+
+ log.println("creating a new environment for object");
+
+ UnoRuntime.queryInterface(
+ XMultiServiceFactory.class, oObj);
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ try {
+ // XNameReplace
+ tEnv.addObjRelation("INSTANCE1",
+ xMultiServiceFactory.createInstance(
+ "com.sun.star.awt.UnoControlFixedTextModel"));
+
+
+ //XContainer
+ tEnv.addObjRelation("INSTANCE",
+ xMultiServiceFactory.createInstance(
+ "com.sun.star.awt.UnoControlFixedTextModel"));
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Could not add object relations 'INSTANCEn'");
+ e.printStackTrace(log);
+ }
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.Dialog");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlEdit.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlEdit.java
new file mode 100644
index 000000000..0199acd57
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlEdit.java
@@ -0,0 +1,139 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlEdit extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "TextField",
+ "UnoControlEdit");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the EditControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for UnoControlEdit object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlEdit
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlEditModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlEditModel.java
new file mode 100644
index 000000000..e312b64a6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlEditModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlEditModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlEditModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlEditModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.Edit");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlEditModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFileControl.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFileControl.java
new file mode 100644
index 000000000..ab4486a70
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFileControl.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlFileControl extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "FileControl",
+ "UnoControlFileControl");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the FileControlControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlFileControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlFileControl
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFileControlModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFileControlModel.java
new file mode 100644
index 000000000..63f2a8309
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFileControlModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlFileControlModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlFileControlModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlFileControlModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.FileControl");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlFileControlModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedLineModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedLineModel.java
new file mode 100644
index 000000000..fffcca77b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedLineModel.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.awt.UnoControlFixedLineModel</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::awt::UnoControlFixedLineModel</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.awt.UnoControlFixedLineModel
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see ifc.awt._UnoControlFixedLineModel
+* @see ifc.io._XPersistObject
+* @see ifc.lang._XComponent
+* @see ifc.beans._XPropertySet
+* @see ifc.beans._XMultiPropertySet
+*/
+public class UnoControlFixedLineModel extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.UnoControlFixedLineModel</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws StatusException {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlFixedLineModel");
+ } catch (Exception e) {
+ }
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.FixedLine");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedText.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedText.java
new file mode 100644
index 000000000..16951a36c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedText.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlFixedText extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "FixedText",
+ "UnoControlFixedText");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the FixedTextControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlFixedText object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlFixedText
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedTextModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedTextModel.java
new file mode 100644
index 000000000..9433d8c26
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFixedTextModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlFixedTextModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlFixedTextModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlFixedTextModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.FixedText");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlFixedTextModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedField.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedField.java
new file mode 100644
index 000000000..d2091caba
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedField.java
@@ -0,0 +1,145 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlFormattedField extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "DatabaseFormattedField",
+ "UnoControlFormattedField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ XPropertySet xPS = UnoRuntime.queryInterface(
+ XPropertySet.class, the_Model);
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the EditControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ xPS.setPropertyValue("Spin", Boolean.TRUE);
+
+ log.println("creating a new environment for UnoControlEdit object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedFieldModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedFieldModel.java
new file mode 100644
index 000000000..bb5e1b355
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedFieldModel.java
@@ -0,0 +1,78 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlFormattedFieldModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlFormattedFieldModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlFormattedFieldModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME",
+ "stardiv.vcl.controlmodel.FormattedField");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlFormattedFieldModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBox.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBox.java
new file mode 100644
index 000000000..714085696
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBox.java
@@ -0,0 +1,129 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlGroupBox extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "GroupBox",
+ "UnoControlGroupBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the GroupBoxControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for UnoControlGroupBox object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlGroupBox
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBoxModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBoxModel.java
new file mode 100644
index 000000000..1a6cae71e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBoxModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlGroupBoxModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlGroupBoxModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlGroupBoxModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.GroupBox");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlGroupBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlImageControl.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlImageControl.java
new file mode 100644
index 000000000..ea320d043
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlImageControl.java
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlImageControl extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "DatabaseImageControl",
+ "UnoControlImageControl");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XPropertySet xPS = UnoRuntime.queryInterface(
+ XPropertySet.class, the_Model);
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the ImageControlControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ String imgUrl = util.utils.getFullTestURL("poliball.gif");
+
+ xPS.setPropertyValue("ImageURL", imgUrl);
+
+ log.println(
+ "creating a new environment for UnoControlImageControl object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlImageControl
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlImageControlModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlImageControlModel.java
new file mode 100644
index 000000000..e0f0ff0ad
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlImageControlModel.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+public class UnoControlImageControlModel extends TestCase {
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlImageControlModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlImageControlModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.ImageControl");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlImageControlModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlListBox.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlListBox.java
new file mode 100644
index 000000000..1d733bd06
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlListBox.java
@@ -0,0 +1,139 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XListBox;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlListBox extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "ListBox",
+ "UnoControlListBox");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the ListBoxControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println("creating a new environment for UnoControlListBox object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ // adding object relation for XItemListener
+ ifc.awt._XItemListener.TestItemListener listener =
+ new ifc.awt._XItemListener.TestItemListener();
+ XListBox list = UnoRuntime.queryInterface(XListBox.class,
+ oObj);
+ list.addItemListener(listener);
+ tEnv.addObjRelation("TestItemListener", listener);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlListBox
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlListBoxModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlListBoxModel.java
new file mode 100644
index 000000000..a0d26319c
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlListBoxModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlListBoxModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlListBoxModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlListBoxModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.ListBox");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlListBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlNumericField.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlNumericField.java
new file mode 100644
index 000000000..073b63756
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlNumericField.java
@@ -0,0 +1,150 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.XCloseable;
+import com.sun.star.view.XControlAccess;
+
+
+public class UnoControlNumericField extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ try {
+ XCloseable closer = UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "NumericField",
+ "UnoControlNumericField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the NumericFieldControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlNumericField object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ tEnv.addObjRelation("XTextComponent.onlyNumbers", "");
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlNumericField
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlNumericFieldModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlNumericFieldModel.java
new file mode 100644
index 000000000..bcee5feaf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlNumericFieldModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlNumericFieldModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlNumericFieldModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlNumericFieldModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.NumericField");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlNumericFieldModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlPatternField.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlPatternField.java
new file mode 100644
index 000000000..72a864373
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlPatternField.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlPatternField extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "PatternField",
+ "UnoControlPatternField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the PatternFieldControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlPatternField object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlPatternField
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlPatternFieldModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlPatternFieldModel.java
new file mode 100644
index 000000000..e2dcd18cf
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlPatternFieldModel.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+public class UnoControlPatternFieldModel extends TestCase {
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlPatternFieldModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlPatternFieldModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.PatternField");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlPatternFieldModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlProgressBarModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlProgressBarModel.java
new file mode 100644
index 000000000..f36d39d0b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlProgressBarModel.java
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.awt.UnoControlProgressBarModel</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::awt::UnoControlProgressBarModel</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.awt.UnoControlProgressBarModel
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see ifc.awt._UnoControlProgressBarModel
+* @see ifc.io._XPersistObject
+* @see ifc.lang._XComponent
+* @see ifc.beans._XPropertySet
+* @see ifc.beans._XMultiPropertySet
+*/
+public class UnoControlProgressBarModel extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.UnoControlProgressBarModel</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws StatusException {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlProgressBarModel");
+ } catch (Exception e) {
+ }
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.ProgressBar");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButton.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButton.java
new file mode 100644
index 000000000..1f13ae6c0
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButton.java
@@ -0,0 +1,130 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlRadioButton extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "RadioButton",
+ "UnoControlRadioButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the RadioButtonControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlRadioButton object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlRadioButton
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButtonModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButtonModel.java
new file mode 100644
index 000000000..859280865
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButtonModel.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+public class UnoControlRadioButtonModel extends TestCase {
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlRadioButtonModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlRadioButtonModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.RadioButton");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlRadioButtonModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlScrollBarModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlScrollBarModel.java
new file mode 100644
index 000000000..1a8e21a38
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlScrollBarModel.java
@@ -0,0 +1,88 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.awt.UnoControlScrollBarModel</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::awt::UnoControlScrollBarModel</code></li>
+* <li> <code>com::sun::star::io::XPersistObject</code></li>
+* <li> <code>com::sun::star::lang::XComponent</code></li>
+* <li> <code>com::sun::star::beans::XPropertySet</code></li>
+* <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.awt.UnoControlScrollBarModel
+* @see com.sun.star.io.XPersistObject
+* @see com.sun.star.lang.XComponent
+* @see com.sun.star.beans.XPropertySet
+* @see com.sun.star.beans.XMultiPropertySet
+* @see ifc.awt._UnoControlScrollBarModel
+* @see ifc.io._XPersistObject
+* @see ifc.lang._XComponent
+* @see ifc.beans._XPropertySet
+* @see ifc.beans._XMultiPropertySet
+*/
+public class UnoControlScrollBarModel extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.UnoControlScrollBarModel</code>.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'OBJNAME'</code> for
+ * {@link ifc.io._XPersistObject} </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws StatusException {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlScrollBarModel");
+ } catch (Exception e) {
+ }
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.ScrollBar");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlTimeField.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlTimeField.java
new file mode 100644
index 000000000..574330987
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlTimeField.java
@@ -0,0 +1,140 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoControlTimeField extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "TimeField",
+ "UnoControlTimeField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the TimeFieldControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlTimeField object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+ tEnv.addObjRelation("XWindow.ControlShape", aShape);
+
+ // Adding relation for XTextListener
+ ifc.awt._XTextListener.TestTextListener listener =
+ new ifc.awt._XTextListener.TestTextListener();
+ XTextComponent textComp = UnoRuntime.queryInterface(
+ XTextComponent.class, oObj);
+ textComp.addTextListener(listener);
+ tEnv.addObjRelation("TestTextListener", listener);
+
+ log.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlTimeField
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoControlTimeFieldModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoControlTimeFieldModel.java
new file mode 100644
index 000000000..90f75d027
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoControlTimeFieldModel.java
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+public class UnoControlTimeFieldModel extends TestCase {
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlTimeFieldModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for UnoControlTimeFieldModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "stardiv.vcl.controlmodel.TimeField");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlTimeFieldModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoScrollBarControl.java b/qadevOOo/tests/java/mod/_toolkit/UnoScrollBarControl.java
new file mode 100644
index 000000000..3a6b27474
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoScrollBarControl.java
@@ -0,0 +1,156 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.awt.Dimension;
+import java.awt.Toolkit;
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.SOfficeFactory;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoScrollBarControl extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ xTextDoc = SOF.createTextDoc(null);
+
+ log.println("maximize the window size");
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xTextDoc);
+ XFrame xFrame = xModel.getCurrentController().getFrame();
+ XWindow xWin = xFrame.getContainerWindow();
+
+ Toolkit.getDefaultToolkit();
+ Dimension dim = new Dimension(800, 600);
+
+ Rectangle newPosSize = xWin.getPosSize();
+ newPosSize.Width = (int) dim.getWidth();
+ newPosSize.Height = (int) dim.getHeight();
+ newPosSize.X = 0;
+ newPosSize.Y = 0;
+
+ xWin.setPosSize(newPosSize.X, newPosSize.Y, newPosSize.Width,
+ newPosSize.Height, com.sun.star.awt.PosSize.POSSIZE);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "ScrollBar",
+ "UnoControlScrollBar");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the ScrollBarControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlScrollBar object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //adding Object-Relation for XScrollBar
+ tEnv.addObjRelation("Document", xTextDoc);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControl.java b/qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControl.java
new file mode 100644
index 000000000..df8506f9e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControl.java
@@ -0,0 +1,133 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDevice;
+import com.sun.star.awt.XGraphics;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.drawing.XControlShape;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.view.XControlAccess;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.FormTools;
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoSpinButtonControl extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ Param.getMSF());
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) throws Exception {
+ XInterface oObj = null;
+ XWindowPeer the_win = null;
+ XToolkit the_kit = null;
+ XDevice aDevice = null;
+ XGraphics aGraphic = null;
+ XControl aControl = null;
+
+ //Insert a ControlShape and get the ControlModel
+ XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000,
+ 4500, 15000,
+ 10000,
+ "SpinButton",
+ "UnoControlSpinButton");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape);
+
+ XControlModel the_Model = aShape.getControl();
+
+ XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000,
+ 4500, 5000, 10000,
+ "TextField");
+
+ WriterTools.getDrawPage(xTextDoc).add(aShape2);
+
+ XControlModel the_Model2 = aShape2.getControl();
+
+ //Try to query XControlAccess
+ XControlAccess the_access = UnoRuntime.queryInterface(
+ XControlAccess.class,
+ xTextDoc.getCurrentController());
+
+ //get the SpinButtonControl for the needed Object relations
+ oObj = the_access.getControl(the_Model);
+ aControl = the_access.getControl(the_Model2);
+ the_win = the_access.getControl(the_Model).getPeer();
+ the_kit = the_win.getToolkit();
+ aDevice = the_kit.createScreenCompatibleDevice(200, 200);
+ aGraphic = aDevice.createGraphics();
+
+ log.println(
+ "creating a new environment for UnoControlSpinButton object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+
+ //adding Object-Relation for XScrollBar
+ tEnv.addObjRelation("Document", xTextDoc);
+
+
+ //Adding ObjRelation for XView
+ tEnv.addObjRelation("GRAPHICS", aGraphic);
+
+
+ //Adding ObjRelation for XControl
+ tEnv.addObjRelation("CONTEXT", xTextDoc);
+ tEnv.addObjRelation("WINPEER", the_win);
+ tEnv.addObjRelation("TOOLKIT", the_kit);
+ tEnv.addObjRelation("MODEL", the_Model);
+
+ XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class,
+ aControl);
+
+ tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel);
+
+ tEnv.addObjRelation("Document", xTextDoc);
+
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControlModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControlModel.java
new file mode 100644
index 000000000..911e81b96
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControlModel.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.utils;
+
+
+public class UnoSpinButtonControlModel extends TestCase {
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.awt.UnoControlSpinButtonModel</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log)
+ throws StatusException {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.UnoControlSpinButtonModel");
+ } catch (Exception e) {
+ }
+
+ log.println("creating a new environment for object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME",
+ "com.sun.star.awt.UnoControlSpinButtonModel");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} \ No newline at end of file
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java b/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java
new file mode 100644
index 000000000..95f9c56d9
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java
@@ -0,0 +1,265 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.awt.XControl;
+import com.sun.star.awt.XControlContainer;
+import com.sun.star.awt.XControlModel;
+import com.sun.star.awt.XDialog;
+import com.sun.star.awt.XToolkit;
+import com.sun.star.awt.tree.XMutableTreeDataModel;
+import com.sun.star.awt.tree.XMutableTreeNode;
+import com.sun.star.awt.tree.XTreeControl;
+import com.sun.star.awt.tree.XTreeNode;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.CommandAbortedException;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+import java.util.Comparator;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.utils;
+
+
+public class UnoTreeControl extends TestCase {
+ private static XMutableTreeDataModel mXTreeDataModel;
+ private static XMultiServiceFactory mxMSF;
+
+ @Override
+ protected void initialize(TestParameters Param, PrintWriter log) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory(
+ Param.getMSF());
+
+ log.println("creating a textdocument");
+ SOF.createTextDoc(null);
+ }
+
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ String sTreeControlName = "UnoTreeControl-Test";
+ mxMSF = Param.getMSF();
+ XInterface oObj = null;
+ XMutableTreeNode xNode = null;
+
+ try {
+
+ mXTreeDataModel = UnoRuntime.queryInterface(XMutableTreeDataModel.class,
+ mxMSF.createInstance("com.sun.star.awt.tree.MutableTreeDataModel"));
+
+ xNode = mXTreeDataModel.createNode("UnoTreeControl", false);
+
+ xNode.setDataValue( "UnoTreeControl");
+ xNode.setExpandedGraphicURL( "private:graphicrepository/sd/res/triangle_down.png");
+ xNode.setCollapsedGraphicURL( "private:graphicrepository/sd/res/triangle_right.png");
+
+ fillNode(xNode);
+
+ mXTreeDataModel.setRoot(xNode);
+
+ XControlModel xDialogModel = UnoRuntime.queryInterface(XControlModel.class,
+ mxMSF.createInstance("com.sun.star.awt.UnoControlDialogModel"));
+
+ XPropertySet xDialogPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xDialogModel);
+ xDialogPropertySet.setPropertyValue( "PositionX", Integer.valueOf(50) );
+ xDialogPropertySet.setPropertyValue( "PositionY", Integer.valueOf(50) );
+ xDialogPropertySet.setPropertyValue( "Width", Integer.valueOf(256) );
+ xDialogPropertySet.setPropertyValue( "Height", Integer.valueOf(256) );
+ xDialogPropertySet.setPropertyValue( "Title", "Tree Control Test");
+
+ XMultiServiceFactory xDialogMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, xDialogModel);
+
+ XControlModel xTreeControlModel = UnoRuntime.queryInterface(XControlModel.class,
+ xDialogMSF.createInstance("com.sun.star.awt.tree.TreeControlModel"));
+
+ XPropertySet XTreeControlModelSet = UnoRuntime.queryInterface(XPropertySet.class, xTreeControlModel);
+
+ XTreeControlModelSet.setPropertyValue( "SelectionType",com.sun.star.view.SelectionType.NONE);
+ XTreeControlModelSet.setPropertyValue( "PositionX", Integer.valueOf(3 ));
+ XTreeControlModelSet.setPropertyValue( "PositionY", Integer.valueOf(3 ));
+ XTreeControlModelSet.setPropertyValue( "Width", Integer.valueOf(253));
+ XTreeControlModelSet.setPropertyValue( "Height", Integer.valueOf(253) );
+ XTreeControlModelSet.setPropertyValue( "DataModel", mXTreeDataModel );
+ XTreeControlModelSet.setPropertyValue( "ShowsRootHandles", Boolean.FALSE);
+ XTreeControlModelSet.setPropertyValue( "ShowsHandles", Boolean.FALSE);
+ XTreeControlModelSet.setPropertyValue( "RootDisplayed", Boolean.TRUE);
+ XTreeControlModelSet.setPropertyValue( "Editable", Boolean.TRUE);
+
+ XNameContainer xDialogModelContainer = UnoRuntime.queryInterface(XNameContainer.class, xDialogModel);
+
+ xDialogModelContainer.insertByName( sTreeControlName, xTreeControlModel);
+
+ XControl xDialogControl = UnoRuntime.queryInterface(XControl.class,
+ mxMSF.createInstance("com.sun.star.awt.UnoControlDialog"));
+
+ xDialogControl.setModel( xDialogModel );
+
+ XToolkit xToolkit = UnoRuntime.queryInterface(XToolkit.class,
+ mxMSF.createInstance("com.sun.star.awt.Toolkit" ));
+
+ xDialogControl.createPeer( xToolkit, null );
+
+ // get the peers of the sub controls from the dialog peer container
+ XControlContainer xDialogContainer = UnoRuntime.queryInterface(XControlContainer.class ,xDialogControl);
+
+ XTreeControl xTreeControl = UnoRuntime.queryInterface(XTreeControl.class, xDialogContainer.getControl( sTreeControlName ));
+
+ xTreeControl.expandNode(xNode);
+ oObj = xTreeControl;
+
+ XDialog xDialog = UnoRuntime.queryInterface(XDialog.class, xDialogControl);
+
+ execurteDialog aDialog = new execurteDialog(xDialog);
+
+ aDialog.start();
+
+ } catch (com.sun.star.uno.Exception ex) {
+ ex.printStackTrace();
+ }
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("XTreeControl_Node", xNode);
+
+ //com.sun.star.view.XSelectionSupplier
+ try {
+
+ System.out.println("count of children: " + xNode.getChildCount());
+ tEnv.addObjRelation("Selections", new Object[]{xNode.getChildAt(0), xNode});
+ } catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
+ log.println("ERROR: could not add object relation 'Selections' because 'xNode.getChildAt(1) failed: " +
+ ex.toString());
+ }
+
+ tEnv.addObjRelation("Comparer",
+ new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ XMutableTreeNode xNode1 = UnoRuntime.queryInterface(
+ XMutableTreeNode.class, o1);
+ XTreeNode xNode2a = null;
+ try {
+ xNode2a = (XTreeNode) AnyConverter.toObject(new Type(XTreeNode.class), o2);
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ ex.printStackTrace();
+ }
+
+ XMutableTreeNode xNode2 = UnoRuntime.queryInterface(
+ XMutableTreeNode.class, xNode2a);
+
+ if (((String) xNode1.getDataValue()).equals(xNode2.getDataValue())) {
+ return 0;
+ }
+
+ return -1;
+ }
+ });
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+ private void fillNode( XMutableTreeNode xNode ){
+
+ if( xNode.getChildCount() == 0 )
+ {
+ xNode.getDataValue();
+
+ String officeUserPath = utils.getOfficeUserPath(mxMSF);
+ Object fileacc = null;
+ try {
+ fileacc = mxMSF.createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ } catch (com.sun.star.uno.Exception ex) {
+ ex.printStackTrace();
+ }
+ UnoRuntime.queryInterface(XSimpleFileAccess.class,fileacc);
+
+
+ dirlist(officeUserPath, xNode);
+ }
+ }
+
+ private void dirlist(String dir, XMutableTreeNode xNode){
+
+ Object fileacc = null;
+ try {
+ fileacc = mxMSF.createInstance("com.sun.star.comp.ucb.SimpleFileAccess");
+ } catch (com.sun.star.uno.Exception ex) {
+ ex.printStackTrace();
+ }
+ XSimpleFileAccess sfa = UnoRuntime.queryInterface(XSimpleFileAccess.class,fileacc);
+ XMutableTreeNode xChildNode = null;
+ try {
+ xChildNode = mXTreeDataModel.createNode(dir.substring(dir.lastIndexOf("/")+1, dir.length()), sfa.isFolder(dir));
+ xChildNode.setDataValue(dir);
+ sfa.isFolder(dir);
+ if (sfa.isFolder(dir)){
+ xChildNode.setExpandedGraphicURL( "private:graphicrepository/sd/res/triangle_down.png");
+ xChildNode.setCollapsedGraphicURL("private:graphicrepository/sd/res/triangle_right.png");
+ String[] children = sfa.getFolderContents(dir, true);
+ if (children != null){
+ for (int i=0; i<children.length; i++) {
+ // Get filename of file or directory
+ String filename = children[i];
+ dirlist( filename , xChildNode);
+ }
+ }
+ }
+ else{
+ xChildNode.setNodeGraphicURL( "private:graphicrepository/sw/res/nc20010.png");
+ }
+ } catch (CommandAbortedException ex) {
+ ex.printStackTrace();
+ } catch (com.sun.star.uno.Exception ex) {
+ ex.printStackTrace();
+ }
+
+ try {
+ xNode.appendChild( xChildNode );
+ } catch (com.sun.star.lang.IllegalArgumentException ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private static class execurteDialog extends Thread{
+ private final XDialog mXDialog;
+
+ public execurteDialog(XDialog xDialog){
+ mXDialog = xDialog;
+ }
+
+ @Override
+ public void run() {
+ mXDialog.endExecute();
+ }
+ }
+
+
+} // finish class UnoControlRadioButton
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoTreeModel.java b/qadevOOo/tests/java/mod/_toolkit/UnoTreeModel.java
new file mode 100644
index 000000000..bb7534ebd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoTreeModel.java
@@ -0,0 +1,77 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+package mod._toolkit;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.WriterTools;
+import util.utils;
+
+
+public class UnoTreeModel extends TestCase {
+ private static XTextDocument xTextDoc;
+
+ /**
+ * Creates StarOffice Writer document.
+ */
+ @Override
+ protected void initialize(TestParameters tParam, PrintWriter log) throws Exception {
+ log.println("creating a textdocument");
+ xTextDoc = WriterTools.createTextDoc(
+ tParam.getMSF());
+ }
+
+ /**
+ * Disposes StarOffice Writer document.
+ */
+ @Override
+ protected void cleanup(TestParameters tParam, PrintWriter log) {
+ log.println(" disposing xTextDoc ");
+
+ util.DesktopTools.closeDoc(xTextDoc);
+ }
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param,
+ PrintWriter log) {
+ XInterface oObj = null;
+
+ try {
+ oObj = (XInterface) Param.getMSF().createInstance(
+ "com.sun.star.awt.tree.TreeControlModel");
+ } catch (Exception e) {
+ }
+
+ log.println(
+ "creating a new environment for TreeControlModel object");
+
+ TestEnvironment tEnv = new TestEnvironment(oObj);
+
+ tEnv.addObjRelation("OBJNAME", "com.sun.star.awt.tree.TreeControlModel");
+ System.out.println("ImplementationName: " + utils.getImplName(oObj));
+
+ return tEnv;
+ } // finish method getTestEnvironment
+} // finish class UnoControlListBoxModel
diff --git a/qadevOOo/tests/java/mod/_toolkit/package.html b/qadevOOo/tests/java/mod/_toolkit/package.html
new file mode 100644
index 000000000..1ab783205
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_toolkit/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'toolkit'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_typeconverter/uno/TypeConverter.java b/qadevOOo/tests/java/mod/_typeconverter/uno/TypeConverter.java
new file mode 100644
index 000000000..775c6bad5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_typeconverter/uno/TypeConverter.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._typeconverter.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+public class TypeConverter extends TestCase {
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance( "com.sun.star.script.Converter" );
+ }
+ catch( Exception e ) {
+ log.println("Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class TypeConverter
+
diff --git a/qadevOOo/tests/java/mod/_typeconverter/uno/package.html b/qadevOOo/tests/java/mod/_typeconverter/uno/package.html
new file mode 100644
index 000000000..45007682b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_typeconverter/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'tcv'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_typemgr/uno/TypeDescriptionManager.java b/qadevOOo/tests/java/mod/_typemgr/uno/TypeDescriptionManager.java
new file mode 100644
index 000000000..8fd210c0a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_typemgr/uno/TypeDescriptionManager.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._typemgr.uno;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.uno.XInterface;
+import java.io.PrintWriter;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+public class TypeDescriptionManager extends TestCase {
+
+ /**
+ * creating a TestEnvironment for the interfaces to be tested
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XPropertySet xProp = UnoRuntime.queryInterface(
+ XPropertySet.class, xMSF);
+ // get context
+ XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class,
+ xProp.getPropertyValue("DefaultContext"));
+ // get the type description manager from context
+ oInterface = xContext.getValueByName("/singletons/" +
+ "com.sun.star.reflection.theTypeDescriptionManager");
+ }
+ catch( Exception e ) {
+ log.println("Introspection Service not available" );
+ }
+ oObj = (XInterface) oInterface;
+
+
+
+ log.println( " creating a new environment for Introspection object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // Object relation for XHierarchicalNameAccess ifc
+ // Name of the existing object
+ tEnv.addObjRelation("ElementName", "com.sun.star.container.XNameAccess") ;
+ tEnv.addObjRelation("SearchString", "com.sun.star.loader");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+} // finish class TypeDescriptionManager
+
diff --git a/qadevOOo/tests/java/mod/_typemgr/uno/package.html b/qadevOOo/tests/java/mod/_typemgr/uno/package.html
new file mode 100644
index 000000000..277a28045
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_typemgr/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'tdmgr'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_ucb/UcbContentProviderProxyFactory.java b/qadevOOo/tests/java/mod/_ucb/UcbContentProviderProxyFactory.java
new file mode 100644
index 000000000..b24ca70e7
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucb/UcbContentProviderProxyFactory.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucb;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.ContentProviderFactory</code>. <p>
+*/
+public class UcbContentProviderProxyFactory extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.ContentProviderFactory</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters Param,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UcbContentProviderProxyFactory" );
+
+ oObj = (XInterface) oInterface;
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class UcbContentProviderProxyFactory
+
diff --git a/qadevOOo/tests/java/mod/_ucb/UcbPropertiesManager.java b/qadevOOo/tests/java/mod/_ucb/UcbPropertiesManager.java
new file mode 100644
index 000000000..5f04e3864
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucb/UcbPropertiesManager.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucb;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+public class UcbPropertiesManager extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UcbPropertiesManager" );
+
+ oObj = (XInterface) oInterface;
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class UcbPropertiesManager
+
diff --git a/qadevOOo/tests/java/mod/_ucb/UcbStore.java b/qadevOOo/tests/java/mod/_ucb/UcbStore.java
new file mode 100644
index 000000000..784210db5
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucb/UcbStore.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucb;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.Store</code>. <p>
+*/
+public class UcbStore extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.Store</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance( "com.sun.star.comp.ucb.UcbStore" );
+
+ oObj = (XInterface) oInterface;
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class UcbStore
+
diff --git a/qadevOOo/tests/java/mod/_ucb/UniversalContentBroker.java b/qadevOOo/tests/java/mod/_ucb/UniversalContentBroker.java
new file mode 100644
index 000000000..17f415569
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucb/UniversalContentBroker.java
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucb;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.UniversalContentBroker</code>. <p>
+*/
+public class UniversalContentBroker extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucb.UniversalContentBroker</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UniversalContentBroker" );
+
+ oObj = (XInterface) oInterface;
+
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class,oObj);
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XContentProvider
+ tEnv.addObjRelation("FACTORY",CIF);
+
+ tEnv.addObjRelation("CONTENT1",
+ "vnd.sun.star.webdav://localhost/davhome/");
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class UniversalContentBroker
+
diff --git a/qadevOOo/tests/java/mod/_ucpchelp/CHelpContentProvider.java b/qadevOOo/tests/java/mod/_ucpchelp/CHelpContentProvider.java
new file mode 100644
index 000000000..0cc406fd2
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucpchelp/CHelpContentProvider.java
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucpchelp;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class CHelpContentProvider extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ Object aUCB = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.HelpContentProvider" );
+ aUCB = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UniversalContentBroker" );
+
+ oObj = (XInterface) oInterface;
+
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class,aUCB);
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XContentProvider
+ tEnv.addObjRelation("FACTORY",CIF);
+ tEnv.addObjRelation("CONTENT1", "vnd.sun.star.help://swriter?System=WIN&Language=de&Query=text&HitCount=120&Scope=Heading");
+ tEnv.addObjRelation("CONTENT2",
+ util.utils.getFullTestURL("SwXTextEmbeddedObject.sdw"));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class FileProvider
+
diff --git a/qadevOOo/tests/java/mod/_ucpdav/WebDAVContentProvider.java b/qadevOOo/tests/java/mod/_ucpdav/WebDAVContentProvider.java
new file mode 100644
index 000000000..cc0736f32
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucpdav/WebDAVContentProvider.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucpdav;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Creates a <code>com.sun.star.ucb.WebDAVContentProvider</code> instance.
+ */
+public class WebDAVContentProvider extends TestCase {
+ /**
+ * Creates a <code>com.sun.star.ucb.WebDAVContentProvider</code> instance
+ * and adds a <code>XContentIdentifierFactory</code> instance as a "FACTORY"
+ * relation for <code>XContentProviderTest</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XInterface xInt;
+
+ log.println("creating WebDAVContentProvider instance");
+ xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.ucb.WebDAVContentProvider");
+
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+
+ log.println("creating XContentIdentifierFactory");
+ XContentIdentifierFactory xCIF;
+
+ xCIF = UnoRuntime.queryInterface(
+ XContentIdentifierFactory.class,
+ xMSF.createInstance(
+ "com.sun.star.comp.ucb.UniversalContentBroker"));
+
+ tEnv.addObjRelation("FACTORY", xCIF);
+
+ tEnv.addObjRelation("CONTENT1",
+ "vnd.sun.star.webdav://localhost/davhome/");
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_ucpfile/FileProvider.java b/qadevOOo/tests/java/mod/_ucpfile/FileProvider.java
new file mode 100644
index 000000000..f4fab5e9b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucpfile/FileProvider.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucpfile;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class FileProvider extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.FileProvider" );
+
+ oObj = (XInterface) oInterface;
+
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class,oObj);
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XContentProvider
+ tEnv.addObjRelation("FACTORY",CIF);
+ tEnv.addObjRelation("CONTENT1",
+ util.utils.getOfficeTemp(Param.getMSF()));
+ tEnv.addObjRelation("CONTENT2",
+ util.utils.getFullTestURL("SwXTextEmbeddedObject.sdw"));
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class FileProvider
+
diff --git a/qadevOOo/tests/java/mod/_ucpftp/FTPContentProvider.java b/qadevOOo/tests/java/mod/_ucpftp/FTPContentProvider.java
new file mode 100644
index 000000000..7bb047214
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucpftp/FTPContentProvider.java
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucpftp;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class FTPContentProvider extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ Object aUCB = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.ucb.FTPContentProvider" );
+ aUCB = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UniversalContentBroker" );
+
+ oObj = (XInterface) oInterface;
+
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class,aUCB);
+
+ log.println("ImplementationName: "+util.utils.getImplName(oObj));
+ util.dbg.printInterfaces(oObj);
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XContentProvider
+ tEnv.addObjRelation("FACTORY",CIF);
+ tEnv.addObjRelation("CONTENT1","ftp:///ftp.sun.com");
+ tEnv.addObjRelation("CONTENT2","ftp:///ftp.openoffice.org");
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class FileProvider
+
diff --git a/qadevOOo/tests/java/mod/_ucphier/HierarchyContentProvider.java b/qadevOOo/tests/java/mod/_ucphier/HierarchyContentProvider.java
new file mode 100644
index 000000000..1d0cf0e81
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucphier/HierarchyContentProvider.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucphier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class HierarchyContentProvider extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ Object ucb = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.HierarchyContentProvider" );
+ ucb = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UniversalContentBroker" );
+
+ oObj = (XInterface) oInterface;
+
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class,ucb);
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XContentProvider
+ tEnv.addObjRelation("FACTORY",CIF);
+ tEnv.addObjRelation("CONTENT1","vnd.sun.star.hier:/");
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class HierarchyContentProvider
+
diff --git a/qadevOOo/tests/java/mod/_ucphier/HierarchyDataSource.java b/qadevOOo/tests/java/mod/_ucphier/HierarchyDataSource.java
new file mode 100644
index 000000000..c0d5a8146
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucphier/HierarchyDataSource.java
@@ -0,0 +1,60 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucphier;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Creates <code>HierarchyDataSource</code> implementation of
+ * <code>ucphier</code> module.
+ *
+ * @see ifc.lang._XMultiServiceFactory
+ */
+public class HierarchyDataSource extends TestCase {
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) {
+ XInterface oObj = null;
+ Object oInterface = null;
+
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ oInterface = xMSF.createInstance(
+ "com.sun.star.ucb.DefaultHierarchyDataSource");
+ }
+ catch( com.sun.star.uno.Exception e ) {
+ log.println("Service not available" );
+ }
+
+ oObj = (XInterface) oInterface;
+
+ log.println( " creating a new environment for object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_ucppkg/PackageContentProvider.java b/qadevOOo/tests/java/mod/_ucppkg/PackageContentProvider.java
new file mode 100644
index 000000000..72b7f3577
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucppkg/PackageContentProvider.java
@@ -0,0 +1,68 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucppkg;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class PackageContentProvider extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInterface = null;
+ Object ucb = null;
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ oInterface = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.PackageContentProvider" );
+ ucb = xMSF.createInstance
+ ( "com.sun.star.comp.ucb.UniversalContentBroker" );
+
+ oObj = (XInterface) oInterface;
+
+ XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class,ucb);
+
+ System.out.println("ImplementationName: "+util.utils.getImplName(oObj));
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //Adding ObjRelation for XContentProvider
+ tEnv.addObjRelation("FACTORY",CIF);
+ tEnv.addObjRelation("CONTENT1",
+ "vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/");
+ tEnv.addObjRelation("CONTENT2",
+ "vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fyour.xsw/");
+
+ return tEnv;
+
+ } // finish method getTestEnvironment
+
+} // finish class PackageContentProvider
+
diff --git a/qadevOOo/tests/java/mod/_ucprmt/ContentProvider.java b/qadevOOo/tests/java/mod/_ucprmt/ContentProvider.java
new file mode 100644
index 000000000..22c788522
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucprmt/ContentProvider.java
@@ -0,0 +1,96 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucprmt;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.ucb.RemoteAccessContentProvider</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::ucb::XContentProvider</code></li>
+* <li> <code>com::sun::star::ucb::XFileIdentifierConverter</code></li>
+* <li> <code>com::sun::star::ucb::XContentIdentifierFactory</code></li>
+* <li> <code>com::sun::star::ucb::XParameterizedContentProvider</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see com.sun.star.ucb.XContentProvider
+* @see com.sun.star.ucb.XFileIdentifierConverter
+* @see com.sun.star.ucb.XContentIdentifierFactory
+* @see com.sun.star.ucb.XParameterizedContentProvider
+* @see ifc.ucb._XContentProvider
+* @see ifc.ucb._XFileIdentifierConverter
+* @see ifc.ucb._XContentIdentifierFactory
+* @see ifc.ucb._XParameterizedContentProvider
+*/
+public class ContentProvider extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.ucprmt.ContentProvider</code>. <p>
+ * Object relations created :
+ * <ul>
+ * <li> <code>'FACTORY'</code> for
+ * {@link ifc.ucb._XContentProvider} factory for
+ * content identifiers. Here it is
+ * <code>UniversalContentBroker</code> service.</li>
+ * <li> <code>'CONTENT1'</code> for
+ * {@link ifc.ucb._XContentProvider}: suitable
+ * content URL for this provider </li>
+ * <li> <code>'CONTENT2'</code> for
+ * {@link ifc.ucb._XContentProvider}: another suitable
+ * content URL for this provider </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log ) throws Exception {
+ XInterface oObj = null;
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XContentIdentifierFactory cntIDFac = null ;
+
+ oObj = (XInterface) xMSF.createInstance
+ ("com.sun.star.ucb.RemoteAccessContentProvider");
+ cntIDFac = UnoRuntime.queryInterface
+ (XContentIdentifierFactory.class, oObj) ;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XContentProvider
+ tEnv.addObjRelation("FACTORY", cntIDFac) ;
+ tEnv.addObjRelation("CONTENT1","vnd.sun.star.wfs:///user/work");
+ tEnv.addObjRelation("CONTENT2","vnd.sun.star.wfs:///user/config");
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_ucprmt/ProviderAcceptor.java b/qadevOOo/tests/java/mod/_ucprmt/ProviderAcceptor.java
new file mode 100644
index 000000000..733b8d1be
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucprmt/ProviderAcceptor.java
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucprmt;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.ucb.XRemoteContentProviderAcceptor;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ProviderAcceptor extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters Param, PrintWriter log) throws Exception {
+
+ Object oInterface = Param.getMSF().createInstance
+ ("com.sun.star.ucb.RemoteContentProviderAcceptor");
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ //adding ObjRelation for XRemoteContentProviderAcceptor
+ XRemoteContentProviderAcceptor xRCPA = UnoRuntime.queryInterface(XRemoteContentProviderAcceptor.class,oObj);
+
+ tEnv.addObjRelation("RCPA",xRCPA);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_ucprmt/ProxyProvider.java b/qadevOOo/tests/java/mod/_ucprmt/ProxyProvider.java
new file mode 100644
index 000000000..2c075ca0d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_ucprmt/ProxyProvider.java
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._ucprmt;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+public class ProxyProvider extends TestCase {
+
+ @Override
+ public TestEnvironment createTestEnvironment
+ ( TestParameters Param, PrintWriter log ) throws Exception {
+
+ XMultiServiceFactory xMSF = Param.getMSF();
+ XInterface oObj = (XInterface) xMSF.createInstance
+ ("com.sun.star.ucb.RemoteProxyContentProvider");
+ XContentIdentifierFactory cntIDFac = UnoRuntime.queryInterface
+ (XContentIdentifierFactory.class, oObj) ;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation for XContentProvider
+ tEnv.addObjRelation("FACTORY", cntIDFac) ;
+ tEnv.addObjRelation("CONTENT1","vnd.sun.star.pkg:///user/work");
+ tEnv.addObjRelation("CONTENT1","vnd.sun.star.wfs://");
+
+ tEnv.addObjRelation("NoCONTENT",Boolean.TRUE);
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_uui/UUIInteractionHandler.java b/qadevOOo/tests/java/mod/_uui/UUIInteractionHandler.java
new file mode 100644
index 000000000..bcabde63d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_uui/UUIInteractionHandler.java
@@ -0,0 +1,63 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._uui;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+* Test for object which is represented by service
+* <code>com.sun.star.uui.InteractionHandler</code>. <p>
+* Object implements the following interfaces :
+* <ul>
+* <li> <code>com::sun::star::task::XInteractionHandler</code></li>
+* </ul>
+* This object test <b> is NOT </b> designed to be run in several
+* threads concurrently.
+* @see ifc.task._XInteractionHandler
+*/
+public class UUIInteractionHandler extends TestCase {
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.uui.InteractionHandler</code>.
+ */
+ @Override
+ public TestEnvironment createTestEnvironment( TestParameters Param,
+ PrintWriter log )
+ throws Exception {
+ XMultiServiceFactory xMSF = Param.getMSF();
+ Object oInterface = xMSF.createInstance
+ ( "com.sun.star.uui.InteractionHandler" );
+ XInterface oObj = (XInterface) oInterface;
+
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
+
diff --git a/qadevOOo/tests/java/mod/_uuresolver/UnoUrlResolver.java b/qadevOOo/tests/java/mod/_uuresolver/UnoUrlResolver.java
new file mode 100644
index 000000000..594c67178
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_uuresolver/UnoUrlResolver.java
@@ -0,0 +1,65 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._uuresolver;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+public class UnoUrlResolver extends TestCase {
+
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.bridge.UnoUrlResolver");
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+ Object oBFctr = xMSF.createInstance(
+ "com.sun.star.bridge.BridgeFactory");
+ tEnv.addObjRelation("BRIDGEFACTORY", oBFctr);
+
+ Object oAcctr = xMSF.createInstance(
+ "com.sun.star.connection.Acceptor") ;
+ tEnv.addObjRelation("ACCEPTOR", oAcctr);
+
+ String os = System.getProperty("OS");
+ System.out.println("OS: " + os);
+ int port = 20004;
+ if (os.equalsIgnoreCase("wntmsci"))
+ port = 20004;
+ if (os.equalsIgnoreCase("unxsols"))
+ port = 20004;
+ if (os.equalsIgnoreCase("unxsoli"))
+ port = 30004;
+ if (os.equalsIgnoreCase("unxlngi"))
+ port = 20006;
+
+ tEnv.addObjRelation("PORT", Integer.valueOf(port));
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_uuresolver/package.html b/qadevOOo/tests/java/mod/_uuresolver/package.html
new file mode 100644
index 000000000..20c38e20e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_uuresolver/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'uuresolver'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_uuresolver/uno/UnoUrlResolver.java b/qadevOOo/tests/java/mod/_uuresolver/uno/UnoUrlResolver.java
new file mode 100644
index 000000000..ffb7c5820
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_uuresolver/uno/UnoUrlResolver.java
@@ -0,0 +1,54 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._uuresolver.uno;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+public class UnoUrlResolver extends TestCase {
+
+
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam,
+ PrintWriter log) throws Exception {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ XInterface xInt = (XInterface)xMSF.createInstance(
+ "com.sun.star.bridge.UnoUrlResolver");
+ TestEnvironment tEnv = new TestEnvironment(xInt);
+ Object oBFctr = xMSF.createInstance(
+ "com.sun.star.bridge.BridgeFactory");
+ tEnv.addObjRelation("BRIDGEFACTORY", oBFctr);
+
+ Object oAcctr = xMSF.createInstance(
+ "com.sun.star.connection.Acceptor") ;
+ tEnv.addObjRelation("ACCEPTOR", oAcctr);
+
+ int port = util.utils.getNextFreePort(20004);
+ tEnv.addObjRelation("PORT", Integer.valueOf(port));
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_uuresolver/uno/package.html b/qadevOOo/tests/java/mod/_uuresolver/uno/package.html
new file mode 100644
index 000000000..20c38e20e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_uuresolver/uno/package.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<HTML>
+<BODY>
+<P>Contains all test cases for the module 'uuresolver'.</P>
+</BODY>
+</HTML>
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java
new file mode 100644
index 000000000..9edbe3aa3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java
@@ -0,0 +1,182 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Chart;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Chart.XMLContentExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLContentExporter extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Close document
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Chart.XMLContentExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The chart document is set as a source document for exporter
+ * created. A new 'main title' is set for chart. This made
+ * for checking if this title is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String exportStr = "XMLContentExporter" ;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Chart.XMLContentExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xChartDoc);
+
+ Object oTitle = xChartDoc.getTitle() ;
+ XPropertySet xTitleProp = UnoRuntime.queryInterface
+ (XPropertySet.class, oTitle) ;
+ xTitleProp.setPropertyValue("String", exportStr) ;
+
+ filter.addTag(new XMLTools.Tag("office:document-content")) ;
+ filter.addTagEnclosed(new XMLTools.Tag("office:body"),
+ new XMLTools.Tag("office:document-content"));
+ filter.addCharactersEnclosed(exportStr,
+ new XMLTools.Tag("chart:title")) ;
+
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"schart: StarOffice XML (Chart)"}));
+ tEnv.addObjRelation("SourceDocument",xChartDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check() ;
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java
new file mode 100644
index 000000000..1481e0134
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Chart;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Chart.XMLContentImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLContentImporter extends TestCase {
+ XComponent comp ;
+ XChartDocument xChartDoc = null;
+
+ /**
+ * New chart document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ comp = xChartDoc;
+ }
+
+ /**
+ * Close document
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ comp = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Chart.XMLContentImporter</code><p>
+ *
+ * The chart document is set as a target document for importer.
+ * Imported XML-data contains the tag which specifies the title
+ * of a chart.
+ * After import title name getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impValue = "XMLContentImporter_test" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ final XPropertySet xTitleProp ;
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Chart.XMLContentImporter") ;
+
+
+ Object oTitle = xChartDoc.getTitle() ;
+ xTitleProp = UnoRuntime.queryInterface
+ (XPropertySet.class, oTitle) ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-content",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:chart", "CDATA", "http://openoffice.org/2000/chart",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table",
+ "xmlns:svg", "CDATA", "http://openoffice.org/2000/svg",
+ "office:class", "CDATA", "chart"
+ ,"office:version", "CDATA", "1.0"
+ },
+ {"start", "office:body"},
+ {"start", "chart:chart"},
+ {"start", "chart:title"},
+ {"start", "text:p"},
+ {"chars", impValue},
+ {"end", "text:p"},
+ {"end", "chart:title"},
+ {"end", "chart:chart"},
+ {"end", "office:body"},
+ {"end", "office:document-content"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ String title = (String)
+ xTitleProp.getPropertyValue("String") ;
+ logF.println("Title returned = '" + title + "'") ;
+ return impValue.equals(title) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println
+ ("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java
new file mode 100644
index 000000000..6a4eda292
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java
@@ -0,0 +1,184 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Chart;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Chart.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Close document
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Chart.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The chart document is set as a source document for exporter
+ * created. A new 'main title' is set for chart. This made
+ * for checking if this title is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String exportStr = "XMLExporter test." ;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Chart.XMLExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xChartDoc);
+
+ Object oTitle = xChartDoc.getTitle() ;
+ XPropertySet xTitleProp = UnoRuntime.queryInterface
+ (XPropertySet.class, oTitle) ;
+ xTitleProp.setPropertyValue("String", exportStr) ;
+
+ filter.addTag(new XMLTools.Tag("office:document")) ;
+ filter.addTagEnclosed(new XMLTools.Tag("office:meta"),
+ new XMLTools.Tag("office:document"));
+ filter.addTagEnclosed(new XMLTools.Tag("office:body"),
+ new XMLTools.Tag("office:document"));
+ filter.addCharactersEnclosed(exportStr,
+ new XMLTools.Tag("chart:title")) ;
+
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"schart: StarOffice XML (Chart)"}));
+ tEnv.addObjRelation("SourceDocument",xChartDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check() ;
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java
new file mode 100644
index 000000000..eb60684b8
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java
@@ -0,0 +1,186 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Chart;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Chart.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+ XComponent comp ;
+ XChartDocument xChartDoc = null;
+
+ /**
+ * New chart document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ comp = xChartDoc;
+ }
+
+ /**
+ * Close document
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ comp = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Chart.XMLImporter</code><p>
+ *
+ * The chart document is set as a target document for importer.
+ * Imported XML-data contains the tag which specifies the title
+ * of a chart.
+ * After import title name getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impValue = "XMLImporter_test" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ final XPropertySet xTitleProp ;
+ oInt = xMSF.createInstance("com.sun.star.comp.Chart.XMLImporter") ;
+
+ Object oTitle = xChartDoc.getTitle() ;
+ xTitleProp = UnoRuntime.queryInterface
+ (XPropertySet.class, oTitle) ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:chart", "CDATA", "http://openoffice.org/2000/chart",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table",
+ "xmlns:svg", "CDATA", "http://openoffice.org/2000/svg",
+ "office:class", "CDATA", "chart"
+ ,"office:version", "CDATA", "1.0"
+ },
+ {"start", "office:body"},
+ {"start", "chart:chart"},
+ {"start", "chart:title"},
+ {"start", "text:p"},
+ {"chars", impValue},
+ {"end", "text:p"},
+ {"end", "chart:title"},
+ {"end", "chart:chart"},
+ {"end", "office:body"},
+ {"end", "office:document-content"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ String title = (String)
+ xTitleProp.getPropertyValue("String") ;
+ logF.println("Title returned = '" + title + "'") ;
+ return impValue.equals(title) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println
+ ("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java
new file mode 100644
index 000000000..66f46ba52
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java
@@ -0,0 +1,171 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Chart;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Chart.XMLStylesExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLStylesExporter extends TestCase {
+ XChartDocument xChartDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+ }
+
+ /**
+ * Close document
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Chart.XMLStylesExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * Existing of some tags checked in XML data exported.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Chart.XMLStylesExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xChartDoc);
+
+
+ filter.addTag(new XMLTools.Tag("office:document-styles")) ;
+ filter.addTagEnclosed(new XMLTools.Tag("office:styles"),
+ new XMLTools.Tag("office:document-styles"));
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"schart: StarOffice XML (Chart)"}));
+ tEnv.addObjRelation("SourceDocument",xChartDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check() ;
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java
new file mode 100644
index 000000000..4944e1806
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java
@@ -0,0 +1,161 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Chart;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.chart.XChartDocument;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Chart.XMLStylesImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLStylesImporter extends TestCase {
+ XComponent comp ;
+ XChartDocument xChartDoc = null;
+
+ /**
+ * New chart document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a chartdocument" );
+ xChartDoc = SOF.createChartDoc();
+
+ comp = xChartDoc;
+ }
+
+ /**
+ * Close document
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ comp = null;
+ }
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Chart.XMLStylesImporter</code><p>
+ *
+ * The chart document is set as a target document for importer.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Chart.XMLStylesImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", comp) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-styles",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:text", "CDATA", "http://openoffice.org/2000/text",
+ "xmlns:chart", "CDATA", "http://openoffice.org/2000/chart",
+ "xmlns:style", "CDATA", "http://openoffice.org/2000/style",
+ "xmlns:svg", "CDATA", "http://openoffice.org/2000/svg",
+ "office:class", "CDATA", "chart",
+ "office:version", "CDATA", "1.0"
+ },
+ {"start", "office:styles"},
+ {"end", "office:styles"},
+ {"end", "office:document-styles"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ logF.println("No ways to check styles import were not found.");
+ logF.println(" TRUE returned.");
+ return true ;
+ }
+ }) ;
+
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentExporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentExporter.java
new file mode 100644
index 000000000..e0e26b710
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentExporter.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.document.XExporter;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLOasisContentExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLContentExporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLOasisContentExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The draw document is set as a source document for exporter
+ * created. Then a new page (Slide) created in this document and
+ * both two pages renamed to 'NewSlide1' and 'NewSlide2'. After this
+ * filter checks that new tags exist in the XML output.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ // Adding tags for checking existence of head tag and other tags
+ filter.addTag(new XMLTools.Tag("office:document-content"));
+ filter.addTag(new XMLTools.Tag("office:body"));
+ filter.addTagEnclosed(
+ new XMLTools.Tag("draw:page"),
+ new XMLTools.Tag("office:body"));
+ filter.addTag(new XMLTools.Tag("draw:page","draw:name","NewSlide1"));
+ filter.addTag(new XMLTools.Tag("draw:page","draw:name","NewSlide2"));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Draw.XMLOasisContentExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+
+ XDrawPagesSupplier supp = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages set = supp.getDrawPages();
+
+ // This is an XML-export BUG (new slide named "NewSlide2"
+ // can not be exported to XML)
+ set.insertNewByIndex(1);
+
+ XDrawPage page1 = UnoRuntime.queryInterface(XDrawPage.class, set.getByIndex(0));
+ XNamed NPage1 = UnoRuntime.queryInterface(XNamed.class,page1);
+ NPage1.setName("NewSlide1");
+ XDrawPage page2 = UnoRuntime.queryInterface(XDrawPage.class, set.getByIndex(1));
+ XNamed NPage2 = UnoRuntime.queryInterface(XNamed.class,page2);
+ NPage2.setName("NewSlide2");
+ xEx.setSourceDocument(xDrawDoc);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"sdraw: StarOffice XML (Draw)"}));
+ tEnv.addObjRelation("SourceDocument",xDrawDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentImporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentImporter.java
new file mode 100644
index 000000000..7225b192b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentImporter.java
@@ -0,0 +1,192 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLContentImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLContentImporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLContentImporter</code><p>
+ *
+ * The Draw document is set as a target document for importer.
+ * Imported XML-data contains only content tags including pages
+ * named 'NewSlide1' and 'NewSlide2'.
+ * Pages getting from target document is checked after import
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Draw.XMLContentImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xDrawDoc) ;
+
+ // New XML document generated to be imported to Draw document
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:draw", "CDATA", "http://openoffice.org/2000/drawing",
+ "office:class", "CDATA", "drawing"
+ ,"office:version", "CDATA", "1.0"
+ },
+ {"start", "office:body"},
+ {"start", "draw:page",
+ "draw:name", "CDATA", "NewSlide1",
+ "draw:master-page-name", "CDATA", "Default"},
+ {"end", "draw:page"},
+ {"start", "draw:page", "draw:name", "CDATA", "NewSlide2",
+ "draw:master-page-name", "CDATA", "Default"},
+ {"end","draw:page"},
+ {"end", "draw:page"},
+ {"end", "office:body"},
+ {"end", "office:document"}};
+
+ // adding relation for XDocumentHandler
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml);
+
+ //save to log content before import
+ final PrintWriter fLog = log;
+
+ // Checking target document after import
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ XDrawPagesSupplier supp = UnoRuntime.queryInterface
+ (XDrawPagesSupplier.class, xDrawDoc);
+ final XDrawPages xPages = supp.getDrawPages();
+ XNamed[] pageArray = new XNamed[ xPages.getCount() ];
+ for (int i=0; i < xPages.getCount(); i++) {
+ try {
+ pageArray[i] = UnoRuntime.queryInterface
+ (XNamed.class, xPages.getByIndex(i));
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(fLog) ;
+ throw new StatusException
+ ("Can't get page name by index.", e) ;
+ }
+ }
+ fLog.println("Slide names after import:");
+ for ( int i = 0; i < xPages.getCount(); i++ ) {
+ if ((pageArray[i].getName().equals("NewSlide1"))
+ || (pageArray[i].getName().equals("NewSlide2"))) {
+ fLog.println(" " + pageArray[i].getName());
+ }
+ else {
+ fLog.println("Error: some imported values are not exist in target document!");
+ return false;
+ }
+ }
+ return true;
+ }
+ });
+
+ return tEnv;
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLExporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLExporter.java
new file mode 100644
index 000000000..5bf74b1cb
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLExporter.java
@@ -0,0 +1,190 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.document.XExporter;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The draw document is set as a source document for exporter
+ * created. Then a new page (Slide) created in this document and
+ * both two pages renamed to 'NewSlide1' and 'NewSlide2'. After this
+ * filter checks that new tags exist in the XML output.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ // Adding tags for checking existence of head tag and other tags
+ filter.addTag(new XMLTools.Tag("office:document"));
+ filter.addTag(new XMLTools.Tag("office:body"));
+ filter.addTagEnclosed(
+ new XMLTools.Tag("draw:page"),
+ new XMLTools.Tag("office:body"));
+ filter.addTag(new XMLTools.Tag("draw:page","draw:name","NewSlide1"));
+ filter.addTag(new XMLTools.Tag("draw:page","draw:name","NewSlide2"));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Draw.XMLExporter", new Object[] {arg});
+
+
+ XDrawPagesSupplier supp = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xDrawDoc);
+ XDrawPages set = supp.getDrawPages();
+
+ // This is an XML-export BUG (new slide named "NewSlide2" can not be exported to XML)
+ set.insertNewByIndex(1);
+
+ XDrawPage page1 = UnoRuntime.queryInterface(XDrawPage.class, set.getByIndex(0));
+ XNamed NPage1 = UnoRuntime.queryInterface(XNamed.class,page1);
+ NPage1.setName("NewSlide1");
+ XDrawPage page2 = UnoRuntime.queryInterface(XDrawPage.class, set.getByIndex(1));
+ XNamed NPage2 = UnoRuntime.queryInterface(XNamed.class,page2);
+ NPage2.setName("NewSlide2");
+
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xDrawDoc);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"sdraw: StarOffice XML (Draw)"}));
+ tEnv.addObjRelation("SourceDocument",xDrawDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLImporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLImporter.java
new file mode 100644
index 000000000..b550ffea6
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLImporter.java
@@ -0,0 +1,192 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLImporter</code><p>
+ *
+ * The Draw document is set as a target document for importer.
+ * Imported XML-data contains only content tags including pages
+ * named 'NewSlide1' and 'NewSlide2'.
+ * Pages getting from target document are checked after import.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance("com.sun.star.comp.Draw.XMLImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xDrawDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:draw", "CDATA", "http://openoffice.org/2000/drawing",
+ "office:class", "CDATA", "drawing"
+ ,"office:version", "CDATA", "1.0"
+ },
+ {"start", "office:body"},
+ {"start", "draw:page",
+ "draw:name", "CDATA", "NewSlide1",
+ "draw:master-page-name", "CDATA", "Default"},
+ {"end", "draw:page"},
+ {"start", "draw:page",
+ "draw:name", "CDATA", "NewSlide2",
+ "draw:master-page-name", "CDATA", "Default"},
+ {"end","draw:page"},
+ {"end", "draw:page"},
+ {"end", "office:body"},
+ {"end", "office:document"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ //save to log content before import
+ final PrintWriter fLog = log;
+
+ // Checking target document after import
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ XDrawPagesSupplier supp = UnoRuntime.queryInterface
+ (XDrawPagesSupplier.class, xDrawDoc);
+ final XDrawPages xPages = supp.getDrawPages();
+ XNamed[] pageArray = new XNamed[ xPages.getCount() ];
+ for (int i=0; i < xPages.getCount(); i++) {
+ try {
+ pageArray[i] = UnoRuntime.queryInterface
+ (XNamed.class, xPages.getByIndex(i));
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(fLog) ;
+ throw new StatusException
+ ("Can't get page name by index.", e) ;
+ }
+ }
+ fLog.println("Slide names after import:");
+ for ( int i = 0; i < xPages.getCount(); i++ ) {
+ if ((pageArray[i].getName().equals("NewSlide1"))
+ || (pageArray[i].getName().equals("NewSlide2"))) {
+ fLog.println(" " + pageArray[i].getName());
+ }
+ else {
+ fLog.println("Error: some imported values are not exist in target document!");
+ return false;
+ }
+ }
+ return true;
+ }
+ });
+
+ return tEnv;
+ } // end of getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaExporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaExporter.java
new file mode 100644
index 000000000..0e2835d41
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaExporter.java
@@ -0,0 +1,183 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLOasisMetaExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLMetaExporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New draw document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLOasisMetaExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The draw document is set as a source document for exporter
+ * created. Set title of document to 'XMLMetaExporter'.
+ * This made for checking if this title is successfully exported within
+ * the document meta information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String TITLE = "XMLMetaExporter";
+
+ FilterChecker filter = new FilterChecker(log) ;
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Draw.XMLOasisMetaExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class, oObj);
+ xEx.setSourceDocument(xDrawDoc);
+
+ //set some meta data
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xDrawDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ xDocProps.setTitle(TITLE);
+
+ // Checking Head Tag existence and that property has changed
+ filter.addTag(new XMLTools.Tag ("office:document-meta"));
+ filter.addTagEnclosed(
+ new XMLTools.Tag("office:meta"),
+ new XMLTools.Tag("office:document-meta") );
+ filter.addTagEnclosed(
+ new XMLTools.Tag("dc:title"),
+ new XMLTools.Tag("office:meta") );
+ filter.addCharactersEnclosed( TITLE,
+ new XMLTools.Tag("dc:title") );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"sdraw: StarOffice XML (Draw)"}));
+ tEnv.addObjRelation("SourceDocument", xDrawDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaImporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaImporter.java
new file mode 100644
index 000000000..8bcf5b355
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaImporter.java
@@ -0,0 +1,162 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLMetaImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLMetaImporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New draw document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Draw document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLMetaImporter</code><p>
+ *
+ * The draw document is set as a target document for importer.
+ * Imported XML-data contains only meta tags including
+ * title tag with test name.
+ * After import title name getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance("com.sun.star.comp.Draw.XMLMetaImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xDrawDoc) ;
+
+ final String impTitle = "XMLMetaImporter" ;
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-meta",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:meta", "CDATA", "http://openoffice.org/2000/meta",
+ "xmlns:dc", "CDATA", "http://purl.org/dc/elements/1.1/"
+ },
+ {"start", "office:meta"},
+ {"start", "dc:title"},
+ {"chars", impTitle},
+ {"end", "dc:title"},
+ {"end", "office:meta"},
+ {"end", "office:document-meta"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ //set some meta data
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xDrawDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String title = xDocProps.getTitle();
+ logF.println("Title returned = '" + title + "'") ;
+ return impTitle.equals(title) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsExporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsExporter.java
new file mode 100644
index 000000000..261852b8e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsExporter.java
@@ -0,0 +1,189 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLOasisSettingsExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLSettingsExporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New draw document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>om.sun.star.comp.Draw.XMLSettingsExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The draw document is set as a source document for exporter
+ * created. Property 'IsLayerMode' set to true.
+ * This made for checking if this property is successfully exported within
+ * the document styles information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ FilterChecker filter = new FilterChecker(log) ;
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Draw.XMLOasisSettingsExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class, oObj);
+ xEx.setSourceDocument(xDrawDoc);
+
+ //set some settings
+ XModel xDrawModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ XController xController = xDrawModel.getCurrentController();
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+ xPropSet.setPropertyValue("IsLayerMode", Boolean.TRUE);
+
+ // Checking Head Tag existence and that property has changed
+ filter.addTag(new XMLTools.Tag ("office:document-settings"));
+ filter.addTagEnclosed(
+ new XMLTools.Tag ("office:settings"),
+ new XMLTools.Tag ("office:document-settings") );
+ filter.addTagEnclosed(
+ new XMLTools.Tag ("config:config-item-set"),
+ new XMLTools.Tag ("office:settings") );
+ filter.addTagEnclosed(
+ new XMLTools.Tag ("config:config-item-map-indexed"),
+ new XMLTools.Tag ("config:config-item-set") );
+ filter.addCharactersEnclosed( "true",
+ new XMLTools.Tag( "config:config-item",
+ "config:name",
+ "IsLayerMode" ));
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"sdraw: StarOffice XML (Draw)"}));
+ tEnv.addObjRelation("SourceDocument", xDrawDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsImporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsImporter.java
new file mode 100644
index 000000000..ec6d5625d
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsImporter.java
@@ -0,0 +1,178 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLSettingsImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLSettingsImporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New draw document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Text draw destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLSettingsImporter</code><p>
+ *
+ * The draw document is set as a target document for importer.
+ * Imported XML-data contains only settings tags including
+ * tag with property 'IsLayerMode'.
+ * After import property 'IsLayerMode' getting from target
+ * document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Draw.XMLSettingsImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xDrawDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-settings",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:config", "CDATA", "http://openoffice.org/2001/config"},
+ {"start", "office:settings"},
+ {"start", "config:config-item-set",
+ "config:name", "CDATA", "view-settings"},
+ {"start", "config:config-item-map-indexed",
+ "config:name", "CDATA", "Views"},
+ {"start", "config:config-item-map-entry"},
+ {"start", "config:config-item",
+ "config:name", "CDATA", "IsLayerMode",
+ "config:type", "CDATA", "boolean"},
+ {"chars", "true"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item-map-entry"},
+ {"end", "config:config-item-map-indexed"},
+ {"end", "config:config-item-set"},
+ {"end", "office:settings"},
+ {"end", "office:document-settings"} };
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml);
+ final PrintWriter logF = log;
+ XModel xDrawModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc);
+ XController xController = xDrawModel.getCurrentController();
+ final XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ Boolean value = (Boolean)
+ xPropSet.getPropertyValue("IsLayerMode");
+ logF.println("'IsLayerMode' property value is '"
+ + value + "'");
+ return value.booleanValue();
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception while checking import :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesExporter.java
new file mode 100644
index 000000000..2fbf238ca
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesExporter.java
@@ -0,0 +1,193 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLOasisStylesExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLStylesExporter extends TestCase {
+ XComponent xDrawDoc = null;
+ protected static int counter = 0;
+
+ /**
+ * New draw document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xDrawDoc " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLOasisStylesExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The draw document is set as a source document for exporter
+ * created. New style is added to the style family 'graphics' with unique name
+ * every time. This made for checking if this style is successfully exported
+ * within the document styles information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment(
+ TestParameters tParam, PrintWriter log) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log) ;
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+ final String STYLE_NAME = "New style" + counter++ ;
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Draw.XMLOasisStylesExporter", new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xDrawDoc);
+
+ //obtain style families
+ XStyleFamiliesSupplier styleSup = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class, xDrawDoc);
+ XNameAccess StyleFamilies = styleSup.getStyleFamilies();
+ //obtain all style family names
+ String[] styleFamiliesNames = StyleFamilies.getElementNames();
+ String styleFamilyName = styleFamiliesNames[0];
+ //obtain style family with name[0]
+ Object objectStyle = StyleFamilies.getByName(styleFamilyName);
+ XNameContainer xStyleFamilyName = UnoRuntime.queryInterface(XNameContainer.class, objectStyle);
+ //create new style
+ Object SC = SOF.createInstance(xDrawDoc, "com.sun.star.style.Style");
+ XStyle Style = UnoRuntime.queryInterface(XStyle.class,SC);
+ //add new style to style family with name[0]
+ xStyleFamilyName.insertByName(STYLE_NAME,Style);
+
+ // Checking Head Tag existence and that property has changed
+ filter.addTag(new XMLTools.Tag ("office:document-styles"));
+ filter.addTag(new XMLTools.Tag ("office:styles"));
+ filter.addTagEnclosed(
+ new XMLTools.Tag("style:style"),
+ new XMLTools.Tag("office:styles") );
+ filter.addTag(new XMLTools.Tag("style:style", "style:name", STYLE_NAME));
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"sdraw: StarOffice XML (Draw)"}));
+ tEnv.addObjRelation("SourceDocument",xDrawDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesImporter.java
new file mode 100644
index 000000000..63dae1c1b
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesImporter.java
@@ -0,0 +1,176 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Draw;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Draw.XMLStylesImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLStylesImporter extends TestCase {
+ XComponent xDrawDoc = null;
+
+ /**
+ * New draw document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating a drawdocument" );
+ xDrawDoc = SOF.createDrawDoc(null);
+ }
+
+ /**
+ * Text draw destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xDrawDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Draw.XMLStylesImporter</code><p>
+ *
+ * The draw document is set as a target document for importer.
+ * Imported XML-data contains only styles tags including
+ * tag with new style.
+ * After import checked existing of this new style in style
+ * collection obtained from target document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Draw.XMLStylesImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xDrawDoc) ;
+
+ final String impStyleName = "New style for test XMLStylesImporter";
+ final String impFamilyName = "graphics";
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-styles",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:style", "CDATA", "http://openoffice.org/2000/style"},
+ {"start", "office:styles"},
+ {"start", "style:style",
+ "style:name", "CDATA", impStyleName,
+ "style:family", "CDATA", impFamilyName},
+ {"end", "style:style"},
+ {"end", "office:styles"},
+ {"end", "office:document"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log;
+ //obtain style families
+ XStyleFamiliesSupplier styleSup = UnoRuntime.queryInterface (XStyleFamiliesSupplier.class, xDrawDoc) ;
+ final XNameAccess StyleFamilies = styleSup.getStyleFamilies();
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ Object objectStyle =
+ StyleFamilies.getByName(impFamilyName);
+ XNameContainer StyleFamilyName = UnoRuntime.queryInterface
+ (XNameContainer.class, objectStyle);
+ boolean hasStyle =
+ StyleFamilyName.hasByName(impStyleName);
+ logF.println("Does style with name '" + impStyleName
+ + "' exist? " + hasStyle );
+ return hasStyle;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception while checking import :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentExporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentExporter.java
new file mode 100644
index 000000000..b5a46cfff
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentExporter.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.document.XExporter;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLOasisContentExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLContentExporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xImpressDoc " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLOasisContentExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The impress document is set as a source document for exporter
+ * created. The existing draw page is gotten a new name. This made
+ * for checking if this new name is successfully exported within
+ * the document content.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ final String expPageName = "XMLContentExporter" ;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Impress.XMLOasisContentExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xImpressDoc);
+
+ // assigning a draw page a new name
+ XDrawPagesSupplier xPagesSup = UnoRuntime.queryInterface
+ (XDrawPagesSupplier.class, xImpressDoc) ;
+ XDrawPages xPages = xPagesSup.getDrawPages() ;
+ XNamed xPageName = UnoRuntime.queryInterface
+ (XNamed.class, xPages.getByIndex(0)) ;
+ xPageName.setName(expPageName) ;
+
+ // adding tags required to be in XML data exported.
+ filter.addTag(new XMLTools.Tag("office:document-content")) ;
+ filter.addTagEnclosed(new XMLTools.Tag("office:body"),
+ new XMLTools.Tag("office:document-content")) ;
+ filter.addTagEnclosed(
+ new XMLTools.Tag("draw:page", "draw:name", expPageName),
+ new XMLTools.Tag("office:body")) ;
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"simpress: StarOffice XML (Impress)"}));
+ tEnv.addObjRelation("SourceDocument",xImpressDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+
+ log.println("Implementation Name: "+util.utils.getImplName(oObj));
+
+ return tEnv;
+
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check() ;
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentImporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentImporter.java
new file mode 100644
index 000000000..23ed91b47
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentImporter.java
@@ -0,0 +1,201 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLContentImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLContentImporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New chart document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Disposes document.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLContentImporter</code><p>
+ *
+ * The chart document is set as a target document for importer.
+ * Imported XML-data contains the tag with a new page which has
+ * some name.
+ * After import page name getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam,PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impPageName = "XMLImporterPage" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Impress.XMLContentImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xImpressDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:presentation", "CDATA", "http://openoffice.org/2000/presentation",
+ "xmlns:svg", "CDATA", "http://openoffice.org/2000/svg",
+ "xmlns:draw", "CDATA", "http://openoffice.org/2000/drawing",
+ "office:class", "CDATA", "presentation"
+ ,"office:version", "CDATA", "1.0"
+ },
+ {"start", "office:body"},
+ {"start", "draw:page",
+ "draw:name", "CDATA", impPageName,
+ "draw:master-page-name", "CDATA", "Default"
+ },
+ {"start", "presentation:notes"},
+ {"start", "draw:page-thumbnail",
+ "draw:style-name", "CDATA", "gr1",
+ "draw:layer", "CDATA", "layout",
+ "svg:width", "CDATA", "12.768cm",
+ "svg:height", "CDATA", "9.576cm",
+ "svg:x", "CDATA", "4.411cm",
+ "svg:y", "CDATA", "2.794cm",
+ "presentation:class", "CDATA", "page",
+ "draw:page-number", "CDATA", "1"
+ },
+ {"end", "draw:page-thumbnail"},
+ {"start", "draw:text-box",
+ "presentation:style-name", "CDATA", "Default-notes",
+ "draw:layer", "CDATA", "layout",
+ "svg:width", "CDATA", "15.021cm",
+ "svg:height", "CDATA", "10.63cm",
+ "svg:x", "CDATA", "3.292cm",
+ "svg:y", "CDATA", "13.299cm",
+ "presentation:class", "CDATA", "notes",
+ "presentation:placeholder", "CDATA", "true"
+ },
+ {"end", "draw:text-box"},
+ {"end", "presentation:notes"},
+ {"end", "draw:page"},
+ {"end", "office:body"},
+ {"end", "office:document"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ try {
+ XDrawPagesSupplier xPagesSup = UnoRuntime.queryInterface
+ (XDrawPagesSupplier.class, xImpressDoc) ;
+ XDrawPages xPages = xPagesSup.getDrawPages() ;
+ XNamed xPageName = UnoRuntime.queryInterface
+ (XNamed.class, xPages.getByIndex(0)) ;
+ String gName = xPageName.getName() ;
+ logF.println("Page name returned = '" + gName + "'") ;
+ return impPageName.equals(gName) ;
+ } catch (com.sun.star.uno.Exception e) {
+ logF.println("Exception occurred while checking filter :") ;
+ e.printStackTrace(logF) ;
+ return false ;
+ }
+ }
+ }) ;
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
+
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLExporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLExporter.java
new file mode 100644
index 000000000..03080f9d3
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLExporter.java
@@ -0,0 +1,188 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNamed;
+import com.sun.star.document.XExporter;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLExporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New impress document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xImpressDoc " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The impress document is set as a source document for exporter
+ * created. A new draw page with specific name created. This made
+ * for checking if this draw page is successfully exported within
+ * the document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ protected TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ FilterChecker Filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), Filter);
+
+ final String NAME = "XMLExporter";
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Impress.XMLExporter", new Object[] {arg});
+
+ //get draw pages
+ XDrawPagesSupplier drawPagesSupplier = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xImpressDoc);
+ XDrawPages drawPages = drawPagesSupplier.getDrawPages();
+ //insert new draw page
+ XDrawPage newDrawPage = drawPages.insertNewByIndex(0);
+ //set specific test name
+ XNamed newPageNamed = UnoRuntime.queryInterface(XNamed.class, newDrawPage);
+ newPageNamed.setName(NAME);
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xImpressDoc);
+
+ // adding tags which must be contained in XML output
+ Filter.addTag( new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("office:body"),
+ new XMLTools.Tag("office:document") );
+ Filter.addTagEnclosed(
+ new XMLTools.Tag("draw:page", "draw:name", NAME),
+ new XMLTools.Tag("office:body") );
+
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"simpress: StarOffice XML (Impress)"}));
+ tEnv.addObjRelation("SourceDocument",xImpressDoc);
+ tEnv.addObjRelation("XFilter.Checker", Filter) ;
+
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLImporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLImporter.java
new file mode 100644
index 000000000..1331d9130
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLImporter.java
@@ -0,0 +1,160 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.drawing.XDrawPages;
+import com.sun.star.drawing.XDrawPagesSupplier;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLImporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New impress document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Impress document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLImporter</code><p>
+ *
+ * The impress document is set as a target document for importer.
+ * Imported tags contain page with the specific name.
+ * After import existence of the page with this specific
+ * name is checked in the target document.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Impress.XMLImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xImpressDoc) ;
+
+ final String impName = "XMLImporter";
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:draw", "CDATA", "http://openoffice.org/2000/drawing"
+ },
+ {"start", "office:body"},
+ {"start", "draw:page",
+ "draw:name", "CDATA", impName },
+ {"end", "draw:page"},
+ {"end", "office:body"},
+ {"end", "office:document"} };
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml);
+
+ //get draw pages
+ XDrawPagesSupplier drawPagesSupplier = UnoRuntime.queryInterface(XDrawPagesSupplier.class, xImpressDoc);
+ XDrawPages drawPages = drawPagesSupplier.getDrawPages();
+ final XNameAccess xNamePages = UnoRuntime.queryInterface(XNameAccess.class, drawPages);
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ return xNamePages.hasByName(impName);
+ }
+ } );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaExporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaExporter.java
new file mode 100644
index 000000000..360a3ac3a
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaExporter.java
@@ -0,0 +1,184 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLOasisMetaExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLMetaExporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New impress document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Impress document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( "disposing xImpressDoc " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLOasisMetaExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The impress document is set as a source document for exporter
+ * created. A meta property 'Title' is set to specific value. This made
+ * for checking if this value is successfully exported within
+ * the document meta information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class), filter);
+ final String NAME = "XMLMetaExporter";
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Impress.XMLOasisMetaExporter",
+ new Object[]{arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xImpressDoc);
+
+ // change title name
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xImpressDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ xDocProps.setTitle(NAME);
+
+ // Checking tags existence and changed property value
+ filter.addTag(new XMLTools.Tag ("office:document-meta"));
+ filter.addTagEnclosed(
+ new XMLTools.Tag("office:meta"),
+ new XMLTools.Tag("office:document-meta") );
+ filter.addTagEnclosed(
+ new XMLTools.Tag("dc:title"),
+ new XMLTools.Tag("office:meta") );
+ filter.addCharactersEnclosed(
+ NAME,
+ new XMLTools.Tag ("dc:title") );
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"simpress: StarOffice XML (Impress)"}));
+ tEnv.addObjRelation("SourceDocument", xImpressDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter) ;
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, true);
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaImporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaImporter.java
new file mode 100644
index 000000000..c50782e7e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaImporter.java
@@ -0,0 +1,161 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.document.XDocumentPropertiesSupplier;
+import com.sun.star.document.XDocumentProperties;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLMetaImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLMetaImporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New impress document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Impress document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLMetaImporter</code><p>
+ *
+ * The impress document is set as a target document for importer.
+ * Imported XML-data contains only meta tags including title tag
+ * with test title name. After import title name getting from
+ * target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam,PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impTitle = "XMLImporter_test" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Impress.XMLMetaImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xImpressDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-meta" ,
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:dc", "CDATA", "http://purl.org/dc/elements/1.1/"},
+ {"start", "office:meta"} ,
+ {"start", "dc:title"},
+ {"chars", impTitle},
+ {"end", "dc:title"},
+ {"end", "office:meta"},
+ {"end", "office:document-meta"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ XDocumentPropertiesSupplier xPropSup = UnoRuntime.queryInterface
+ (XDocumentPropertiesSupplier.class, xImpressDoc);
+ final XDocumentProperties xDocProps = xPropSup.getDocumentProperties();
+ final PrintWriter logF = log ;
+
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ String title = xDocProps.getTitle();
+ logF.println("Title returned = '" + title + "'") ;
+ return impTitle.equals(title) ;
+ }
+ } );
+
+ return tEnv;
+ } // finish method getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsExporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsExporter.java
new file mode 100644
index 000000000..b733d67fd
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsExporter.java
@@ -0,0 +1,187 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.document.XExporter;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLOasisSettingsExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLSettingsExporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New text document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Document disposed here.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xImpressDoc " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLOasisSettingsExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The Impress document is set as a source document for exporter
+ * created. Then setting 'IsLayerMode' is changed to a new value.
+ * After this filter checks that value has changed in the XML output.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+ final boolean NewDataValue;
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Impress.XMLOasisSettingsExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xImpressDoc);
+
+ //set some settings
+ XModel xImpressModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+ XController xController = xImpressModel.getCurrentController();
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+ NewDataValue = ! ((Boolean) xPropSet.getPropertyValue
+ ("IsLayerMode")).booleanValue();
+ xPropSet.setPropertyValue("IsLayerMode",
+ Boolean.valueOf(NewDataValue));
+
+
+ // Adding tags for checking existence of head tag and other tags
+ filter.addTagEnclosed(new XMLTools.Tag("office:settings"),
+ new XMLTools.Tag("office:document-settings"));
+ filter.addTagEnclosed(new XMLTools.Tag("config:config-item-set"),
+ new XMLTools.Tag("office:settings"));
+ filter.addTagEnclosed(new XMLTools.Tag("config:config-item-map-indexed"),
+ new XMLTools.Tag("config:config-item-set"));
+ filter.addTagEnclosed(new XMLTools.Tag("config:config-item-map-entry"),
+ new XMLTools.Tag("config:config-item-map-indexed"));
+ filter.addTagEnclosed(new XMLTools.Tag("config:config-item"),
+ new XMLTools.Tag("config:config-item-map-entry"));
+ filter.addCharactersEnclosed(String.valueOf(NewDataValue),
+ new XMLTools.Tag("config:config-item","config:name","IsLayerMode"));
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"simpress: StarOffice XML (Impress)"}));
+ tEnv.addObjRelation("SourceDocument",xImpressDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log,false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsImporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsImporter.java
new file mode 100644
index 000000000..32860a675
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsImporter.java
@@ -0,0 +1,183 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XModel;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLSettingsImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLSettingsImporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New impress document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Impress document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLStylesImporter</code><p>
+ *
+ * The Impress document is set as a target document for importer.
+ * Value of a property "IsLayerMode" has imported as 'true' to a target
+ * document. After import property value getting from target document
+ * is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Impress.XMLSettingsImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xImpressDoc) ;
+
+ // adding relation for XDocumentHandler
+ String[][] xml = new String[][] {
+ {"start", "office:document-settings",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink",
+ "xmlns:presentation", "CDATA",
+ "http://openoffice.org/2000/presentation",
+ "xmlns:config", "CDATA", "http://openoffice.org/2001/config",
+ "office:version", "CDATA", "1.0"},
+ {"start", "office:settings"},
+ {"start", "config:config-item-map-indexed", "config:name",
+ "CDATA", "Views"},
+ {"start", "config:config-item-map-entry"},
+ {"start","config:config-item", "config:name", "CDATA",
+ "IsLayerMode"},
+ {"chars", "true"},
+ {"end", "config:config-item"},
+ {"end", "config:config-item-map-entry"},
+ {"end", "config:config-item-map-indexed"},
+ {"end", "office:settings"},
+ {"end", "office:document-settings"}} ;
+
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+
+ // get property before import
+ XModel xImpressModel = UnoRuntime.queryInterface(XModel.class, xImpressDoc);
+ XController xController = xImpressModel.getCurrentController();
+ final XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController);
+ log.println("Property \"IsLayerMode\" before import is " +
+ xPropSet.getPropertyValue("IsLayerMode"));
+ final PrintWriter logF = log;
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ Boolean propValue;
+ try {
+ propValue = (Boolean) xPropSet.getPropertyValue
+ ("IsLayerMode");
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(logF);
+ throw new StatusException
+ ("Can't get property value.", e);
+ }
+ logF.println("Property \"IsLayerMode\" after import is "
+ + propValue);
+ return propValue.booleanValue();
+ }
+ });
+
+ return tEnv;
+ } // end of getTestEnvironment
+
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesExporter.java
new file mode 100644
index 000000000..2a44f8a8e
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesExporter.java
@@ -0,0 +1,185 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+import util.XMLTools;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.document.XExporter;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyle;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.xml.sax.XDocumentHandler;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLOasisStylesExporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::ExportFilter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::XExporter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.ExportFilter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.XExporter
+ * @see com.sun.star.beans.XPropertySet
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._ExportFilter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ */
+public class XMLStylesExporter extends TestCase {
+ XComponent xImpressDoc = null;
+ protected static int counter = 0;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Spreadsheet document disposed
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing xImpressDoc " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLOasisStylesExporter</code> with
+ * argument which is an implementation of <code>XDocumentHandler</code>
+ * and which can check if required tags and character data is
+ * exported. <p>
+ * The Impress document is set as a source document for exporter
+ * created. New style 'NewStyle' added to style family "Graphics".
+ * This made for checking if this style is successfully exported within
+ * the document styles information.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'MediaDescriptor'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'XFilter.Checker'</code> for
+ * {@link ifc.document._XFilter} interface </li>
+ * <li> <code>'SourceDocument'</code> for
+ * {@link ifc.document._XExporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log) throws Exception {
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF() );
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ XInterface oObj = null;
+ FilterChecker filter = new FilterChecker(log);
+ Any arg = new Any(new Type(XDocumentHandler.class),filter);
+
+ String newName = "NewGraphicsStyle" + counter++;
+ // Adding tags for checking existence of head tag and property value
+ filter.addTag(new XMLTools.Tag("office:document-styles"));
+ filter.addTag(new XMLTools.Tag("office:styles"));
+ filter.addTag(new XMLTools.Tag("style:style","style:name", newName));
+
+ oObj = (XInterface) xMSF.createInstanceWithArguments(
+ "com.sun.star.comp.Impress.XMLOasisStylesExporter",
+ new Object[] {arg});
+ XExporter xEx = UnoRuntime.queryInterface(XExporter.class,oObj);
+ xEx.setSourceDocument(xImpressDoc);
+
+ // Obtaining and changing property values
+ XStyleFamiliesSupplier styleSup = UnoRuntime.queryInterface
+ (XStyleFamiliesSupplier.class, xImpressDoc) ;
+ XNameAccess styleFamilies = styleSup.getStyleFamilies();
+ String[] styleFamiliesNames = styleFamilies.getElementNames();
+ XNameContainer StyleFamilyName = UnoRuntime.queryInterface(XNameContainer.class,
+ styleFamilies.getByName(styleFamiliesNames[0]));
+ Object SC = SOF.createInstance
+ (xImpressDoc, "com.sun.star.style.Style");
+ XStyle StylePage = UnoRuntime.queryInterface(XStyle.class,SC);
+ StyleFamilyName.insertByName(newName, StylePage);
+
+ // create testobject here
+ log.println( "creating a new environment" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ tEnv.addObjRelation("MediaDescriptor", XMLTools.createMediaDescriptor(
+ new String[] {"FilterName"},
+ new Object[] {"simpress: StarOffice XML (Impress)"}));
+ tEnv.addObjRelation("SourceDocument",xImpressDoc);
+ tEnv.addObjRelation("XFilter.Checker", filter);
+ return tEnv;
+ }
+
+ /**
+ * This class checks the XML for tags and data required and returns
+ * checking result to <code>XFilter</code> interface test. All
+ * the information about errors occurred in XML data is written
+ * to log specified.
+ * @see ifc.document._XFilter
+ */
+ private class FilterChecker extends XMLTools.XMLChecker
+ implements ifc.document._XFilter.FilterChecker {
+
+ /**
+ * Creates a class which will write information
+ * into log specified.
+ */
+ private FilterChecker(PrintWriter log) {
+ super(log, false) ;
+ }
+ /**
+ * <code>_XFilter.FilterChecker</code> interface method
+ * which returns the result of XML checking.
+ * @return <code>true</code> if the XML data exported was
+ * valid (i.e. all necessary tags and character data exists),
+ * <code>false</code> if some errors occurred.
+ */
+ public boolean checkFilter() {
+ return check();
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesImporter.java
new file mode 100644
index 000000000..4b0823b44
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesImporter.java
@@ -0,0 +1,180 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+package mod._xmloff.Impress;
+
+import java.io.PrintWriter;
+
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+import util.SOfficeFactory;
+
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.style.XStyleFamiliesSupplier;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+ * Test for object which is represented by service
+ * <code>com.sun.star.comp.Impress.XMLStylesImporter</code>. <p>
+ * Object implements the following interfaces :
+ * <ul>
+ * <li><code>com::sun::star::lang::XInitialization</code></li>
+ * <li><code>com::sun::star::document::XImporter</code></li>
+ * <li><code>com::sun::star::document::XFilter</code></li>
+ * <li><code>com::sun::star::document::ImportFilter</code></li>
+ * <li><code>com::sun::star::beans::XPropertySet</code></li>
+ * <li><code>com::sun::star::xml::sax::XDocumentHandler</code></li>
+
+ * </ul>
+ * @see com.sun.star.lang.XInitialization
+ * @see com.sun.star.document.XImporter
+ * @see com.sun.star.document.XFilter
+ * @see com.sun.star.document.ImportFilter
+ * @see com.sun.star.beans.XPropertySet
+ * @see com.sun.star.xml.sax.XDocumentHandler
+ * @see ifc.lang._XInitialization
+ * @see ifc.document._XImporter
+ * @see ifc.document._XFilter
+ * @see ifc.document._XExporter
+ * @see ifc.beans._XPropertySet
+ * @see ifc.xml.sax._XDocumentHandler
+ */
+public class XMLStylesImporter extends TestCase {
+ XComponent xImpressDoc = null;
+
+ /**
+ * New spreadsheet document created.
+ */
+ @Override
+ protected void initialize( TestParameters tParam, PrintWriter log ) throws Exception {
+ // get a soffice factory object
+ SOfficeFactory SOF = SOfficeFactory.getFactory( tParam.getMSF());
+ log.println( "creating an impress document" );
+ xImpressDoc = SOF.createImpressDoc(null);
+ }
+
+ /**
+ * Spreadsheet document destroyed.
+ */
+ @Override
+ protected void cleanup( TestParameters tParam, PrintWriter log ) {
+ log.println( " disposing document " );
+ xImpressDoc.dispose();
+ }
+
+ /**
+ * Creating a TestEnvironment for the interfaces to be tested.
+ * Creates an instance of the service
+ * <code>com.sun.star.comp.Impress.XMLStylesImporter</code><p>
+ *
+ * The Impress document is set as a target document for importer.
+ * Imported XML-data contains only style tags including tag
+ * with new style name.
+ * After import style names getting from target document is checked.
+ * Object relations created :
+ * <ul>
+ * <li> <code>'XDocumentHandler.XMLData'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'XDocumentHandler.ImportChecker'</code> for
+ * {@link ifc.xml.sax._XDocumentHandler} interface </li>
+ * <li> <code>'TargetDocument'</code> for
+ * {@link ifc.document._XImporter} interface </li>
+ * </ul>
+ */
+ @Override
+ public TestEnvironment createTestEnvironment
+ (TestParameters tParam, PrintWriter log ) throws Exception {
+
+ XInterface oObj = null;
+ Object oInt = null ;
+ final String impValue = "XMLImporter_test" ;
+
+ // creation of testobject here
+ // first we write what we are intend to do to log file
+ log.println( "creating a test environment" );
+
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+
+ oInt = xMSF.createInstance
+ ("com.sun.star.comp.Impress.XMLStylesImporter") ;
+
+ oObj = (XInterface) oInt ;
+
+ // create testobject here
+ log.println( "creating a new environment for Paragraph object" );
+ TestEnvironment tEnv = new TestEnvironment( oObj );
+
+ // adding relation
+ tEnv.addObjRelation("TargetDocument", xImpressDoc) ;
+
+ String[][] xml = new String[][] {
+ {"start", "office:document-styles",
+ "xmlns:office", "CDATA", "http://openoffice.org/2000/office",
+ "xmlns:style", "CDATA", "http://openoffice.org/2000/style",
+ "xmlns:fo", "CDATA", "http://www.w3.org/1999/XSL/Format",
+ "xmlns:table", "CDATA", "http://openoffice.org/2000/table"},
+ {"start", "office:styles"},
+ {"start", "style:style",
+ "style:name", "CDATA", impValue,
+ "style:family", "CDATA", "graphics",
+ "style:parent-style-name", "CDATA", "standard"},
+ {"end", "style:style"},
+ {"end", "office:styles"},
+ {"end", "office:document-styles"}} ;
+
+ // adding relation for XDocumentHandler
+ tEnv.addObjRelation("XDocumentHandler.XMLData", xml) ;
+ XNameAccess styles = null ;
+ try {
+ XStyleFamiliesSupplier sup = UnoRuntime.queryInterface(XStyleFamiliesSupplier.class,
+ xImpressDoc);
+ XNameAccess oStyleFamilies = sup.getStyleFamilies();
+ Object family = oStyleFamilies.getByName("graphics") ;
+ styles = UnoRuntime.queryInterface
+ (XNameAccess.class, family) ;
+ log.println("Styles before:") ;
+ String[] names = styles.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ log.println(" " + names[i]) ;
+ }
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ }
+ final XNameAccess stylesF = styles ;
+ final PrintWriter logF = log ;
+ tEnv.addObjRelation("XDocumentHandler.ImportChecker",
+ new ifc.xml.sax._XDocumentHandler.ImportChecker() {
+ public boolean checkImport() {
+ logF.println("Styles after:") ;
+ String[] names = stylesF.getElementNames() ;
+ for (int i = 0; i < names.length; i++) {
+ logF.println(" " + names[i]) ;
+ }
+ return stylesF.hasByName(impValue) ;
+ }
+ }) ;
+
+ return tEnv;
+ } // end of getTestEnvironment
+
+}
+